Title: Optimizing Automatic Abstraction Refinement for GSTE
1Optimizing Automatic Abstraction Refinement for
GSTE
- Yan Chen, Fei Xie
- Portland State University
- Jin Yang
- Intel
2Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
3Symbolic Trajectory Evaluation
Bryant Seger
Buffered Register
Simulation-based model checking
4Generalized STE
Yang Seger
Buffered Register
GSTE Assertion Graph
an infinite collection of STE assertions
Simulation with fixed-point computation
5Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
6Quaternary Abstraction
T
(Conflict)
- Two sides of a coin
- Significantly reduce state space representation
by quaternary abstraction ? - Over abstractions cause false negatives ?
0
1
X
(Unknown)
Information Partial Order
Propagation of Unknown
7Causes of False Negatives Quaternary State Set
Unions
Edge 1 2
dinDATA, wr1, rdX, BRselX
dinX, wr0, rd1, BDATA, RX, sel0 Check
outDATA
Quaternary Simulation Result
Quaternary Union
dinX, wr0, rd1, BDATA, RX, selX Check
outDATA fail
dinX, wr0, rd1, BDATA, RDATA, sel1 Check
outDATA
8Causes of False Negatives Quantified-out
Symbolic Variables
Edge 1 2
AX, BX Check out0 fail
Av, Bv
Quaternary Simulation Result
9Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
10AutoGSTE Automatic Abstraction Refinement
FMCAD07
Abstraction refinement (monotonic) (1)
Constraining inputs with symbolic
constants/variables (2) Model refinement
introducing precise nodes (3) Spec refinement
assertion graph transformations
Circuit Impl.
Assertion Graph
(1) GSTE
(3) Abstraction Refinement
Refined Abstraction
Assertion holds
Counter Example
(2) Counter Example Analysis
Causes of Imprecision
Assertion fails
Causes of imprecision in GSTEs quaternary
abstraction (1) Under-constrained inputs (2)
Quaternary state set unions (3) Existentially
quantified-out symbolic variables
11Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
12Counterexample Analysis -- Union
DATA
X
X
0
X
Counter Example
Edge 1 dinDATA, wr1, rdX, BRselX
Edge 2 dinX, wr0, rd1, BDATA, RX, sel0
Edge 2 dinX, wr0, rd1, BDATA, RX, selX
13Counterexample Analysis -- Weak
Counter Example
Edge 1 Av, Bv
Edge 2 AX, BX
14Inefficiency in Backward Reasoning
- The original counterexample analysis algorithm
- Did not consider post-image functions
Can identify more causes than necessary
15Consider Post-image Functions
- Get the post-image function for Out
- Substitute circuit nodes with values in
counterexample - Canonicalize post-image function using BDD
16Effectiveness
- Speculative Design of FIFOs
- When the mux has 24 fan-ins, number of
circuitnodes identified - Original algorithm 120
- Optimized algorithm 5
17Experimental Results
18Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
19Model Refinement
- Quaternary Union
- Mark sel as precise node
BDATA, RX, sel0
BDATA, RDATA, sel1
BDATA, RX, selX
?
BDATA, RX, sel0
BDATA, RDATA, sel1
?
20Inefficiency in Model Refinement
- Problem May mark unnecessary nodes
preciseSolution More accurate fan-in analysis
help to reduce unnecessary precise nodes - Problem Precise nodes are made during the whole
simulation - Solution
- Mark the circuit nodes precise only on certain
assertion edges - Monotonic precise node marking on each edge
- Trade-offs between iteration times and state
spaces
21Experiments on Staged Design with Speculation
- Staged design with speculation
- Hard to check using original AutoGSTE
22Experimental Results
23Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
24Specification Refinement
- Loop unrolling/case-splitting transformations on
assertion graphs
A1, B1
2
True /
out0
3
1
A0, B0
25Inefficiency in Specification Refinement
sim(e) C1, D1, Cv, D0, C0, D0
CX, DX
GSTE
C1, D1
Cv, D0
AutoGSTE
C0, D0
26Improve Specification Refinement
- Specification Refinement
- Check if a new state s is contained in the state
set of that assertion edge - If true, fixed-point found
- If a previous state is contained in s, replace
with s - Containment Check
- Given two state s1, s2.
- Build Boolean expression (Is s1 contained in s2?)
- s2 ? s1
- Satisfibility of the expression
- Existentially quantify out all variables in BDD
27Experiments
Circuit Circuit Results Without Containment Check Results Without Containment Check Results Without Containment Check Results with Containment Check Results with Containment Check Results with Containment Check
FIFO Depth of Edges of Edges Time (Sec.) Mem (MB) of Edges Time (Sec.) Mem (MB)
3 11 51 0.32 12 25 0.3 12
8 26 296 2.98 14 145 2.56 15
16 50 1104 16.97 22 545 13.9 17
24 74 2424 50 33 1201 44.3 20
28Outline
- Overview of (G)STE
- Quaternary Abstraction and its Imprecision
- AutoGSTE Automatic Abstraction Refinement
- Optimizing AutoGSTE
- More Accurate Fan-in Analysis
- Precise Nodes with Lifespans
- State Set Containment Check
- Conclusions
29Conclusions
- Optimization of Counterexample Analysis
- Consider post-image function andunknown
conditions - Effective in reducing unnecessary X-chasing
- Optimization of Model Refinement
- Extend precise node with lifespans
- Effective in reducing memory usage
- Optimization of Specification Refinement
- Containment check for state set unions
- Effective in reducing unnecessary loop unrolling
and case splitting