A property typically specifies three things:
- Trigger Clock:
@(posedge clk) - Disable Condition: (Optional) When to ignore the check (e.g., Reset).
- Behavior: The sequence or logical expression to check.
property p_safe_grant;
@(posedge clk)
disable iff (!rst_n) // Ignore checking when Reset is Active Low
req |=> gnt; // The Rule
endproperty
a_safe_grant: assert property (p_safe_grant);