Hardware Reference
In-Depth Information
$assertpassoff
$assertpasson
$assertfailoff
$assertfailon
$assertvacuousoff
$assertnonvacuouson
The arguments to the system tasks are the same as for the assertion control system
tasks described in Sect. 7.3.1 .
As it can be seen, the assertion action control tasks come in pairs, one for
disabling and one for reenabling the action.
$assertpassoff stops the execution of pass action blocks in the scope specified
by the arguments to the task call until $assertpasson is called affecting the same
scope.
$assertfailoff stops the execution of fail action blocks in the scope specified
by the arguments to the task call until $assertfailon is called affecting the same
scope.
$assertvacuousoff stops the execution of pass action blocks for vacuous
evaluation attempts in the scope specified by the arguments to the task call until
$assertpasson is called affecting the same scope.
All the disabling tasks do not affect evaluation attempts that are already in
progress as well as action blocks that are currently executing.
The following are typical cases of using these tasks:
￿ In regression tests, disable pass action blocks on assert and assume statements
unless their execution has some functional impact on the testbench behavior.
In covers, it could remain enabled if they provide information for some user-
specific coverage analysis tools.
￿ Even when pass action blocks are enabled, we recommend to disable their
execution on vacuous evaluation attempts because they may lead to an incorrect
interpretation of the verification results.
￿ If default failure messages issued by the verification tool are sufficient, and fail
and pass action block execution has no functional impact on the testbench, it may
be preferable to disable the execution of fail action blocks. Verification tools often
have means to control how many failures of assertions are reported by default
reporting mechanisms. This is useful for catching the first few failures without
cluttering the log with redundant repetitions of the same message.
7.3.3
General Assertion Control Task
The preceding sections discussed control tasks that mostly perform a singular func-
tion. For example, $assertoff turns off assertions and $assertpassoff disables
the execution of action blocks associated with assertion successes. Moreover, the
selection of statements by these tasks is limited and not adequate in situations when
only certain categories of statements are needed to be controlled. It is not possible to
Search WWH ::




Custom Search