start code-gen for mux cells
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 31 Jul 2018 07:02:20 +0000 (08:02 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 31 Jul 2018 07:02:20 +0000 (08:02 +0100)
src/bsv/actual_pinmux.py
src/parse.py

index fd61085a596ca8454b9868ad7d713f1495b3cbfa..c5644307e3d5a34c0efae188ff41427b81a81a03 100644 (file)
@@ -103,13 +103,15 @@ def mkmux(p, ifaces, cell, suffix, outenmode):
         multiple inputs and, based on an "address" routes
         a given indexed input through to the (one) output
     """
         multiple inputs and, based on an "address" routes
         a given indexed input through to the (one) output
     """
+    cellnum = cell[0]
     comment = 'outen' if outenmode else 'output'
     fmtstr = "\t\t\twr%s==%d?%s:%s\n"  # mux-selector format
     ret = ''
     comment = 'outen' if outenmode else 'output'
     fmtstr = "\t\t\twr%s==%d?%s:%s\n"  # mux-selector format
     ret = ''
-    ret += "      // %s muxer for cell idx %s\n" % (comment, cell[0])
-    ret += "      %s%s=\n" % (cn(cell[0]), suffix)
+    ret += "      // %s muxer for cell idx %s\n" % (comment, cellnum)
+    ret += "      %s%s=\n" % (cn(cellnum), suffix)
+    i = 0
     for i in range(
     for i in range(
-            0, (1 << p.cell_bitwidth) - 1):  # full mux range (minus 1)
+            0, p.get_muxwidth(cellnum) - 1):  # full mux range (minus 1)
         comment = mkcomment(ifaces, cell, i, outenmode)
         cf = fmt(ifaces, cell, i, suffix)
         ret += fmtstr % (cn(cell[0]), i, cf, comment)
         comment = mkcomment(ifaces, cell, i, outenmode)
         cf = fmt(ifaces, cell, i, suffix)
         ret += fmtstr % (cn(cell[0]), i, cf, comment)
index a6875f36cacb60ce6ea0e49ca219d60e8e8c1bb9..2dffeb33b75974257d62c7cd414de90426942428 100644 (file)
@@ -120,7 +120,7 @@ class Parse(object):
         return int(math.log(max_num_cells + 1, 2))
 
     def get_muxwidth(self, cellnum):
         return int(math.log(max_num_cells + 1, 2))
 
     def get_muxwidth(self, cellnum):
-        return self.muxed_cells_width[cellnum]
+        return self.muxed_cells_width[int(cellnum)]
 
 
 if __name__ == '__main__':
 
 
 if __name__ == '__main__':