formal verification basics

**Formal Verification** — using mathematical proofs to verify hardware correctness exhaustively, without simulation test vectors. **Types** - **Equivalence Checking (EC)**: Prove two designs are functionally identical - RTL vs. RTL (after modification) - RTL vs. gate netlist (after synthesis) - Gate netlist vs. gate netlist (after ECOs) - Tools: Synopsys Formality, Cadence Conformal - **Model Checking / Property Checking**: Prove specific properties hold for all possible inputs - "The FIFO never overflows" - "The arbiter never grants two masters simultaneously" - "No deadlock in the protocol" - Written as SVA (SystemVerilog Assertions) - Tools: Cadence JasperGold, Synopsys VC Formal **Advantages Over Simulation** - Exhaustive: Covers ALL possible input sequences (simulation covers only tested ones) - Finds corner cases humans miss - Can prove absence of bugs (not just presence) **Limitations** - State space explosion: Cannot handle full chip — works on blocks - Requires expertise to write meaningful properties - Some properties are undecidable **Formal verification** is now mandatory for safety-critical designs (automotive, aerospace) and widely used for protocol verification and post-synthesis checking.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account