enhanced verification by temporal decomposition
play

Enhanced Verification by Temporal Decomposition Mike Case , Hari - PowerPoint PPT Presentation

Enhanced Verification by Temporal Decomposition Mike Case , Hari Mony, Jason Baumgartner, Bob Kanzelman FMCAD 2009, Nov. 16, 2009 Introduction Domain: gate-level property checking (and SEC) Problem: simplify the design; remove irrelevant


  1. Enhanced Verification by Temporal Decomposition Mike Case , Hari Mony, Jason Baumgartner, Bob Kanzelman FMCAD 2009, Nov. 16, 2009

  2. Introduction � Domain: gate-level property checking (and SEC) � Problem: simplify the design; remove irrelevant detail [XKCD] 2 Mike Case

  3. Outline � Transient Signals – What are they and where do they come from? – How to eliminate them � Initialization Inputs – What are they and where do they come from? – How to eliminate them � Experimental Results 3 Mike Case

  4. Outline � Transient Signals – What are they and where do they come from? – How to eliminate them � Initialization Inputs – What are they and where do they come from? – How to eliminate them � Experimental Results 4 Mike Case

  5. Transient Signals � Definition: a transient signal takes arbitrary values for a finite number of clock cycles and then assumes a fixed constant value Time 0 1 2 3 4 5 Register A 1 0 Register B 1 0 1 0 1 0 Transient Register C 1 0 0 0 0 5 Mike Case

  6. Why Do They Occur? – Initialization Sequences Time 0 1 2 3 4 5 Transient 1 0 0 0 0 0 Pulsed Reset Transient 0 1 1 0 0 0 Register A Transient 0 1 1 Register B 0 Register C 6 Mike Case

  7. Why Do They Occur? – Verification Testbenches FPU Pipeline Testbench Time 0: MUL NOP NOP NOP Time 1: NOP MUL NOP NOP Checker Design Driver Time 2: NOP NOP MUL NOP Under Test Time 3: NOP NOP NOP MUL Time >3: NOP NOP NOP NOP � Testbench � all FPU signals are transient 7 Mike Case

  8. How Common Are Transient Signals? � On 105 “hard” IBM designs: 49% had transients � On 27 “hard” HWMCC designs: 25% had transients 8 Mike Case

  9. Outline � Transient Signals – What are they and where do they come from? – How to eliminate them � Initialization Inputs – What are they and where do they come from? – How to eliminate them � Experimental Results 9 Mike Case

  10. Detecting Transients With Ternary Simulation Ternary Sim. Execution Abstract State Space Time 0: State=0000, Inputs=XX Time 1: State=0X1X, Inputs=XX Transient Time 2: State=X00X, Inputs=XX Time 3: State=X0XX, Inputs=XX Time 4: State=X00X, Inputs=XX Fast, but incomplete 10 Mike Case

  11. Temporal Decomposition For Verification � Definition: the transient duration is the number of time steps before a transient settles to its constant value Transient with Time 0 1 2 3 4 5 duration 2 Register C 1 0 0 0 0 Maximum Transient Duration Time 0 1 2 3 4 5 Check with Check with BMC unbounded model checking 11 Mike Case

  12. Time Shifting for Unbounded Verification � Modeling: a register’s initial values is an arbitrary combinational function Prop. Simplify Transition Transient Relation Signals Prop. Next States inp 1 Transition Initial Values Relation Transition Relation Registers N Initial Values Max. Transient Transition inp 2 init 1 init 2 inp. Duration Relation init 1 init 2 inp 3 � New design starts in any state reachable in N steps. 12 Mike Case

  13. Simplification Results � Resources limit the � TR decreases transients that can be � Initialization logic simplified increases 13 Mike Case

  14. Outline � Transient Signals – What are they and where do they come from? – How to eliminate them � Initialization Inputs – What are they and where do they come from? – How to eliminate them � Experimental Results 14 Mike Case

  15. We have lots of initialization inputs � Definition: an initialization input is a primary input that is only needed to compute the initial state Prop. Next States Transition Relation Registers Initial Values input Initialization Inputs input input input input 15 Mike Case

  16. Transient Simplification Creates Initialization Inputs Prop. Transition Relation inp 1 Transition Relation Transition inp 2 Relation � We created initialization inputs! init 1 init 2 inp 3 16 Mike Case

  17. Outline � Transient Signals – What are they and where do they come from? – How to eliminate them � Initialization Inputs – What are they and where do they come from? – How to eliminate them � Experimental Results 17 Mike Case

  18. Initialization and Observability � Definition: a signal X is observable at signal Y if a toggle at X can cause a toggle at Y Unchanged – Approximate with structural analysis Prop. Next States (might change) Transition Relation Registers � Simplify initialization inputs that are Initial Values never observable at any property (might change) input input input input input 0 18 Mike Case

  19. Simplification of Initialization Inputs: High Level Prop. Next States input BMC Transition Relation primary Prop. inputs Registers TR input Initial Values input input Curr Next states input 0 states input 0 Frame 0 � No initialization inputs observable at Prop 0 input input 0 input 0 input � Two initialization inputs un-observable at Next 0 � Un-observable at Prop j ∀ j > 0 19 Mike Case

  20. Simplification of Initialization Inputs: High Level Prop. Next States input input BMC Transition Relation primary primary Prop. Prop. inputs inputs Registers TR TR input Initial Values input input Curr Next Curr Next states states states states 0 0 Frame 1 Frame 0 � No initialization inputs observable at Prop 0 input input 0 0 � Initialization inputs maybe observable at Next 1 � Maybe observable at Prop j ∀ j > 1 20 Mike Case

  21. Simplification Results Fast, but incomplete 21 Mike Case

  22. Outline � Transient Signals – What are they and where do they come from? – How to eliminate them � Initialization Inputs – What are they and where do they come from? – How to eliminate them � Experimental Results 22 Mike Case

  23. Runtime of our Methods + BMC Results � Two methods presented: – Transient Simplification – Runtime capped at 10 seconds – Initialization Input Simplification – Runtime capped at 10 seconds � Tested on 105 “hard” industrial designs and 27 “hard” academic designs – Largest was 632K ands and 97K registers Note: this is a systematic improvement on a large benchmark suite, not a collection of anecdotal examples 23 Mike Case

  24. Synthesis Results 24 Mike Case

  25. Verification Results � Induction results: – Transient logic often breaks induction – Our methods can render problems inductive • Design 1: 22k Ands and 800 registers, solvable in 42 sec • Design 2: 20k Ands and 3k registers, solvable in 56 sec 25 Mike Case

  26. Conclusion � Transient and Initialization Input Simplification � Fast running � Benefits synthesis and verification Thank You 26 Mike Case

Recommend


More recommend