wishbone: only send ack to the active master in arbiter
This commit is contained in:
parent
a72faaecdd
commit
923fc52e68
|
@ -44,9 +44,14 @@ class Arbiter:
|
|||
s2m_names = [GetSigName(x, False) for x in _desc if not x[0]]
|
||||
for name in s2m_names:
|
||||
source = getattr(self.target, name)
|
||||
i = 0
|
||||
for m in self.masters:
|
||||
dest = getattr(m, name)
|
||||
comb.append(f.Assign(dest, source))
|
||||
if name == "ack_i" or name == "err_i":
|
||||
comb.append(f.Assign(dest, source & (self.rr.grant == f.Constant(i, self.rr.grant.bv))))
|
||||
else:
|
||||
comb.append(f.Assign(dest, source))
|
||||
i += 1
|
||||
|
||||
# connect bus requests to round-robin selector
|
||||
reqs = [m.cyc_o for m in self.masters]
|
||||
|
@ -54,7 +59,6 @@ class Arbiter:
|
|||
|
||||
return f.Fragment(comb) + self.rr.GetFragment()
|
||||
|
||||
|
||||
class Decoder:
|
||||
# slaves is a list of pairs:
|
||||
# 0) structure.Constant defining address (always decoded on the upper bits)
|
||||
|
|
Loading…
Reference in New Issue