Live-lock is when two states of a SM keep bouncing between each other in perpetuity. For example, S1 transitions to S2 and S2 transitions to S1. And this keeps going on forever prohibiting state machine to advance.
From SV assertion point of view, I’m trying to write an assertion when on detection of such bouncing states (for, let’s say 32 transitions), the assertion fails.
I know how to write an assertion for a dead-lock but not sure how to write an assertion for live-lock.
I was not clear on the requirements. I used the set_1k to exclude
other st==S1 from refiring until the triggered assertion passes or fail.
But on 2nd thoughts, you don’t need it.
Ben systemverilog.us