User guide
20-14
Using OpenVera Assertions
GR27: WARNING assert check over a non-bool sequence
that does not start with an "if".
Example:
event e: a #1 b;
assert c: check(e);
The assertion will fail any time "a" is false. Unless used as a coverage
assertion that is supposed to track the occurrences of the sequence
"a" followed by "b" in the simulation trace, or when the sampling clock
is some irregular event from the design, the usefulness of the
assertion as a checker should be reconsidered, as it would require
"a" to hold at every clock tick in order to have even a chance to
succeed.
GR31: RECOMMENDATION multiple attempts may be
triggered for the same check.
Example:
Suppose that "req" must return to 0 between activations, and if
asserted it must remain so until "ack" is received, then the following
sequence and an assertion on it would create unnecessary additional
attempts to be triggered for the same req-ack transaction:
event e: if req then req*[1..] #0 ack;
Consider replacing it with:
event e: if posedge req then req*[1..] #0 ack;
The modified event will generate only one non-vacuous attempt for
each assertion of "req".