Title: Structural Search for RTL with Predicate Learning
1Structural Search for RTL with Predicate Learning
- G. Parthasarathy
- M.K. Iyer
- K.-T. Cheng
- F. Brewer
- Department of ECE
- University of California Santa Barbara
- Santa Barbara, CA
2SAT on RTL Some History
- Satisfiability Checking (SAT) on RTL attractive
- RTL abstracts data operations
- Leverage abstraction for speed and ease of use
- SAT has problems on large data-path circuits
- Brinkmann 02, Strichmann,03
3HDPLL Fundamentals
- HDPLL combines Boolean and Arithmetic theories
- Branch and Bound decision procedure
- Decision-Making on Boolean Variables
- Omega-Test for arithmetic feasibility checking
- Combined Interval-Boolean constraint propagation
- Parthasarathy et. al., DAC04
- Modeling
- Data Path Finite-domain Linear Arith.
constraints - Parthasarathy et. al., DAC04
- Boolean control AND-INV graph (AIG)
- Kuehlmann et. al., DAC01
- Conflict-based learning on combined theories
- Iyer et. al., DATE05
4Interval Constraints
- All RTL variables have finite domains
- Finite upper/lower-bounds e.g., reg A70
- Boolean variables have finite domains 0,1
- Max Range L 2n 1, where n is bit-width
- An interval constraint is defined as
- å ai . xi ? r , where, xi , r ? I
- RTL modeled as Boolean functions over conjuncts
of interval constraints
5Hybrid DPLL - Algorithm
- Input
- Query ? on model ?
- Returns
- SAT or UNSAT
6Interval Constraint Propagation (ICP)
- deduce () uses ICP and BCP
- Interval Constraint is defined as
- å ai . xi ? r , where, xi , r ? I
- ai integer coefficients
- xi integer interval variables
- å is interval summation
- x1lb , x1ub x2lb , x2ub x1lb x2lb ,
x1ub x2ub - x1lb , x1ub - x2lb , x2ub x1lb - x2ub ,
x1ub - x2lb - Projection Operation proj on variable xi
- xi ? integer (1/ai (r - å aj . xj ) j ? i) for
all constraints - proj(xi) xilb, xiub must satisfy the
inequality
7An example of ICP by projection
- 3y 4x ? 7
- x, y are 3 bit variables with range 0,..,7
- Assume change on y 0,..,7?0,..,4
- Implied change on x by proj(x)
- -x ? (¼ (7 30,..,4 ))
- x ? integer( -1.25,..,1.75 )
- Real Intervals inwardly rounded to integer
interval. - x ? -1,..,1
- Result xub reduced to 1.
- xlb does not change
- -1 is already less than xlb 0
8Recursive Learning on Boolean Circuits
- Proposed by Kunz and Pradhan, ITC02
- Based on case and Boolean implication analysis
- Basic Idea
- If all ways to satisfy (vi vali) implies (vj
valj) - Then (vi vali ) always implies (vj valj )
- Very effective in learning surprise relations
- Recursion depth can be unbounded
- Is then complete, but typically very costly
- Typically, recursion depth bounded for efficiency
9Recursive Learning Example
All ways to satisfy o21 implies o1 1. Hence,
o21 implies o1 1!
10Recursive learning on RTL Basics
- Key components of recursive learning
- Case analysis Decisions
- Boolean constraint propagation (BCP)
- Key property BCP is bijective
- Problems with RTL
- Decisions on words exponential in word-size
- ICP is neither onto nor not bijective
- For example, assume (wi 0..3) ? (wk 0..3
) - This doesnt mean that (wi 1) ? (wk 1)
- Solution
- Make decisions on Boolean Predicates
- Use ICP for implications across predicates
11Recursive learning on RTL Details
- Pick predicate functions as RL points
- Perform RL on RL points in topological order
- Use combined BCP-ICP for finding implications
- Use conflict-based learning for conflict analysis
- All RL relations and conflict-clauses stored for
use in future RL steps - Stop after cut-off
12RTL Recursive learning Example
- b5 0
- b1 0 ? w1 0, b2 0,b6 0
- b0 0 ? b6 0
- Therefore, b5 ? b6
- Learn (b5 ?b6)
- b6 0
- b2 0 ? w1 0, b1 0,b5 0
- b0 0 ? b5 0
- Therefore, b6 ? b5
- Learn (b6 ?b5)
- Bi-implication
- b5 ? b6 and b6 ? b5
- b6 b5
- Similarly b8 b9
0
0
0
0
0
13Experimental Analysis
- Compare effect of predicate learning with
base-line - BMC of safety properties in ITC99 benchmarks
- b01, b02, b04, b11, b13
- Cut off of 2500 relations for predicate learning
- Cut off of 1200 cpu seconds for overall solving
14Effect of Predicate Learning
15Analysis of approach
- Complete RL on RTL by this method is infeasible
- Limited RL can yield high performance gains
- Key result
- Leveraging Predicate correlation is important
- Question
- How do we do this efficiently ?
- Answer
- Look back to ATPG on Boolean circuits
- Structure of RTL can guide search process
16Structural Search on Circuits
- Key Concepts
- All operators in circuit obey rules of
justification - Unjustified if output value not implied by inputs
- Justified otherwise
- Data-structure called J-frontier guides search
- Similar to ATPG techniques
- Key property of J-frontier
- Query is SAT if and only if all operators in
support of query are justified
17Justification on RTL Circuits
- Justification status of RTL operators
- Atomic Boolean ops
- Same as for Boolean gates
- If the output value cannot be uniquely determined
by current values on inputs - Non-Arithmetic RTL ops eg. ITE, CONCAT
- Operator has Boolean input(s)
- Output interval cant be implied from current
values - Pure Arithmetic ops Not justifiable
18Justification in RTL an Example
- 3-bit word variables
- Values 0..7
- Proposition b7 1
- Implications
- w2 6,7
- b40, b50, b61, w4 5
- J-Frontier w4
- w4 ? w3
- Decide b1 0
- Implications
- w3 5
- J-Frontier w3
- w3 ? w1
- Decide b2 0
- Implications
- w1 5
- J-Frontier ?
19Conflicts during justification
b3
b1
7
6
7
b21
w1
6
5
6
- Proposition b7 1
- Assume b2 1
- w3 6 w2 6,7
- No J-Path for w4 5
- J-conflict !
- Analyze implication graph to learn causes for
conflict - Causes for conflict
- b6 1 and b2 1.
- Learned clause
- (? b6 ? b2)
w2
w3
w4 5
b50
b61
b40
b7 1
20Additional Issues
- Currently decision variables are only Boolean
- This is why pure arithmetic ops are unjustifiable
- If word variables are also decision candidates
then justification applies to all operators - Key Problem No efficient decision strategy on
word-variables (yet..)
21Experimental Analysis
- Compare effect of new methods with base-case
- BMC of safety properties in ITC99 benchmarks
- b01, b02, b04, b11, b13
- Cut off of 2500 relations for predicate learning
- Cases
- No predicate learning or structural search
- Structural search only
- Predicate learning is used to weight structural
search decision points for breaking ties. - Cut off of 1200 cpu seconds for overall solving
22Effects of Learning and Structural search
23Comparison with other solvers
24Conclusions
- Structural analysis possible on RTL circuits
- Can give good performance advantages
- Demonstrated recursive learning and justification
- Leverage existing work done on gate-level
- Structural analysis has additional applications
- Equivalence checking
- Predicate learning can aid abstraction
- Future work will explore these issues
25 26Hybrid DPLL - Algorithm
- Input Boolean query ? on model ?
- Output Boolean, Satisfiable or Unsatisfiable.
- Set blevel ? 0
- Find unique Implications of ? on ?
- while ( True ) do
- while ( decide () ? Done) do
- Set deduction ? Null
- while ((deduction ? deduce ()) ? Conflict) do
- blevel ? analyze_conflicts()
- if (blevel ? 0) then
- return Unsatisfiable
- else backtrack (blevel)
- if (deduction ? SAT) then
- return Satisfiable