From: Luke Kenneth Casson Leighton Date: Fri, 17 Apr 2020 13:40:56 +0000 (+0100) Subject: temporarily not use MultiPriorityPicker X-Git-Tag: div_pipeline~1432^2~4 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=374673de180c2f42a46043da7cbd4c89a40009f8;p=soc.git temporarily not use MultiPriorityPicker --- diff --git a/src/soc/scoreboard/group_picker.py b/src/soc/scoreboard/group_picker.py index de9a0d94..1f68b128 100644 --- a/src/soc/scoreboard/group_picker.py +++ b/src/soc/scoreboard/group_picker.py @@ -46,7 +46,8 @@ from nmigen.compat.sim import run_simulation from nmigen.cli import verilog, rtlil from nmigen import Module, Signal, Elaboratable, Array -from nmutil.picker import MultiPriorityPicker as MPP +#from nmutil.picker import MultiPriorityPicker as MPP +from nmutil.picker import PriorityPicker class GroupPicker(Elaboratable): @@ -85,17 +86,18 @@ class GroupPicker(Elaboratable): def elaborate(self, platform): m = Module() - m.submodules.rpick = rpick = MPP(self.gp_wid, self.n_src, False, True) - m.submodules.wpick = wpick = MPP(self.gp_wid, self.n_dst, False, True) - # combine release (output ready signal) with writeable for i in range(self.n_dst): - m.d.comb += wpick.i[i].eq(self.writable_i[i] & self.req_rel_i[i]) - m.d.comb += self.go_wr_o[i].eq(wpick.o[i]) + wpick = PriorityPicker(self.gp_wid) + setattr(m.submodules, "wpick%d" % i, wpick) + m.d.comb += wpick.i.eq(self.writable_i[i] & self.req_rel_i[i]) + m.d.comb += self.go_wr_o[i].eq(wpick.o) for i in range(self.n_src): - m.d.comb += rpick.i[i].eq(self.readable_i[i] & self.rd_rel_i[i]) - m.d.comb += self.go_rd_o[i].eq(rpick.o[i]) + rpick = PriorityPicker(self.gp_wid) + setattr(m.submodules, "rpick%d" % i, rpick) + m.d.comb += rpick.i.eq(self.readable_i[i] & self.rd_rel_i[i]) + m.d.comb += self.go_rd_o[i].eq(rpick.o) return m