Title: Interpolating Functions from Large Boolean Relations
1Interpolating Functions from Large Boolean
Relations
- Jie-Hong Roland Jiang, Hsuan-Po Lin, and Wei-Lun
Hung - Grad. Inst. of Electronics Eng. / Dept of
Electrical Eng. - National Taiwan University
2Outline
? Introduction
? Our Approach
? Experimental Results
? Conclusions
3Relations vs. Functions
- Allow one-to-many mappings
- Can describe non-deterministic behavior
- More generic than functions
- Disallow one-to-many mappings
- Can only describe deterministic behavior
- A special case of relation
f1 x1 x2 f2 ? x1? x2
4Total Relations vs. Partial Relations
- Every input element is mapped to at least one
output element
- Some input element is not mapped to any output
element
5Totalization
- A partial relation can be totalized
- Assume that the input element not mapped to any
output element is a dont care
Total relation
Partial relation
Totalize
T(X, y) R(X, y) ? ?y. ? R(X, y)
6Application of Boolean Relations
- In high-level design, Boolean relations can be
used to describe (nondeterministic)
specifications - In gate-level design, Boolean relations can be
used to characterize the flexibility of
sub-circuits - Boolean relations are more powerful than
traditional dont-care representations
7Needs of Relation Determinization
- For hardware implement of a system, we need
functions rather than relations - Physical realization are deterministic by nature
- One input stimulus results in one output response
8Needs of Relation Determinization
- To simplify implementation, we can explore the
flexibilities described by a relation for
optimization
y1
y1
z1
x1
z1
x2
z2
z2
y2
y2
f1 x1 x2 f2 ? x1? x2
f1 x2 f2 ? x1
x1x2
y1y2
z1z2
9Problem Statement
- Given a nondeterministic Boolean relation R(X,
Y), how to determinize and extract functions from
it? - For a deterministic total relation, we can
uniquely extract the corresponding functions
10Related Work
- Prior Work
- BDD- or SOP-based representation
- Not scalable
- Focused on function optimization
- Ours
- AIG representation
- Focus on scalability with reasonable optimization
quality
11Enabling Technique
- Craig Interpolation Theorem
- If fA ? fB is UNSAT for propositional formulas fA
,fB, - then there exists an interpolant I such that
- fA ? I
- I ? fB is UNSAT
- I refers only to the common
- variables of fA and fB
12Single-Output Relations
- For a single-output total relation R(X, y), we
derive a function f for variable y using
interpolation
? R(X,0) ? ? R(X,1) is UNSAT
fB ? R(X,1) Minimal care offset of f
fA ? R(X,0) Minimal care onset of f
13Interpolantion vs. Cofactoring
- Naïve derivation of f is by cofactoring
- R(X,1) (largest onset of f) or
- ? R(X,0) (smallest onset of f)
? fB R(X,1) Largest onset of f
fA? R(X,0) Smallest onset of f
The function extracted from a single-output
relation using cofactor is usually of similar
size as the relation
Interpolation may extract smaller functions and
prevent AIG explosion
? R(X,0) ? I ? R(X,1)
14Multiple-Output Relations
- Two-phase computation
- Phase 1 Backward reduction
- Reduce to single-output case
- R(X, y1, , yn) ? ?y2, , ?yn. R(x, y1, , yn)
- Existential quantification using expansion
- ?y. f(x,y) f(x,1) f(x,0)
- Existential quantification using substitution
CAV 2009 - ? y. f(x,y) f(x, f(x))
- Phase 2 Forward substitution
- Extract functions
15Multiple-Output Relations
R
R(3)
R(2)
Phase1 (expansion reduction) ?y3.R(X, y1, y2 ,
y3) ? R(3)(X, y1, y2) ?y2.R(3)(X, y1, y2) ?
R(2)(X, y1)
y1
y2
y3
X
Phase2 R(2)(X, y1) ? y1
f1 (X) R(3)(X, y1, y2) ? R(3)(X, f1(X), y2)
? y2 f2 (X) R(X, y1, y2 , y3) ? R(X, f1(X),
f2(X), y2) ? y3 f3 (X)
16Multiple-Output Relations
R
Rlt3gt
Rlt2gt
Phase1 (substitution reduction) R(X, y1, y2 ,
y3) ? y3 f3(X , y1, y2 ) ? Rlt3gt(X, y1,
y2) Rlt3gt(X, y1, y2) ? y2 f2(X , y1 ) ?
Rlt2gt(X, y1)
y1
y2
y3
X
Phase2 Rlt2gt(X, y1) ? y1
f1 (X) Rlt3gt(X, y1, y2) ? Rlt3gt(X, f1(X), y2)
? y2 f2 (X) R(X, y1, y2 , y3) ? R(X, f1(X),
f2(X), y2) ? y3 f3 (X)
17Multiple-Output Relations
R
Rlt3gt
Rlt2gt
Phase1 (substitution reduction) R(X, y1, y2 ,
y3) ? y3 f3(X , y1, y2 ) ? Rlt3gt(X, y1,
y2) Rlt3gt(X, y1, y2) ? y2 f2(X , y1 ) ?
Rlt2gt(X, y1) Rlt2gt(X, y1, y2) ? y1 f1(X)
y1
y2
y3
X
Phase2 (interpolation for deterministic rel.) D
R ? ?i (yi fi) fi (X) Interpolant(Dyi, D?
yi)
18Experimental Setup
- Our methods were implemented in ABC using MiniSAT
- We prepare Boolean relations by computing the
transition relations of ISCAS and ITC circuits - Insert dont cares to introduce nondeterminism
- Represent transition relations using AIGs
19Experimental Results w/o DC
Original Original Original Original BDD BDD BDD BDD Xp Xp Xp Xp
Circuit (pi, po) n l v n l v time n l v time
s5378 (214, 179) 624 12 1570 783 10 1561 286.4 1412 25 1561 49.6
s9234.1 (247, 211) 1337 25 3065 --- --- --- --- 7837 59 2764 158.6
s13207 (700, 669) 1979 23 3836 --- --- --- --- 5772 140 3554 769.3
s15850 (611, 597) 2648 36 15788 --- --- --- --- 42622 188 13348 2700
s35932 (1763, 1728) 8820 12 7099 --- --- --- --- 7280 10 6843 4178.5
s38584 (1464, 1452) 9664 26 19239 --- --- --- --- 22589 277 17678 5772.8
b10 (28, 17) 167 11 159 200 10 152 0.1 197 8 152 0.9
b11 (38, 31) 482 21 416 1301 18 394 0.9 1504 57 394 5.1
b12 (126, 121) 953 16 1639 1663 14 1574 56.7 2166 25 1574 24
b13 (63, 53) 231 10 383 240 10 349 3.1 224 10 349 2.2
Ratio 1 1 1 1 3.40 4.16 0.91
Ratio 2 1 1 1 1.70 0.89 0.97 2.24 1.79 0.97
Ratio 3 1 1 1 1.31 2.02 1
--- BDD nodes are over 500K during computation
20Experimental Results w/ DC
Original Original Original Original BDD BDD BDD BDD Xp Xp Xp Xp
Circuit (pi, po) n l v n l v time n l v time
s5378 (214, 179) 624 12 1570 769 11 1561 200.2 1332 25 1561 49.1
s9234.1 (247, 211) 1337 25 3065 --- --- --- --- 7696 55 2765 166.7
s13207 (700, 669) 1979 23 3836 --- --- --- --- 5818 202 3554 897.9
s15850 (611, 597) 2648 36 15788 --- --- --- --- 40078 136 13309 2596.9
s35932 (1763, 1728) 8820 12 7099 --- --- --- --- 7360 25 6843 4811.1
s38584 (1464, 1452) 9664 26 19239 --- --- --- --- 23726 331 17676 5476.7
b10 (28, 17) 167 11 159 199 9 152 0.1 193 8 152 1.0
b11 (38, 31) 482 21 416 1221 20 394 0.9 1562 52 394 5.5
b12 (126, 121) 953 16 1639 1619 15 1574 452.5 2261 23 1574 27.0
b13 (63, 53) 231 10 383 243 11 349 1.6 229 12 349 2.5
Ratio 1 1 1 1 3.35 4.53 0.91
Ratio 2 1 1 1 1.65 0.94 0.97 2.27 1.71 0.97
Ratio 3 1 1 1 1.38 1.82 1
--- BDD nodes are over 500K during computation
21Experimental Results (contd)
- Further synthesis by ABC commands collapse and
dc2
Original Original Original Original Original Original Xp Xp Xp Xp Xp Xp Xp
Circuit n l v n_c l_C v_C n l v n_c l_C v_C time_c
s5378 624 12 1570 772 11 1561 1412 25 1561 760 11 1561 0.4
s9234.1 1337 25 3065 2791 25 2764 7837 59 2764 2751 22 2764 6.4
s13207 1979 23 3836 2700 20 3554 5772 140 3554 2709 20 3554 5.2
S15850 2648 36 15788 --- --- --- 42622 188 13348 --- --- --- ---
s35932 8820 12 7099 7825 9 6843 7280 10 6843 7857 9 6843 39.9
s38584 9664 26 19239 12071 23 17676 22589 277 17678 12132 21 17676 36.5
b10 167 11 159 195 10 152 197 8 152 195 10 152 0
b11 482 21 416 1187 21 394 1504 57 394 1226 21 394 0.2
b12 953 16 1639 1556 17 1574 2166 25 1574 1645 16 1574 0.4
b13 231 10 383 237 9 349 224 10 349 237 9 349 0.1
Ratio 1 1 1 1 1.21 0.93 0.93 2.02 3.92 0.93 1.22 0.89 0.93
Ratio 2 1 1 1 1.01 0.96 1
22Experimental Results (contd)
23Conclusions
- Scalable function extraction from Boolean
relations - Interpolation plays an essential role
- Relations with up to thousands of variables can
be determinized inexpensively - Extracted functions are of reasonable sizes
- Future work
- Determinization scheduling
- Simple function extraction