scoreboard 6600 experimentation
[soc.git] / src / scoreboard / fu_reg_matrix.py
index 1e74ee436bed7ef0ffbc6a9f32168d6e6bc01923..b8b657e402fb02e1b66f53b0abffafd13aed9816 100644 (file)
@@ -119,10 +119,19 @@ class FURegDepMatrix(Elaboratable):
         src2_rsel = []
         for rn in range(self.n_reg_col):
             rsv = regrsv[rn]
+            dest_rsel_o = []
+            src1_rsel_o = []
+            src2_rsel_o = []
+            for fu in range(self.n_fu_row):
+                dc = dm[fu]
+                # accumulate cell reg-select outputs dest/src1/src2
+                dest_rsel_o.append(dc.dest_rsel_o[rn])
+                src1_rsel_o.append(dc.src1_rsel_o[rn])
+                src2_rsel_o.append(dc.src2_rsel_o[rn])
             # connect cell reg-select outputs to Reg Vector In
-            m.d.comb += [rsv.dest_rsel_i.eq(dc.dest_rsel_o),
-                         rsv.src1_rsel_i.eq(dc.src1_rsel_o),
-                         rsv.src2_rsel_i.eq(dc.src2_rsel_o),
+            m.d.comb += [rsv.dest_rsel_i.eq(Cat(*dest_rsel_o)),
+                         rsv.src1_rsel_i.eq(Cat(*src1_rsel_o)),
+                         rsv.src2_rsel_i.eq(Cat(*src2_rsel_o)),
                         ]
             # accumulate Reg-Sel Vector outputs
             dest_rsel.append(rsv.dest_rsel_o)