Ensures that the value of a specified expression does not change in a specified window between a start event and an end event.
assert_win_unchange
[#(severity_level, width, property_type, msg, coverage_level )]
instance_name (clk, reset_n, start_event, test_expr, end_event );
The assert_win_unchange
assertion checker checks the expression start_event at each rising edge of clk to determine if it should open an event window at the start of the next cycle. If start_event is sampled TRUE, the checker evaluates test_expr. At each subsequent rising edge of clk, the checker evaluates end_event and re-evaluates test_expr. If a sampled value of test_expr is changed from its value in the previous cycle, then the assertion fails. If end_event is TRUE, the checker closes the event window and returns to the state of monitoring start_event at the next rising edge of clk.
The checker is useful for ensuring certain variables and expressions do not change in various event windows. A typical use is to verify that synchronization logic responds after a stimulus (for example, bus transactions occurs without interrupts or write commands are not issued during read cycles). Another typical use is to verify that non-deterministic multiple-cycle operations with enabling conditions function properly with the same data.
|
window_open
|
An event window opened (start_event was TRUE).
|
|
window_close
|
An event window closed (end_event was TRUE in an open event window).
|
assert_change, assert_time, assert_unchange, assert_win_change, assert_window
Ensures that the a
input to the divider remains unchanged while a divide operation is performed (i.e., in the window from start
to done
).
© Accellera Organization, Inc. 2005 All Rights Reserved. |
Standard OVL V1.1a |