From: Sebastien Bourdeauducq Date: Sat, 15 Jun 2013 14:51:09 +0000 (+0200) Subject: lasmibus/crossbar: better switching policy X-Git-Tag: 24jan2021_ls180~2099^2~555 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6d6d232cadd7e531e5566c1115a14c79e559b9eb;p=litex.git lasmibus/crossbar: better switching policy --- diff --git a/migen/bus/lasmibus.py b/migen/bus/lasmibus.py index 201a9f71..be724ac1 100644 --- a/migen/bus/lasmibus.py +++ b/migen/bus/lasmibus.py @@ -65,14 +65,11 @@ class Crossbar(Module): bank = getattr(controller, "bank"+str(nb)) # arbitrate - rr = roundrobin.RoundRobin(nmasters, roundrobin.SP_CE) + rr = roundrobin.RoundRobin(nmasters, roundrobin.SP_WITHDRAW) self.submodules += rr bank_selected = [cs & (ba == nb) for cs, ba in zip(controller_selected, m_ba)] bank_requested = [bs & master.stb for bs, master in zip(bank_selected, self.masters)] - self.comb += [ - rr.request.eq(Cat(*bank_requested)), - rr.ce.eq(~bank.stb | bank.ack) - ] + self.comb += rr.request.eq(Cat(*bank_requested)), # route requests self.comb += [