def make_hazard_vec(self, rf, name):
if isinstance(rf, VirtualRegPort):
- vec = VirtualRegPort(rf.nregs, rf.nregs, wr2=True)
+ vec = VirtualRegPort(rf.nregs, rf.nregs, wr2=True, synced=False)
else:
- vec = VirtualRegPort(rf.depth, rf.depth, wr2=True)
+ vec = VirtualRegPort(rf.depth, rf.depth, wr2=True, synced=False)
# get read/write port specs and create bitvector ports with same names
wr_spec, rd_spec = rf.get_port_specs()
# ok, this is complicated/fun.
class VirtualRegPort(RegFileArray):
- def __init__(self, bitwidth, n_regs, rd2=False, wr2=False):
+ def __init__(self, bitwidth, n_regs, rd2=False, wr2=False, synced=True):
self.bitwidth = bitwidth
self.nregs = n_regs
self.rd2 = rd2 # eurgh hack
self.wr2 = wr2 # eurgh hack
self.regwidth = regwidth = bitwidth // n_regs
- super().__init__(self.regwidth, n_regs)
+ super().__init__(self.regwidth, n_regs, synced=synced)
# "full" depth variant of the "external" port
self.full_wr = RecordObject([("wen", n_regs),