diff --git a/heavycomps/heavycomps/roundrobin.py b/heavycomps/heavycomps/roundrobin.py index f0e6e71..5747884 100644 --- a/heavycomps/heavycomps/roundrobin.py +++ b/heavycomps/heavycomps/roundrobin.py @@ -9,16 +9,12 @@ class RoundRobin: def elaborate(self, platform): m = Module() - n = self.n - if n > 1: - with m.Switch(self.grant): - for i in range(n): - with m.Case(i): - with m.If(~self.request[i]): - for j in reversed(range(i+1, i+n)): - t = j % n - with m.If(self.request[t]): - m.d.sync += self.grant.eq(t) - else: - m.d.comb += self.grant.eq(0) + with m.Switch(self.grant): + for i in range(self.n): + with m.Case(i): + with m.If(~self.request[i]): + for j in reversed(range(i+1, i+self.n)): + t = j % self.n + with m.If(self.request[t]): + m.d.sync += self.grant.eq(t) return m