Introduction To Formal Equivalence Verification (FEV) : Erik Seligman CS 510, Lecture 4, January 2009
Introduction To Formal Equivalence Verification (FEV) : Erik Seligman CS 510, Lecture 4, January 2009
Goals
Introduce basic concepts of FEV Enable you to try FEV using Cadence Conformal Examine some corner cases
What Is FEV?
Best-established form of FV Other names: Equivalence Checking Answers: Are two models equivalent?
Essential part of design flows Also leveraged for late hand edits (ECOs) Verifying quick changes to a model Fast & easy if model almost the same
Types of FEV
Combinatorial / Synchronous Models must be (mostly) state-matching Very efficient due to no time calculations Works very well for synthesized netlists
Most synthesis tools expect this Others: Synopsys Formality, Magma Quartz
Sequential Allows more abstract RTL, or HLM-RTL FEV More flexibility for late netlist timing edits Much more risk/expense Few commercial tools (Calypto, NEC)
State-Matching FEV
f3 f4
=b = f3
b !(!f3)
EQUAL EQUAL
f3 f4
=b = f3
b !f3
EQUAL DIFFER
Different fanin major issue Set of counterexample values If only specific values cause cex, provides
hint of root cause
Combinational other logic irrelevant Good tools provide annotated cex value
Introduction To Conformal
Conformal Terminology
Gold = golden model (often RTL) Rev = revised model (often netlist)
Many commands have gold/-rev option Key Point = points to map Basic ones: primary inputs/outputs, states Others: blackboxes, dangling (Z) nodes, Can refer to by name or integer ID
Support Set = fanin cone
Conformal Modes
Setup Mode: initial state
Can load models, assign renaming rules Can set various global options Return to this mode: set sys mode setup LEC Mode: checking state Transition with set sys mode lec
Automatically tries to map key points
Can guess many mappings But sometimes fails View mapping as renaming Temporarily rename RTL sig to match netlist add renaming rule to specify mappings
Or add mapped point in LEC mode
Debugging Mismatches
Debug commands available in console
diagnose <point>: Display basic info But easier to debug in gui Report->Compare Data to see all points Red dots indicate mismatches Right-click at mismatch point, and
Diagnose
Gives support set, cex values, and LECs hints From Diagnose window can launch sch view
Example: Inversion
Schematic View
Model Flattening
Minor exceptions to state-matching Useful if flops/latches dont map
Model Flattening
Tool modified cases on previous slides
Internally changes view of logic Only on request, not automatic May cause mismatches rather than curing! Often useful if key point imbalance In Conformal: set flatten model Many options, not just ones on slides Can also use remodel on single point
FEV Constraints
Some References