User guide

20-12
Using OpenVera Assertions
posedge a ? 10'd1 :
cnt > 10'd1000 ? cnt :
cnt = cnt + 10'd1;
event e1: if posedge a then ((cnt <= 11'd1000) && a) * [1..] #1 b;
}
Alternately, if overlaps are possible consider using time stamps
stored in a queue (see for instance the OVA standard checker unit
"ova_req_ack_unique").
GR14: RECOMMENDATION top-level conjunctions over
events in "check" assertions.
Example:
clock posedge clk {
event e1: ...;
...
event eN: ...;
event e: if a then e1 && e2 && e3 && ... ;
}
assert c: check(e);
Consider placing an assertion on each individual event as follows:
assert c1: check (if a then e1);
assert c2: check (if a then e2);
assert c3: check (if a then e3);
...
This creates more assertions but they may execute faster because
they can be considerably simpler than event "e".
GR15: RECOMMENDATION Simulation time is used as the
sampling clock
The event used in an assertion does not have a sampling clock. The
simulation time will be used in that case which may lead to inefficient
simulation. Consider whether such fine sampling is required in your
application.