Ensures that the value of a specified expression does not change for 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_unchange
[#(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_unchange
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. Each time the checker re-evaluates test_expr, if its value has changed from its value in the previous cycle, 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.
‘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. For example, it can be used to check that multiple-cycle operations with enabling conditions function properly with the same data. It can be used to check that single-cycle operations function correctly with data loaded at different cycles. It also can be used to verify synchronizing conditions that require date to be stable after an initial triggering event.
assert_change, assert_time, assert_win_change, assert_win_unchange, assert_window
Ensures that a
remains unchanged while a divide operation is performed (8 cycles). Restarts during divide operations are ignored.
Ensures that a
remains unchanged while a divide operation is performed (8 cycles). A restart during a divide operation starts the check over.
Ensures that a
remains unchanged while a divide operation is performed (8 cycles). A restart during a divide operation is a violation.
© Accellera Organization, Inc. 2005 All Rights Reserved. |
Standard OVL V1.1a |