1 / 27

Optimal Redundancy Removal without Fixedpoint Computation

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

Download Presentation

Optimal Redundancy Removal without Fixedpoint Computation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. Interpolation Combinational Simplification Redundancy Removal Retiming Redundancy Removal • Redundancy Removal • Synthesis for verification Commonly calleda “merge”  A B Mike Case

  4. 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

  5. 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

  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 RepresentsEquiv Class 1 Represents:Equiv Class 4 Represents:Equiv Class 3 Node 2 RepresentsEquiv 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) 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

  13. ? ? ? = = = 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

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

  21. Suspected Redundancies Interpolation Spec Reduced Netlist Speculative Reduction +Miter Creation Netlist TBV Review • Problems • Long runtime • Frequent restarts LogicSynthesis 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

More Related