Skip to content

Commit 2ab939e

Browse files
author
Sebastien Bourdeauducq
committedJan 27, 2014
fix SimActor TB terminations
1 parent 90f0dfa commit 2ab939e

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed
 

Diff for: ‎examples/sim/dataflow.py

+4
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,9 @@ def __init__(self):
3434
g.add_connection(self.source, self.sink)
3535
self.submodules.comp = CompositeActor(g)
3636

37+
def do_simulation(self, selfp):
38+
if self.source.token_exchanger.done:
39+
raise StopSimulation
40+
3741
if __name__ == "__main__":
3842
run_simulation(TB())

Diff for: ‎migen/actorlib/sim.py

+4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def __init__(self, generator, actor):
3333
self.actor = actor
3434
self.active = set()
3535
self.busy = True
36+
self.done = False
3637

3738
def _process_transactions(self, selfp):
3839
completed = set()
@@ -69,6 +70,7 @@ def _next_transactions(self):
6970
transactions = next(self.generator)
7071
except StopIteration:
7172
self.busy = False
73+
self.done = True
7274
raise StopSimulation
7375
if isinstance(transactions, Token):
7476
self.active = {transactions}
@@ -87,6 +89,7 @@ def do_simulation(self, selfp):
8789
if not self.active:
8890
self._next_transactions()
8991
self._update_control_signals(selfp)
92+
do_simulation.passive = True
9093

9194
class SimActor(Module):
9295
def __init__(self, generator):
@@ -95,6 +98,7 @@ def __init__(self, generator):
9598

9699
def do_simulation(self, selfp):
97100
selfp.busy = self.token_exchanger.busy
101+
do_simulation.passive = True
98102

99103
def _dumper_gen(prefix):
100104
while True:

0 commit comments

Comments
 (0)
Please sign in to comment.