diff --git a/migen/actorlib/sim.py b/migen/actorlib/sim.py index de11f1c..03d158d 100644 --- a/migen/actorlib/sim.py +++ b/migen/actorlib/sim.py @@ -30,13 +30,10 @@ class TokenExchanger(PureSimulable): else: s.wr(ep.ack, 1) elif isinstance(ep, Source): - if s.rd(ep.stb): - if s.rd(ep.ack): - completed.add(token) - s.wr(ep.stb, 0) - else: - s.wr(ep.stb, 1) - s.multiwrite(ep.token, token.value) + if s.rd(ep.ack): + completed.add(token) + s.wr(ep.stb, 1) + s.multiwrite(ep.token, token.value) else: raise TypeError self.active -= completed