return fu_bitdict
def connect_rdports(self, m, fu_bitdict):
+ """connect read ports
+
+ orders the read regspecs into a dict-of-dicts, by regfile, by regport name,
+ then connects all FUs that want that regport by way of a PriorityPicker.
+ """
comb, sync = m.d.comb, m.d.sync
fus = self.fus.fus
regs = self.regs
comb += src.eq(rport.data_o) # all FUs connect to same port
def connect_wrports(self, m, fu_bitdict):
+ """connect write ports
+
+ orders the write regspecs into a dict-of-dicts, by regfile, by regport name,
+ then connects all FUs that want that regport by way of a PriorityPicker.
+
+ note that the write-port wen, write-port data, and go_wr_i all need to
+ be on the exact same clock cycle. as there is a combinatorial loop bug
+ at the moment, these all use sync.
+ """
comb, sync = m.d.comb, m.d.sync
fus = self.fus.fus
regs = self.regs