add pinmux cell connections
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 20 Jul 2018 10:22:12 +0000 (11:22 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 20 Jul 2018 10:22:12 +0000 (11:22 +0100)
src/bsv/peripheral_gen.py
src/bsv/pinmux_generator.py

index 20cc1883368fc415fe3fedce27732f253637c910..57d70cd34151e69f91f0f6fd1d0ae71fee1e206d 100644 (file)
@@ -209,6 +209,12 @@ class gpio(PBase):
         if name.startswith('mux'):
             return "mux{0}.axi_slave"
 
+    def mk_cellconn(self, cellnum, bank, count):
+        ret = []
+        bank = bank[4:] # strip off "gpio"
+        txt = "       pinmux.mux_lines.cell{0}_mux(mux{1}.mux_config.mux[{2}]);"
+        return txt.format(cellnum, bank, count)
+
 
 axi_slave_declarations = """\
 typedef  0  SlowMaster;
@@ -345,10 +351,12 @@ class PeripheralInterfaces(object):
 
     def mk_cellconn(self):
         ret = []
-        txt = "        pinmux.mux_lines.cell{0}_mux(muxa.mux_config.mux[{0}]);"
+        cellcount = 0
         for (name, count) in self.ifacecount:
             for i in range(count):
-                ret.append(txt.format(i))
+                txt = self.data[name].mk_cellcon(cellcount, name, i)
+                cellcount += 1
+                ret.append(txt)
         ret = '\n'.join(list(filter(None, ret)))
         return pinmux_cellrule.format(ret)
 
index e33c082558afc9a11297c1fe0ab3b3c81fd8c676..7f91db93ae4a1052c1de253fcf0881eec2e11a80 100644 (file)
@@ -106,7 +106,7 @@ def write_slow(slow, template, p, ifaces, iocells):
     fnaddrmap = ifaces.axi_addr_map()
     mkslow = ifaces.mkslow_peripheral()
     mkcon = ifaces.mk_connection()
-    mkcellcon = iocells.mk_cellconn()
+    mkcellcon = ifaces.mk_cellconn()
     with open(slow, "w") as bsv_file:
         bsv_file.write(template.format(imports, ifdecl, regdef, slavedecl,
                                        fnaddrmap, mkslow, mkcon, mkcellcon))