In reply to dave_59:
Note that the event control never sees the change of the triggered() result going from 1’b1 to 1’b0 because there is no operand changing to cause reevaluation of the expression.
So what causes the triggered method to go from 1’b1 to 1’b0?
Why does it work in this wait statement?
From 1800: “An event expression or wait condition is only reevaluated on a change to an operand in the expression, such as the event prefix of the triggered method. This means that the change of the return value of the triggered method from 1’b1 to 1’b0 at the end of the current time step will not affect an event control or wait statement waiting on the triggered method.”
If" triggered method from 1’b1 to 1’b0 at the end of the current time step",
Then in your example Edit code - EDA Playground
At 20, why don’t we see the triggered going back to an evaluation from 0 to 1?
…
The mysterious side of systemverilog… :)