From: Luke Kenneth Casson Leighton Date: Thu, 23 May 2019 14:19:49 +0000 (+0100) Subject: set up the shadow grid X-Git-Tag: div_pipeline~1969 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d324edcfe1442cb234be3622ba429d9217ab90c4;p=soc.git set up the shadow grid --- diff --git a/src/experiment/score6600.py b/src/experiment/score6600.py index d4dcf4f1..a4f34564 100644 --- a/src/experiment/score6600.py +++ b/src/experiment/score6600.py @@ -215,7 +215,6 @@ class Scoreboard(Elaboratable): # Int ALUs and Comp Units n_int_alus = 4 m.submodules.cu = cu = CompUnits(self.rwid, n_int_alus) - m.d.comb += cu.shadown_i.eq(-1) m.d.comb += cu.go_die_i.eq(0) # Int FUs @@ -247,6 +246,7 @@ class Scoreboard(Elaboratable): m.submodules.wawgrid = wawgrid = WaWGrid(n_int_fus, n_int_fus) busy_prev = Signal(n_int_fus) busy_curr = Signal(n_int_fus) + busy_prevbit = Signal(n_int_fus) #--------- # ok start wiring things together... @@ -332,6 +332,16 @@ class Scoreboard(Elaboratable): m.d.sync += busy_prev.eq(cu.busy_o) m.d.comb += busy_curr.eq(~busy_prev & cu.busy_o) + # now the "2D-bit-array-linked-list" can be created, with the + # relationships of the previous and current instruction. + # *previous* instruction (busy_prev) shadows *current* instruction + #m.d.comb += wawgrid.shadow_i.eq(cu.busy_o & ~fn_issue_o) + #m.d.comb += wawgrid.fu_i.eq(fn_issue_o) + + # and now we can connect the wawgrid to the shadow matrix. whewww + for i in range(n_int_fus): + m.d.comb += shadows.shadow_i[i].eq(wawgrid.waw_o[i]) + #--------- # Connect Register File(s) #--------- @@ -438,7 +448,7 @@ def scoreboard_sim(dut, alusim): yield dut.int_store_i.eq(0) - for i in range(1): + for i in range(10): # set random values in the registers for i in range(1, dut.n_regs):