return m
+
class _IRBlock(Elaboratable):
"""TAP subblock for handling the IR shift register"""
def __init__(self, *, ir_width, cmd_idcode,
return m
+
class IOType(Enum):
In = auto()
Out = auto()
TriOut = auto()
InTriOut = auto()
+
class IOConn(Record):
lengths = {
IOType.In: 1,
self._iotype = iotype
+
class _IDBypassBlock(Elaboratable):
"""TAP subblock for the ID shift register"""
def __init__(self, *, manufacturer_id, part_number, version,
]
super().__init__(layout, name=name, src_loc_at=src_loc_at+1)
+
class TAP(Elaboratable):
#TODO: Document TAP
def __init__(self, *, with_reset=False, ir_width=None,