- rd_pend_i = []
- wr_pend_i = []
- for x in range(self.n_fu_col):
- dc = dm[x]
- if x == y: # ignore hazards on the diagonal: self-against-self
- dummyrd = Signal(reset_less=True)
- dummywr = Signal(reset_less=True)
- rd_pend_i.append(dummyrd)
- wr_pend_i.append(dummywr)
- continue
- # accumulate cell rd_pend/wr_pend/go_rd/go_wr
- rd_pend_i.append(dc.rd_pend_i[y])
- wr_pend_i.append(dc.wr_pend_i[y])
- # wire up inputs from module to row cell inputs (Cat is gooood)
- m.d.comb += [Cat(*rd_pend_i).eq(self.rd_pend_i),
- Cat(*wr_pend_i).eq(self.wr_pend_i),
+ dc = dm[y]
+ # wire up inputs from module to row cell inputs
+ m.d.comb += [dc.rd_pend_i.eq(self.rd_pend_i),
+ dc.wr_pend_i.eq(self.wr_pend_i),