Skip to content

Commit c68fedd

Browse files
committed
done condition in thread.stream
1 parent be0d644 commit c68fedd

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

veriloggen/thread/stream.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,17 @@ def _synthesize_run_fsm(self, parent_fsm, args, kwargs, cond=None):
268268
for done_flag in self.done_flags:
269269
done = make_condition(done, done_flag)
270270

271-
self.fsm.If(done)(
272-
self.running_reg(0)
273-
)
274-
self.fsm.If(done).goto_init()
271+
if done is not None:
272+
self.fsm.If(done)(
273+
self.running_reg(0)
274+
)
275+
self.fsm.If(done).goto_init()
276+
277+
self.running.assign(vtypes.Ands(
278+
self.running_reg, vtypes.Not(done)))
275279

276-
self.running.assign(vtypes.Ands(self.running_reg, vtypes.Not(done)))
280+
else:
281+
self.running.assign(0)
277282

278283
# clean-up jump conditions
279284
cvisitor.clearBreak()

0 commit comments

Comments
 (0)