230 likes | 336 Views
Approximate Reachability With Combined Symbolic And Ternary Simulation. Mike Case † , Jason Baumgartner, Hari Mony, Bob Kanzelman IBM System and Technology Group FMCAD 2011. † Now with Calypto Design Systems. Outline. Approximate Reachability Our Contributions Symbolic Simulation
E N D
Approximate Reachability With Combined Symbolic And Ternary Simulation Mike Case†, Jason Baumgartner, Hari Mony, Bob Kanzelman IBM System and Technology Group FMCAD 2011 † Now with Calypto Design Systems
Outline • Approximate Reachability • Our Contributions • Symbolic Simulation • X-Saturation • Experimental Results Mike Case
Ternary Simulation • Ternary Simulation:simulate an AIG over 3-valued logic: Cycle 0: Cycle 1: Cycle 2: TR NS TR NS TR NS (copy values) (copy values) Inputs Regs Inputs Regs Inputs Regs Init values X X X Mike Case
Convergence Criterion • Sequence of 3-valued states • Converge when the current state past states = Cycle 0:000000 Cycle 2:1X0000 Cycle 3:00XX00 Cycle 4:10XXX0 Cycle 5:00XX00 000000 1X0000 00XX00 10XXX0 Reachability overapproximation Mike Case
Applications • Oscillators phase abstraction • Transients temporal decomposition • Constant and equivalent signals simplification Oscillator Constant 000000 1X0000 00XX00 10XXX0 Transient Mike Case
Outline • Approximate Reachability • Our Contributions • Symbolic Simulation • X-Saturation • Experimental Results Mike Case
Problem #1: X-Initialized Latches X X X X Fanout Cone NS X Init X X Mike Case
Symbolic Simulation • Lack of resolution: X ≠ X • Symbols don’t have this problem: XA = XA • New vocabulary: {0, 1, X, XA, XB, …} • Handle initial values symbolically • Symbols introduced judiciously • Runtime vs. precision tradeoff Mike Case
Problem #2: Convergence • Convergence can require manyiterations • Counters + other deep designs are problematic ≠ Cycle 0:000000 Cycle 2:1X0000 Cycle 3:00XX00 Cycle 4:10XXX0 Cycle 5:001X00 ? Mike Case
X-Saturation • More abstraction Faster convergence • X-Saturate: force a signal to have value X in all future iterations • When approximate reachability is “slow” • Identify a set of not-important signals • X-Saturate these signals Mike Case
Outline • Approximate Reachability • Our Contributions • Symbolic Simulation • X-Saturation • Experimental Results Mike Case
Simulating {0, 1, X, XA, XB, …} 0 = 1 X = X XA tracked explicitly 0 & * = 0 1 & * = * X & * = X XA & XA = XA XA & XA = 0 XA & (XA & XB ) = XA & XB XA & XB = hash_lookup(XA, XB) XA & XB = new_symbol() precidence Mike Case
Limiting Symbolic Analysis • Problems: • Symbols hurt convergence • Processing millions of symbols is slow • Solution: only create new symbols in cycle 0 00XAXB 00XAXC 00XAXD Mike Case
Limiting Symbolic Analysis Cycle 0: Cycle 1: Cycle 2: TR NS TR NS TR NS Inputs Regs Inputs Regs Inputs Regs symbols Init values& symbols X X XA & XA = XA XA & XA = 0 XA & (XA & XB ) = XA & XB XA & XB = hash_lookup() XA & XB = new_symbol() XA & XA = XA XA & XA = 0 XA & (XA & XB ) = XA & XB XA & XB = hash_lookup() XA & XB = X Mike Case
Enhanced Applications • Oscillators • Some registers oscillate over symbolic values • 0, XA, 0, XA, 0, XA, 0, XA,… • Transients • Previously, transients defined as signals that settle to 0 or 1 • Transients can now settle to {0,1, XA, XB, …} • Constant and equivalent signals • Signals can be “stuck” at a symbolic value XA • XA = XA more equivalent signals confusing Mike Case
Outline • Approximate Reachability • Our Contributions • Symbolic Simulation • X-Saturation • Experimental Results Mike Case
X-Saturation • Problem: simulation may not converge • X-Saturate: force a signal to have value X in all future iterations • Solution: X-saturate a set of registers after resource limits are exhausted • Don’t X-saturate oscillators, constant registers • Would limit the applications • Oscillators have high fanout X values on oscillators “bleed” to a large part of the design Mike Case
X-Saturation Example Cycle 0:000000 Cycle 2:1X0000 Cycle 3:00XX00 Cycle 4:10XXX0 Cycle 5:001X00 Cycle limit reachedEnable X-Saturation Cycle 6:1XXXX0 Cycle 7:0XXXX0 Cycle 8:1XXXX0 = Mike Case
Outline • Approximate Reachability • Our Contributions • Symbolic Simulation • X-Saturation • Experimental Results Mike Case
Experiment Setup • Implemented in SixthSense • Suite of 1122 industrial SEC problems • Largest was 5.3M ANDs, 330k registers • Pairs of correlated registers are initialized with the same nondetermistic random value • HWMCC’10 SEC • Subset of the most challenging HWMCC problems • Modified to have characteristics found in industrial SEC problems • http://case-home.com/publications/hwmcc10_sec.tgz Mike Case
Symbolic Simulation Results • Small runtime overhead • Can reduce design size where the previous approach fails Mike Case
X-Saturation Results • 1122 IBM designs • 13 designs converge in between 512 and 1M iterations • 8 take > 1M iterations • For 13 that converge, we decrease runtime by 67% (average) preserve 94% of the gate reductions (average) • Cumulatively, decrease runtime by 97% increase gate reductions by 77% Mike Case
Conclusion • Approximate reachability with ternary simulation is useful / problematic • Use partial symbolic simulation • Little runtime overhead • Dramatically enhances the precision • Use X-saturation • Helps convergence for deep designs • Small impact to the overall precision • Used every day within IBM Mike Case