Reputation: 20514
With SystemVerilog Assertions what is the difference between $assertoff;
and $assertkill;
?
They both seem to stop the execution of the assertions.
Upvotes: 1
Views: 8207
Reputation: 1
$assertoff is nothing but it's stops checking all specified assertion unless and untill sunsequent of $assert is on.
While u processing on an assertion it is not to affected whether my assertion is pass or fail.
Upvotes: -2
Reputation: 20514
$assertoff
will stop assertions except those already in the active state.
Assertions are active once triggered and waiting to move to failed or completed. $assertoff
will not stop or kill the assertions in the active state.
$assertkill
will stop all assertions, moving all to state off.
From Cadence Help:
$assertoff
Suspends checking of all specified assertions until $asserton is encountered. An assertion that is already executing, including assertion action blocks, will continue executing.$assertkill
Halts checking of all specified assertions that are currently executing, then suspends checking of all specified assertions until $asserton is encountered.
NB: Per the IEEE 1800 SystemVerilog standard, the $assertkill task has no effect on immediate assertions and non-temporal concurrent assertions, due to scheduling issues.
Upvotes: 3