Assertions at the end of simulation
Q. How many assertions are checked at the end of simulation time?
Evaluation attempts may still be in progress at the end of simulation time. The number of such evaluation attempts is reported at the bottom of the log file. For instance:
=N: 12 SVA evaluations in progress at end of simulation, 7 considered passed, 5 considered failed.
indicates that 12 evaluations attempts were in progress at the end of simulation time. Given that no subsequent sampling tick exist, the evaluation engine was forced to make pass or fail decision: 7 (out of 12) evaluation attempts have passed and 5 (out of 12) evaluation attempts have failed.
Q. Why is the action block of my assertion not executed at the end of simulation time?
After the scheduler event queue is exhausted or terminated by the
$finish task, a verdict for the ongoing evaluation attempts is determined. At this point, the action block of an assertion statement cannot be scheduled. Instead:
- if the assertion fails, the fail statement is superseded by an
(end of simulation)is appended to the end of the
$errormessage to indicate the need to supersede the fail statement.
- if the assertion passes, the pass statement is superseded by a null statement
Q. How to display the call stack?
$stacktrace system task. The stack is displayed as it is seen from the point of calling