remove muxwire from generator, call from interface_decl instead
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 22 Mar 2018 11:57:25 +0000 (11:57 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 22 Mar 2018 11:57:25 +0000 (11:57 +0000)
src/interface_decl.py
src/pinmux_generator.py

index dc6ffa737a40045aed67d8f0f05652f927d31cd2..c532a84e98dd3ec15f55de8efa0b13d37a1a3b4e 100644 (file)
@@ -1,6 +1,7 @@
 from UserDict import UserDict
 
 from wire_def import generic_io # special case
+from wire_def import muxwire # special case
 
 class Pin(object):
     """ pin interface declaration.
@@ -159,6 +160,10 @@ class Interface(object):
         res = res.format(*args)
         return '\n' + res + '\n'
 
+class MuxInterface(Interface):
+
+    def wirefmt(self, *args):
+        return muxwire.format(*args)
 
 class IOInterface(Interface):
 
@@ -236,7 +241,7 @@ class Interfaces(UserDict):
 
 # ========= Interface declarations ================ #
 
-mux_interface = Interface('cell', [{'name': 'mux', 'ready': False,
+mux_interface = MuxInterface('cell', [{'name': 'mux', 'ready': False,
                                     'enabled': False,
                                     'bitspec': '{1}', 'action': True}])
 
index 15de163660b161637873bf6be0bf05d4661f1ea4..a0ba7fd2735265a7a05d47cc1cf5e01798dd5272 100644 (file)
@@ -23,7 +23,6 @@ import math
 
 # project module imports
 from interface_decl import Interfaces, mux_interface, io_interface
-from wire_def import muxwire
 from parse import Parse
 from actual_pinmux import init
 from bus_transactors import axi4_lite
@@ -59,7 +58,6 @@ package pinmux;
       Bit#(1) opendrain_en;   // opendrain enable form core to io_cell  bit0
    } GenericIOType deriving(Eq,Bits,FShow);
 
-   interface MuxSelectionLines;
 '''
 footer = '''
      endinterface;
@@ -74,7 +72,8 @@ endpackage
 with open("./bsv_src/pinmux.bsv", "w") as bsv_file:
     bsv_file.write(header)
 
-    bsv_file.write('''
+    bsv_file.write('''\
+   interface MuxSelectionLines;
 
       // declare the method which will capture the user pin-mux
       // selection values.The width of the input is dependent on the number
@@ -118,7 +117,7 @@ with open("./bsv_src/pinmux.bsv", "w") as bsv_file:
       // values for each mux assigned to a CELL
 ''')
     for cell in p.muxed_cells:
-        bsv_file.write(muxwire.format(
+        bsv_file.write(mux_interface.wirefmt(
             cell[0], int(math.log(len(cell) - 1, 2))))
 
     ifaces.wirefmt(bsv_file)