From: Luke Kenneth Casson Leighton Date: Sat, 18 May 2019 07:47:29 +0000 (+0100) Subject: whoops use global vector correctly X-Git-Tag: div_pipeline~2026 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7499ab9b204a54b4cd34676f4c7f1a3f13c05ffe;p=soc.git whoops use global vector correctly --- diff --git a/src/experiment/cscore.py b/src/experiment/cscore.py index 5585580d..7f692aac 100644 --- a/src/experiment/cscore.py +++ b/src/experiment/cscore.py @@ -181,8 +181,8 @@ class Scoreboard(Elaboratable): # Connect INT Fn Unit global wr/rd pending for fu in if_l: - m.d.comb += fu.g_int_wr_pend_i.eq(intfu_wr_pend_v) - m.d.comb += fu.g_int_rd_pend_i.eq(intfu_rd_pend_v) + m.d.comb += fu.g_int_wr_pend_i.eq(g_int_wr_pend_v.g_pend_o) + m.d.comb += fu.g_int_rd_pend_i.eq(g_int_rd_pend_v.g_pend_o) # Connect FU-FU Matrix, NOTE: FN Units readable/writable considered # to be unit "read-pending / write-pending" diff --git a/src/scoreboard/fn_unit.py b/src/scoreboard/fn_unit.py index 30669429..3edabbde 100644 --- a/src/scoreboard/fn_unit.py +++ b/src/scoreboard/fn_unit.py @@ -164,8 +164,8 @@ class FnUnit(Elaboratable): g_rd = Signal(self.reg_width, reset_less=True) ro = Signal(reset_less=True) m.d.comb += g_rd.eq(self.g_wr_pend_i & self.rd_pend_o) - m.d.comb += ro.eq(~g_rd.bool() & rd_l.q) - m.d.comb += self.readable_o.eq(ro) + m.d.comb += ro.eq(~g_rd.bool()) + m.d.comb += self.readable_o.eq(ro & rd_l.q) # writable output signal g_wr_v = Signal(self.reg_width, reset_less=True) @@ -173,7 +173,7 @@ class FnUnit(Elaboratable): wo = Signal(reset_less=True) m.d.comb += g_wr_v.eq(g_pend_i & xx_pend_o) m.d.comb += g_wr.eq(~g_wr_v.bool()) - m.d.comb += wo.eq(g_wr & rd_l.q & shadown) + m.d.comb += wo.eq(g_wr & rd_l.qn & self.req_rel_i & shadown) m.d.comb += writable_o.eq(wo) return m diff --git a/src/scoreboard/fu_picker_vec.py b/src/scoreboard/fu_picker_vec.py index fd44c45f..21ed7fc2 100644 --- a/src/scoreboard/fu_picker_vec.py +++ b/src/scoreboard/fu_picker_vec.py @@ -16,6 +16,6 @@ class FU_Pick_Vec(Elaboratable): def elaborate(self, platform): m = Module() m.d.comb += self.readable_o.eq(self.rd_pend_i.bool()) - m.d.comb += self.writable_o.eq(self.wr_pend_i.bool()) + m.d.comb += self.writable_o.eq(~self.wr_pend_i.bool()) return m