self.odomain = odomain
w, signed = value_bits_sign(self.i)
- self.regs = [Signal((w, signed)) for i in range(n)]
+ self.regs = [Signal((w, signed), reset_less=True)
+ for i in range(n)]
###
###
- toggle_i = Signal()
- toggle_o = Signal()
- toggle_o_r = Signal()
+ toggle_i = Signal(reset_less=True)
+ toggle_o = Signal() # registered reset_less by MultiReg
+ toggle_o_r = Signal(reset_less=True)
sync_i = getattr(self.sync, idomain)
sync_o = getattr(self.sync, odomain)
``MultiReg``)."""
def __init__(self, width, idomain, odomain, timeout=128):
self.i = Signal(width)
- self.o = Signal(width)
+ self.o = Signal(width, reset_less=True)
if width == 1:
self.specials += MultiReg(self.i, self.o, odomain)
self._pong.i.eq(self._ping.i)
]
- ibuffer = Signal(width)
- obuffer = Signal(width)
+ ibuffer = Signal(width, reset_less=True)
+ obuffer = Signal(width) # registered reset_less by MultiReg
sync_i += If(self._pong.o, ibuffer.eq(self.i))
ibuffer.attr.add("no_retiming")
self.specials += MultiReg(ibuffer, obuffer, odomain)
class GrayDecoder(Module):
def __init__(self, width):
self.i = Signal(width)
- self.o = Signal(width)
+ self.o = Signal(width, reset_less=True)
# # #
class Gearbox(Module):
def __init__(self, iwidth, idomain, owidth, odomain):
self.i = Signal(iwidth)
- self.o = Signal(owidth)
+ self.o = Signal(owidth, reset_less=True)
# # #
]
self.clock_domains += cd_write, cd_read
- storage = Signal(2*lcm(iwidth, owidth))
+ storage = Signal(2*lcm(iwidth, owidth), reset_less=True)
wrchunks = len(storage)//iwidth
rdchunks = len(storage)//owidth
wrpointer = Signal(max=wrchunks, reset=0 if iwidth > owidth else wrchunks//2)