230 likes | 248 Views
This paper explores using symbolic and ternary simulation techniques for enhancing approximate reachability analysis in digital designs. The approach combines symbolic simulation, X-saturation, and ternary simulation to improve convergence and reduce runtime overhead in analyzing complex systems. Experimental results demonstrate the effectiveness of the proposed methods in various applications, such as handling oscillators, transients, and simplifying constant signals.
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 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