From: Luke Kenneth Casson Leighton Date: Tue, 31 Jul 2018 07:02:20 +0000 (+0100) Subject: start code-gen for mux cells X-Git-Url: https://git.libre-soc.org/?p=pinmux.git;a=commitdiff_plain;h=c68ea7590aa3aaa449cf9c4edb1ac56219ac9a92 start code-gen for mux cells --- diff --git a/src/bsv/actual_pinmux.py b/src/bsv/actual_pinmux.py index fd61085..c564430 100644 --- a/src/bsv/actual_pinmux.py +++ b/src/bsv/actual_pinmux.py @@ -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 """ + cellnum = cell[0] 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( - 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) diff --git a/src/parse.py b/src/parse.py index a6875f3..2dffeb3 100644 --- a/src/parse.py +++ b/src/parse.py @@ -120,7 +120,7 @@ class Parse(object): 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__':