Ensures that the value of a specified expression changes within a specified number of cycles after a start event initiates checking.
|
Parameters:
severity_level
width
num_cks
action_on_new_start
property_type
msg
coverage_level
|
Class:
n-cycle assertion
|
assert_change
[#(severity_level, width, num_cks, action_on_new_start, property_type,
msg, coverage_level )]
instance_name (clk, reset_n, start_event, test_expr );
The assert_change
assertion checker checks the expression start_event at each rising edge of clk to determine if it should check for a change in the value of test_expr. If start_event is sampled TRUE, the checker evaluates test_expr and re-evaluates test_expr at each of the subsequent num_cks rising edges of clk. If the value of test_expr has not been sampled changed from its start value by the last of the num_cks cycles, the assertion fails.
The method used to determine how to handle a new start event, when the checker is in the state of checking for a change in test_expr, is controlled by the action_on_new_start parameter. The checker has the following actions:
‘OVL_IGNORE_NEW_START
The checker does not sample start_event for the next num_cks cycles after a start event.
‘OVL_RESET_ON_NEW_START
The checker samples start_event every cycle. If a check is pending and the value of start_event is TRUE, the checker terminates the check and initiates a new check with the current value of test_expr (even on the last cycle of a check).
‘OVL_ERROR_ON_NEW_START
The checker samples start_event every cycle. If a check is pending and the value of start_event is TRUE, the assertion fails with an illegal start event
violation. In this case, the checker does not initiate a new check and does not terminate a pending check.
The checker is useful for ensuring proper changes in structures after various events, such as verifying synchronization circuits respond after initial stimuli. For example, it can be used to check the protocol that an “acknowledge” occurs within a certain number of cycles after a “request”. It also can be used to check that a finite-state machine changes state after an initial stimulus.
assert_time, assert_unchange, assert_win_change, assert_win_unchange, assert_window
Ensures that out
changes within 3 cycles after sync
asserts. New starts are ignored.
Ensures that out
changes within 3 cycles after sync
asserts. A new start terminates the pending check and initiates a new check.
Ensures that out
changes within 3 cycles after sync
asserts. A new start reports an illegal start event
violation (without initiating a new check) but any pending check is retained (even on the last check cycle).
© Accellera Organization, Inc. 2005 All Rights Reserved. |
Standard OVL V1.1a |