Download presentation
Presentation is loading. Please wait.
Published byColin Terry Modified over 6 years ago
1
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
2
Outline Approximate Reachability Our Contributions Symbolic Simulation
X-Saturation Experimental Results Mike Case
3
Ternary Simulation Ternary Simulation: simulate an AIG over 3-valued logic: Input 1 AND Input 2 1 X TR Inputs Regs NS Cycle 0: Init values X TR Inputs NS Cycle 1: X Regs TR Inputs Regs NS Cycle 2: X (copy values) (copy values) Mike Case
4
Convergence Criterion
Sequence of 3-valued states Converge when the current state past states = Cycle 0: Cycle 2: 1X0000 Cycle 3: 00XX00 Cycle 4: 10XXX0 Cycle 5: 00XX00 000000 1X0000 00XX00 10XXX0 Reachability overapproximation Mike Case
5
Applications Oscillators phase abstraction
Transients temporal decomposition Constant and equivalent signals simplification Oscillator Constant 000000 1X0000 00XX00 10XXX0 Transient Mike Case
6
Outline Approximate Reachability Our Contributions Symbolic Simulation
X-Saturation Experimental Results Mike Case
7
Problem #1: X-Initialized Latches
NS Fanout Cone X Init X X Mike Case
8
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
9
Problem #2: Convergence
Convergence can require many iterations Counters + other deep designs are problematic ≠ Cycle 0: Cycle 2: 1X0000 Cycle 3: 00XX00 Cycle 4: 10XXX0 Cycle 5: 001X00 ? Mike Case
10
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
11
Outline Approximate Reachability Our Contributions Symbolic Simulation
X-Saturation Experimental Results Mike Case
12
Simulating {0, 1, X, XA, XB, …} 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 0 = 1 X = X XA tracked explicitly Mike Case
13
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
14
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
15
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
16
Outline Approximate Reachability Our Contributions Symbolic Simulation
X-Saturation Experimental Results Mike Case
17
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
18
Cycle limit reached Enable X-Saturation
X-Saturation Example Cycle 0: Cycle 2: 1X0000 Cycle 3: 00XX00 Cycle 4: 10XXX0 Cycle 5: 001X00 Cycle limit reached Enable X-Saturation Cycle 6: 1XXXX0 = Cycle 7: 0XXXX0 Cycle 8: 1XXXX0 Mike Case
19
Outline Approximate Reachability Our Contributions Symbolic Simulation
X-Saturation Experimental Results Mike Case
20
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 Mike Case
21
Symbolic Simulation Results
Small runtime overhead Can reduce design size where the previous approach fails Mike Case
22
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
23
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.