Presentation is loading. Please wait.

Presentation is loading. Please wait.

Optimal Redundancy Removal without Fixedpoint Computation

Similar presentations


Presentation on theme: "Optimal Redundancy Removal without Fixedpoint Computation"— Presentation transcript:

1 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

2 Outline Introduction The Proof Graph Proof Graph + Induction
Proof Graph + TBV Experimental Results Mike Case

3 Combinational Simplification
Redundancy Removal Redundancy Removal Synthesis for verification Commonly called a “merge” A B Combinational Simplification Retiming Redundancy Removal Interpolation Mike Case

4 Any Model Checking Flow
Proof Methods Induction TBV (Transformation-Based Verification) Base Case: (A=B)0 Inductive Step: (A=B)t implies (A=B)t+1 A B miter Any Model Checking Flow Mike Case

5 Fixed-Point Flow Using induction or TBV
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

6 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

7 Outline Introduction The Proof Graph Proof Graph + Induction
Proof Graph + TBV Experimental Results Mike Case

8 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

9 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 Represents Equiv Class 1 Represents: Equiv Class 3 Represents: Equiv Class 4 Node 2 Represents Equiv Class 2 Mike Case

10 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

11 Outline Introduction The Proof Graph Proof Graph + Induction
Proof Graph + TBV Experimental Results Mike Case

12 Proof Dependencies (A=B)^(C=D) [(A=B)^(C=D)]T implies [(A=B)^(C=D)]T+1
Suspected equivalences: [(A=B)^(C=D)]T implies [(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

13 Structural Dependencies
Speculative reduction Dependencies = ? A2 B2 = ? A2 B2 = ? C2 D2 A1 B1 A1 B1 C1 D1 (A=B)  (C=D) New edges: (A=B)  (A=B) Mike Case

14 Proof Graph Algorithms By Example
proved = 0 soundlyProved = 0 falsified = 0 Node 1 Node 3 Node 4 proved = 0 soundlyProved = 0 falsified = 0 proved = 0 soundlyProved = 0 falsified = 0 Node 2 proved = 0 soundlyProved = 0 falsified = 0 Mike Case

15 Proof Graph Algorithms By Example
proved = 0 soundlyProved = 0 falsified = 0 Node 1 Node 3 Node 4 proved = 0 soundlyProved = 0 falsified = 0 proved = 0 soundlyProved = 0 falsified = 0 Node 2 proved = 0 soundlyProved = 0 falsified = 0 Mike Case

16 Proof Graph Algorithms By Example
proved = 0 soundlyProved = 0 falsified = 0 Node 1 Node 3 Node 4 soundlyProved = 0 falsified = 0 proved = 1 proved = 0 soundlyProved = 0 falsified = 0 Node 2 proved = 0 soundlyProved = 0 falsified = 0 Mike Case

17 Proof Graph Algorithms By Example
proved = 1 soundlyProved = 1 falsified = 0 Node 1 Merge Node 3 Merge Node 4 proved = 1 falsified = 0 proved = 0 soundlyProved = 0 falsified = 0 Node 2 soundlyProved = 1 proved = 0 soundlyProved = 0 falsified = 0 Mike Case

18 Proof Graph Algorithms By Example
proved = 1 soundlyProved = 1 falsified = 0 Node 1 Node 3 Node 4 proved = 1 soundlyProved = 1 falsified = 0 proved = 0 soundlyProved = 0 falsified = 0 Node 2 proved = 0 soundlyProved = 0 falsified = 0 Mike Case

19 Proof Graph Algorithms By Example
proved = 1 soundlyProved = 1 falsified = 0 Skip Node 1 Node 3 Node 4 proved = 1 soundlyProved = 1 falsified = 0 proved = 0 soundlyProved = 0 falsified = 0 Node 2 proved = 0 soundlyProved = 0 falsified = 1 Mike Case

20 Outline Introduction The Proof Graph Proof Graph + Induction
Proof Graph + TBV Experimental Results Mike Case

21 Suspected Redundancies Speculative Reduction + Miter Creation
TBV Review Problems Long runtime Frequent restarts Suspected Redundancies Speculative Reduction + Miter Creation Spec Reduced Netlist Netlist Logic Synthesis Interpolation Mike Case

22 TBV Dependencies No inductive hypothesis  no proof dependencies
Structural dependencies: New edge: (A=B)  (C=D) Mike Case

23 Outline Introduction The Proof Graph Proof Graph + Induction
Proof Graph + TBV Experimental Results Mike Case

24 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

25 Experimental Results : Runtime
Induction TBV Mike Case

26 Experimental Results : Number of Proofs
Induction TBV Mike Case

27 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


Download ppt "Optimal Redundancy Removal without Fixedpoint Computation"

Similar presentations


Ads by Google