Question

With SystemVerilog Assertions what is the difference between $assertoff; and $assertkill; ?

They both seem to stop the execution of the assertions.

Was it helpful?

Solution

$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.

OTHER TIPS

$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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top