Skip to main content
VLSI Korea

VERIFICATION

Verification Plan: Executable Contracts, Coverage, and Formal

Connect requirements to simulation checks, coverage, and bounded or unbounded proofs. A passing proof is meaningful only under reviewed environment assumptions and reachable scenarios.

Inputs

  • Requirements, interface contracts, and bug history
  • Legal environment behavior and reset assumptions
  • Risk-ranked state-space and coverage goals

Method

  • Translate each requirement into an observable property, scoreboard rule, or coverpoint and assign an owner plus closure evidence.
  • Place interface assertions near the interface; distinguish DUT guarantees (assert) from legal stimulus constraints (assume).
  • Use constrained-random tests for interactions and monitors for protocol facts; cross coverage only for decisions that affect risk.
  • Prove small control invariants early, run cover properties to demonstrate intended progress, and inspect counterexamples as waveforms.
  • Review assumptions for overconstraint and vacuity; add covers that show the antecedent and key corner states are reachable.

Deliverables

  • Requirements-to-tests/properties/coverage matrix
  • Reusable interface assertions and monitors
  • Formal proof/cover report with assumption review

Pitfalls

  • Assuming away illegal behavior that the DUT must reject or recover from.
  • Using coverage percentage as evidence that correctness properties were checked.

Sources

UVM 1.1 User’s Guide
Accellera · §3.12.2 Implementing Checks and Coverage in Interfaces

Formal extensions to Verilog
YosysHQ · §6.1 SystemVerilog Immediate Assertions

Getting started
YosysHQ · SymbiYosys