270 likes | 355 Views
Optimal Redundancy Removal without Fixedpoint Computation. Mike Case † , Jason Baumgartner, Hari Mony, Bob Kanzelman IBM System and Technology Group FMCAD 2011. † Now with Calypto Design Systems. Outline. Introduction The Proof Graph Proof Graph + Induction Proof Graph + TBV
E N D
Optimal Redundancy Removal without Fixedpoint Computation Mike Case†, Jason Baumgartner, Hari Mony, Bob Kanzelman IBM System and Technology Group FMCAD 2011 † Now with Calypto Design Systems
Outline • Introduction • The Proof Graph • Proof Graph + Induction • Proof Graph + TBV • Experimental Results Mike Case
Interpolation Combinational Simplification Redundancy Removal Retiming Redundancy Removal • Redundancy Removal • Synthesis for verification Commonly calleda “merge” A B Mike Case
A B Proof Methods • Induction • TBV (Transformation-Based Verification) Base Case: (A=B)0Inductive Step: (A=B)t implies (A=B)t+1 Any Model Checking Flow miter Mike Case
Using induction or TBV Fixed-Point Flow function redundancyRemoval() { conjecture that all gates are equivalent random simulation + refine equiv. classes bounded model checking + refine equiv. classes while (proveEquivalences() returns a counterexample) { simulate the counterexample + refine equiv. classes } merge the remaining equivalences } Problem: Repeatedly tests the same equivalences until all are proved Problem: Merge only at the end. Timeouts? Mike Case
Our Contributions • Track dependencies between equivalences • Which subset(s) of equivalences are soundly proved, despite the existence of counterexamples? • Benefits: • Partial results • Don’t re-test soundly proved equivalences • Skip SAT calls that cannot lead to merges • Induction: up to 75% less runtime 97% reduction in SAT calls • TBV: up to 90% less runtime 80% fewer calls to interpolation Mike Case
Outline • Introduction • The Proof Graph • Proof Graph + Induction • Proof Graph + TBV • Experimental Results Mike Case
Dependencies • Suppose induction cannot prove A=B but can prove (A=B)^(C=D) • Then A=B depends on C=D • “Proof graph” used to track such dependencies Mike Case
The Proof Graph • Nodes: equivalence classes, edges: “depends on” • Observation: something is soundly proved iff all of its dependencies are soundly proved Node 1 Node 3 Node 4 RepresentsEquiv Class 1 Represents:Equiv Class 4 Represents:Equiv Class 3 Node 2 RepresentsEquiv Class 2 Mike Case
Redundancy Removal w/ Proof Graph • while (there are suspected equivalences) { • setup the current iteration + build the proof graph • while (candidates = getProofCandidates()) { • switch (proveEquivalences(candidates)) { • case proved: • update the proof graph + try early merging • case counterexample: • simulate the counterexample + refine equivalences • update the proof graph • }}} Mike Case
Outline • Introduction • The Proof Graph • Proof Graph + Induction • Proof Graph + TBV • Experimental Results Mike Case
Proof Dependencies (A=B)^(C=D) Suspected equivalences: [(A=B)^(C=D)]Timplies [(A=B)^(C=D)]T+1 Inductive step: (A≠B)T+1 such that (A=B)T and (C=D)T Boolean Satisfiability problems: ... Results: (A≠B)T+1 is unsatisfiable, and the proof depends on (C=D)T New edge: (A=B) (C=D) Mike Case
? ? ? = = = Structural Dependencies • Dependencies • Speculative reduction A2 B2 A2 B2 C2 D2 ≡ A1 B1 ≡ A1 B1 ≡ C1 D1 (A=B) (C=D) New edges: (A=B) (A=B) Mike Case
Proof Graph Algorithms By Example proved = 0soundlyProved = 0falsified = 0 Node 1 Node 3 Node 4 proved = 0soundlyProved = 0falsified = 0 proved = 0soundlyProved = 0falsified = 0 Node 2 proved = 0soundlyProved = 0falsified = 0 Mike Case
Proof Graph Algorithms By Example proved = 0soundlyProved = 0falsified = 0 Node 1 Node 3 Node 4 proved = 0soundlyProved = 0falsified = 0 proved = 0soundlyProved = 0falsified = 0 Node 2 proved = 0soundlyProved = 0falsified = 0 Mike Case
Proof Graph Algorithms By Example proved = 0soundlyProved = 0falsified = 0 Node 3 Node 1 Node 4 soundlyProved = 0falsified = 0 proved = 1 proved = 0soundlyProved = 0falsified = 0 Node 2 proved = 0soundlyProved = 0falsified = 0 Mike Case
Proof Graph Algorithms By Example proved = 1 soundlyProved = 1 falsified = 0 Merge Merge Node 3 Node 1 Node 4 proved = 1falsified = 0 proved = 0soundlyProved = 0falsified = 0 soundlyProved = 1 Node 2 proved = 0soundlyProved = 0falsified = 0 Mike Case
Proof Graph Algorithms By Example proved = 1soundlyProved = 1falsified = 0 Node 3 Node 1 Node 4 proved = 1soundlyProved = 1falsified = 0 proved = 0soundlyProved = 0falsified = 0 Node 2 proved = 0soundlyProved = 0falsified = 0 Mike Case
Proof Graph Algorithms By Example proved = 1soundlyProved = 1falsified = 0 Skip Node 3 Node 1 Node 4 proved = 1soundlyProved = 1falsified = 0 proved = 0soundlyProved = 0falsified = 0 Node 2 proved = 0soundlyProved = 0 falsified = 1 Mike Case
Outline • Introduction • The Proof Graph • Proof Graph + Induction • Proof Graph + TBV • Experimental Results Mike Case
Suspected Redundancies Interpolation Spec Reduced Netlist Speculative Reduction +Miter Creation Netlist TBV Review • Problems • Long runtime • Frequent restarts LogicSynthesis Mike Case
TBV Dependencies • No inductive hypothesis no proof dependencies • Structural dependencies: New edge: (A=B) (C=D) Mike Case
Outline • Introduction • The Proof Graph • Proof Graph + Induction • Proof Graph + TBV • Experimental Results Mike Case
SixthSense Experiment Setup • 1300 Benchmarks • IBM property checking and SEC benchmarks • Hard HWMCC 2010 • Largest AIG is 5.3M Ands and 330k registers • Redundancy removal w/ k=1 induction • Redundancy removal w/ TBV(combinational simplification + interpolation) Mike Case
Experimental Results : Runtime Induction TBV Mike Case
Experimental Results : Number of Proofs Induction TBV Mike Case
Conclusion • Major enhancement to redundancy removal • Minor book-keeping overhead • Reduces the runtime of our engine • Reduces the number of SAT calls • Provides partial results • Used everyday within IBM Mike Case