vendor: give names to IO buffer instances.
authorwhitequark <whitequark@whitequark.org>
Wed, 3 Jul 2019 14:43:03 +0000 (14:43 +0000)
committerwhitequark <whitequark@whitequark.org>
Wed, 3 Jul 2019 14:43:03 +0000 (14:43 +0000)
Fixes #123.

nmigen/vendor/lattice_ecp5.py
nmigen/vendor/lattice_ice40.py
nmigen/vendor/xilinx_7series.py
nmigen/vendor/xilinx_spartan6.py

index f6e2a9c1d0de6c53f69dd82afe9e19ef8695ab82..ee2cc115060ee719271d32b24a4744f5def3bbe4 100644 (file)
@@ -261,7 +261,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("IB",
+            m.submodules[pin.name] = Instance("IB",
                 i_I=port[bit],
                 o_O=i[bit]
             )
@@ -273,7 +273,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("OB",
+            m.submodules[pin.name] = Instance("OB",
                 i_I=o[bit],
                 o_O=port[bit]
             )
@@ -285,7 +285,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("OBZ",
+            m.submodules[pin.name] = Instance("OBZ",
                 i_T=t,
                 i_I=o[bit],
                 o_O=port[bit]
@@ -299,7 +299,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None,
                                                o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("BB",
+            m.submodules[pin.name] = Instance("BB",
                 i_T=t,
                 i_I=o[bit],
                 o_O=i[bit],
@@ -313,7 +313,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("IB",
+            m.submodules[pin.name] = Instance("IB",
                 i_I=p_port[bit],
                 o_O=i[bit]
             )
@@ -325,7 +325,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("OB",
+            m.submodules[pin.name] = Instance("OB",
                 i_I=o[bit],
                 o_O=p_port[bit],
             )
@@ -337,7 +337,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("OBZ",
+            m.submodules[pin.name] = Instance("OBZ",
                 i_T=t,
                 i_I=o[bit],
                 o_O=p_port[bit],
@@ -351,7 +351,7 @@ class LatticeECP5Platform(TemplatedPlatform):
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None,
                                                o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("BB",
+            m.submodules[pin.name] = Instance("BB",
                 i_T=t,
                 i_I=o[bit],
                 o_O=i[bit],
index 73db3aa14af790f46958b32d277a3afa72b4bfa7..340a03aa6b40cc2758e4a296712cd413c2b2fd50 100644 (file)
@@ -248,9 +248,9 @@ class LatticeICE40Platform(TemplatedPlatform):
                 io_args.append(("i", "OUTPUT_ENABLE", pin.oe))
 
             if is_global_input:
-                m.submodules += Instance("SB_GB_IO", *io_args)
+                m.submodules[pin.name] = Instance("SB_GB_IO", *io_args)
             else:
-                m.submodules += Instance("SB_IO", *io_args)
+                m.submodules[pin.name] = Instance("SB_IO", *io_args)
 
     def get_input(self, pin, port, attrs, invert):
         self._check_feature("single-ended input", pin, attrs,
index a24f664f86e36fe4e7964f966de69cda5bffc688..3c43b089ee11ed3c0fb663e96c29396d859ee2d3 100644 (file)
@@ -239,7 +239,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("IBUF",
+            m.submodules[pin.name] = Instance("IBUF",
                 i_I=port[bit],
                 o_O=i[bit]
             )
@@ -251,7 +251,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("OBUF",
+            m.submodules[pin.name] = Instance("OBUF",
                 i_I=o[bit],
                 o_O=port[bit]
             )
@@ -263,7 +263,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("OBUFT",
+            m.submodules[pin.name] = Instance("OBUFT",
                 i_T=t,
                 i_I=o[bit],
                 o_O=port[bit]
@@ -277,7 +277,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None,
                                                o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("IOBUF",
+            m.submodules[pin.name] = Instance("IOBUF",
                 i_T=t,
                 i_I=o[bit],
                 o_O=i[bit],
@@ -291,7 +291,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("IBUFDS",
+            m.submodules[pin.name] = Instance("IBUFDS",
                 i_I=p_port[bit], i_IB=n_port[bit],
                 o_O=i[bit]
             )
@@ -303,7 +303,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("OBUFDS",
+            m.submodules[pin.name] = Instance("OBUFDS",
                 i_I=o[bit],
                 o_O=p_port[bit], o_OB=n_port[bit]
             )
@@ -315,7 +315,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("OBUFTDS",
+            m.submodules[pin.name] = Instance("OBUFTDS",
                 i_T=t,
                 i_I=o[bit],
                 o_O=p_port[bit], o_OB=n_port[bit]
@@ -329,7 +329,7 @@ class Xilinx7SeriesPlatform(TemplatedPlatform):
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None,
                                                o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("IOBUFDS",
+            m.submodules[pin.name] = Instance("IOBUFDS",
                 i_T=t,
                 i_I=o[bit],
                 o_O=i[bit],
index 5128bf9c896b602d36a91876fe45395e42ffebde..4a0d3a6e8c74d9959eaa1eaea20d0aa1eb2c615c 100644 (file)
@@ -248,7 +248,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("IBUF",
+            m.submodules[pin.name] = Instance("IBUF",
                 i_I=port[bit],
                 o_O=i[bit]
             )
@@ -260,7 +260,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("OBUF",
+            m.submodules[pin.name] = Instance("OBUF",
                 i_I=o[bit],
                 o_O=port[bit]
             )
@@ -272,7 +272,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("OBUFT",
+            m.submodules[pin.name] = Instance("OBUFT",
                 i_T=t,
                 i_I=o[bit],
                 o_O=port[bit]
@@ -286,7 +286,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None,
                                                o_invert=True if invert else None)
         for bit in range(len(port)):
-            m.submodules += Instance("IOBUF",
+            m.submodules[pin.name] = Instance("IOBUF",
                 i_T=t,
                 i_I=o[bit],
                 o_O=i[bit],
@@ -300,7 +300,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("IBUFDS",
+            m.submodules[pin.name] = Instance("IBUFDS",
                 i_I=p_port[bit], i_IB=n_port[bit],
                 o_O=i[bit]
             )
@@ -312,7 +312,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("OBUFDS",
+            m.submodules[pin.name] = Instance("OBUFDS",
                 i_I=o[bit],
                 o_O=p_port[bit], o_OB=n_port[bit]
             )
@@ -324,7 +324,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         m = Module()
         i, o, t = self._get_xdr_buffer(m, pin, o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("OBUFTDS",
+            m.submodules[pin.name] = Instance("OBUFTDS",
                 i_T=t,
                 i_I=o[bit],
                 o_O=p_port[bit], o_OB=n_port[bit]
@@ -338,7 +338,7 @@ class XilinxSpartan6Platform(TemplatedPlatform):
         i, o, t = self._get_xdr_buffer(m, pin, i_invert=True if invert else None,
                                                o_invert=True if invert else None)
         for bit in range(len(p_port)):
-            m.submodules += Instance("IOBUFDS",
+            m.submodules[pin.name] = Instance("IOBUFDS",
                 i_T=t,
                 i_I=o[bit],
                 o_O=i[bit],