Connect tdi to tdo for boundary scan without IOs.
authorStaf Verhaegen <staf@stafverhaegen.be>
Wed, 21 Apr 2021 17:19:32 +0000 (19:19 +0200)
committerStaf Verhaegen <staf@stafverhaegen.be>
Wed, 21 Apr 2021 17:19:32 +0000 (19:19 +0200)
c4m/nmigen/jtag/tap.py

index 84adf9d57fb2463c7f172533065f5ee5d5494341..a27b4a06db6182f4fa5a072398753a2d606712e9 100755 (executable)
@@ -422,9 +422,8 @@ class TAP(Elaboratable):
             m.d.comb += tdo.eq(irblock.tdo)
         with m.Elif(select_id):
             m.d.comb += tdo.eq(idblock.tdo)
-        if io_tdo is not None:
-            with m.Elif(select_io):
-                m.d.comb += tdo.eq(io_tdo)
+        with m.Elif(select_io):
+            m.d.comb += tdo.eq(io_tdo)
 
         # shiftregs block
         self._elaborate_shiftregs(
@@ -550,7 +549,7 @@ class TAP(Elaboratable):
     def _elaborate_ios(self, *, m, capture, shift, update, bd2io, bd2core):
         length = sum(IOConn.lengths[conn._iotype] for conn in self._ios)
         if length == 0:
-            return None
+            return self.bus.tdi
 
         io_sr = Signal(length)
         io_bd = Signal(length)