fhdl/specials/Tristate: handle i=None
authorSebastien Bourdeauducq <sb@m-labs.hk>
Sat, 26 Sep 2015 13:49:12 +0000 (21:49 +0800)
committerSebastien Bourdeauducq <sb@m-labs.hk>
Sat, 26 Sep 2015 13:49:12 +0000 (21:49 +0800)
migen/fhdl/specials.py

index ba2c911cb22ccd27e0133da392700230129c6510..bd3e1bf5050f84caf9839fb7715a2b1ab64c95ac 100644 (file)
@@ -44,7 +44,7 @@ class Tristate(Special):
         self.target = wrap(target)
         self.o = wrap(o)
         self.oe = wrap(oe)
-        self.i = wrap(i)
+        self.i = wrap(i) if i is not None else None
 
     def iter_expressions(self):
         for attr, target_context in [
@@ -52,7 +52,8 @@ class Tristate(Special):
           ("o", SPECIAL_INPUT),
           ("oe", SPECIAL_INPUT),
           ("i", SPECIAL_OUTPUT)]:
-            yield self, attr, target_context
+            if getattr(self, attr) is not None:
+                yield self, attr, target_context
 
     @staticmethod
     def emit_verilog(tristate, ns, add_data_file):