Hi Forum,
I am trying following example using sequence method ‘triggered’ within disable iff clause
At time:15 units both sequence e4 matches as well as consequent matches.
(1) In this case should the pass action block take precedence, or should the check be disabled or both?
If I were to observe pass message, would it be a violation as per LRM guidelines?
(2) I am aware that we have boolean expressions , sequence expressions and property expressions
and have tried examples where disable iff clause has boolean expressions / sequence expressions ( like in (1) ), Is property expression (eg: multi-clocked property expression) legal within disable iff clause ?
(3) Are disable iff legal in cover properties as well ?
(4) I believe disable iff clause are not legal in immediate assertions.
Since immediate assertions are basically procedural statements, should one use an if condition to skip the immediate assertion?
If the disable condition is true at anytime between the start of the attempt in the Observed region, inclusive, and the end of the evaluation attempt, inclusive, then the overall evaluation of the property results in disabled. A property has disabled evaluation if it was preempted due to a disable iff condition. A disabled evaluation of a property does not result in success or failure.
the disable iff has precedence and the action block should not execute
The sequence method seq.triggered() is a boolean expression, not a sequence expression.
A disable iff is part of the property expression and can be used with the cover directive.
16.12 Declaring properties ::
disable iff (expression_or_dist) property_expr
16.6 Boolean expressions ::
There are two places where Boolean expressions occur in concurrent assertions. They are as follows:
— In a sequence or property expression
— In the disable condition inferred for an assertion, specified either in a top-level disable iff clause
(see 16.12) or in a default disable iff declaration (see 16.15)
Thus for (2) only boolean expressions are valid within disable iff clause