Formal Verification · All levels

SVA Sequences and Properties: Debug Playbook

Debug Playbook for SVA Sequences and Properties.

Debug playbook

Debug Playbook for SVA Sequences and Properties is anchored on non-vacuous closure rate, counterexample turnaround, and residual-risk trend by requirement class. Convert outcomes into assumption-aware, evidence-backed actions.

  1. Freeze assumptions, RTL hash, and engine metadata.

  2. Locate first divergence cycle and classify source.

  3. Classify mechanism: model mismatch, weak property, setup issue, or RTL defect.

  4. Apply one focused reproducer and one bounded fix.

  5. Re-run sibling properties and critical covers before closure.

Review memo template

diagram
FORMAL REVIEW MEMO - SystemVerilog Assertions (SVA) / SVA Sequences and Properties

1. Symptom
   - Failing metric: non-vacuous closure rate, counterexample turnaround, and residual-risk trend by requirement class
   - Trigger context: <mode/reset/env assumptions>
   - First divergence boundary: <model/property/rtl>

2. Mechanism hypothesis
   - Candidate mechanism: A `sequence` captures a timed pattern and a `property` turns that pattern into a check under a sampling clock.
   - Competing hypotheses: weak property, over-constraint, setup mismatch, rtl bug
   - Missing evidence: <trace, vacuity report, cover status>

3. Proposed action
   - Smallest reversible change: <assumption/property/rtl>
   - Expected movement: <closure quality, runtime, bug isolation>
   - Regression risk: hidden legal behavior, false pass, schedule churn

4. Signoff
   - Required artifact: closure packet for SVA Sequences and Properties: assumptions audit, proof status matrix, and replay-ready divergence trace
   - Required owners: formal verification owner, rtl owner, SystemVerilog Assertions (SVA) owner
   - Final decision: close, bounded closure, rollback, or escalate

Formal deep dive

SVA scales when temporal intent, clock sampling, and reset gating are precise enough to be replayed and reviewed.

Concept diagram

diagram
SVA INTENT CHAIN

timing contract -> sequence composition -> property implication -> sampled failure trace

Metric graph

diagram
ASSERTION QUALITY SIGNALS

non-vacuous hit rate    ████████
clock/reset mismatches  ████
false-positive churn    ███

Metrics and artifacts to collect

  • assertion trigger hit-rate

  • implication timing mismatch bucket

  • reset-window noise ratio

  • assertion decomposition quality score

Mini case study

A protocol failure vanished after correcting `|->` vs `|=>` semantics and reset masking boundaries.

Debug branches

  • Confirm antecedent trigger at sampled clock edges.

  • Verify implication operator matches protocol timing contract.

  • Split monolithic properties into stage-local checks.

Senior review question

Ask: which requirement intent is proven, under which assumptions, and what residual risk remains?

Key takeaways

  • Tie each proof claim to assumption boundaries and reachability evidence.

  • Prefer minimal reversible fixes and preserve legal behavior visibility.

Common pitfalls

  • Treating runtime reduction as proof-quality improvement without audits.

  • Declaring closure while critical covers remain unreachable.

  • Using broad waivers instead of first-divergence root-cause ownership.

Debug ladder

Sequence: reproduce -> classify -> isolate first divergence -> patch -> revalidate sibling properties.

Avoid mixing assumption and RTL fixes in the same experiment.