Skip to main content...
S3 · Verification Engineering (SV + UVM)
35 min

Day 105: SVA II: concurrent assertions, |-> vs |=>, sequences

Concurrent assertions check behavior over time — 'a request is always granted within 3 cycles'. This temporal power is what makes SVA special.

SVA II: concurrent assertions and sequences

Concurrent assertions check temporal properties across clock cycles. They use an antecedent → consequent form: |-> (overlapping — consequent checked the same cycle the antecedent completes) and |=> (non-overlapping — checked the *next* cycle). Sequences describe multi-cycle patterns with delays (##n) and repetition. Together they express rules like 'every request is acknowledged within 1–3 cycles'.

A concurrent assertion with a bounded response
// after a request, ack must arrive within 1 to 3 cycles
property p_req_ack;
    @(posedge clk) disable iff (!rst_n)
        req |-> ##[1:3] ack;
endproperty
assert property (p_req_ack) else $error("ack missing after req");

// a two-cycle handshake sequence
sequence s_handshake;
    req ##1 gnt ##1 done;
endsequence
assert property (@(posedge clk) start |=> s_handshake);

|-> vs |=> is a guaranteed question

'Write a concurrent SVA for a req→ack protocol with a max-latency bound, cold' is a named Stage-3 exit criterion, and '|-> vs |=>' is asked constantly. Crisp answer: |-> checks the consequent on the same cycle the antecedent matches; |=> checks it the following cycle (equivalent to |-> ##1). Know it and the ##[1:3] bounded-response idiom cold.

Key terms

Concurrent assertion
A clocked assertion checking a temporal property across cycles.
|-> (overlapping)
Implication where the consequent is checked the same cycle the antecedent completes.
|=> (non-overlapping)
Implication where the consequent is checked the next cycle (|-> ##1).
Sequence
A multi-cycle temporal pattern using ##n delays and repetition operators.
disable iff
A guard that voids an assertion during reset or other conditions.

Before moving on, you should be able to

In SVA, how do |-> and |=> differ?

We use cookies

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Learn more

    Day 105: SVA II: concurrent assertions, |-> vs |=>, sequences | RBTechIconX