ECE 510 OCE BDDs and Their Applications Lecture 18. Verification Using Specialized DDs May 30, 2000 Alan Mishchenko
Overview • Extensions of Binary Decision Diagrams – Multi-terminal BDDs (MTBDDs) (Clarke, DAC‘93) – (Multiplicative) binary moment diagrams (BMDs/*BMDs) (Bryant, DAC’95) – Edge-valued BDDs (EVBDDs) (Lai, DAC’92) – Kronecker functional decision diagrams (OKFDDs) (Drechsler/Sarabi/Perkowski, DAC’94) – Kronecker multiplicative moment diagrams (K*BMDs) (Drechsler, EDTC’96)
• Word-level DDs vs. bit level DDs for verification • Binary expression diagrams (Andersen/Hulgaard,1997) • Advantages and limitations of the specialized DDs October 25, 2004
ECE 510 OCE: BDDs and Their Applications
2
Extensions of BDDs • Representation of “pseudo-Boolean” functions: integer (real) number functions over Boolean functions • Applications: integer linear programming, matrix multiplication, spectral transforms, wordlevel analysis of digital systems
October 25, 2004
ECE 510 OCE: BDDs and Their Applications
3
Multi Terminal BDDs X 0 0 1 1
Y 0 1 0 1
October 25, 2004
F 8 -12 10 -6
X 1
0 Y
Y
0
1
8
-12
0 10
ECE 510 OCE: BDDs and Their Applications
1 -6
4
Generalization of Expansion • Boole-Shannon expansion: F = x′ & F0 + x & F1 • For numeric value functions, generalized to F = (1-x) & F0 + x & F1 • Boole-Shannon expansion can be rewritten as F = F0 + x & (F1 - F0) where Fx = F1 - F0 is the binary moment (derivitive of F w.r.t. variable x) October 25, 2004
ECE 510 OCE: BDDs and Their Applications
5
Binary Moment Diagrams (BMDs) X 0 0 1 1
Y 0 1 0 1
F 8 -12 10 -6
X 1
0 Y
Y
0
1
8
-20
0 2
1 4
F = 8(1-x)(1-y) -12(1-x)y + 10x(1-y) - 6xy = = 8 - 20y + 2x + 4xy October 25, 2004
ECE 510 OCE: BDDs and Their Applications
6
Edge-Valued BDDs • An edge has an integer weight • The weights are combined additively • The value of the function is derived by following a path from the root to a leaf and summing the edge weights encountered
October 25, 2004
ECE 510 OCE: BDDs and Their Applications
7
Example: F = X = 4x2 + 2x1 + x0 MTBDD
EVBDD
x2
x1 x0 0
x0 2
1
x2
x1 x0
x0 3
5
4
6
4 7 x1
x2
BMD
2
x1 x0
0 October 25, 2004
x0 1
2
4
0
ECE 510 OCE: BDDs and Their Applications
1 8
Multiplicative BMDs • An edge has an integer (rational) weight • The weights are combined multiplicatively • The value of the function is derived by following a path from the root to a leaf and multiplying the edge weights encountered
October 25, 2004
ECE 510 OCE: BDDs and Their Applications
9
Example: F=8-20z+2y+4yz+12x+24xz+15xy
BMD
*BMD
x y
z 8 -20 2
x 2
y z
z
y
4 12 24 15
y
2
4
z -5 October 25, 2004
3
z 2
ECE 510 OCE: BDDs and Their Applications
1
5 10
Word-Level Operation Complexity Form MTBDD EVBDD BMD *BMD K*BMD
October 25, 2004
x exp lin lin lin lin
x+y exp lin lin lin lin
x*y exp exp quadr lin lin
x2 exp exp quadr quadr quadr
ECE 510 OCE: BDDs and Their Applications
cx exp exp exp lin lin
11
Sum/Product *BMD Representation x2
F=x+y
x2
F=x*y x1
x1
4
x0
x0
2
x2
x2
x1
x1
x0 0 October 25, 2004
x0 1
2
4
0
1
ECE 510 OCE: BDDs and Their Applications
2
4 12
Unary Word-Level *BMD Operations x3
F=x x3
F=2x 255
16
x2
x2
x2
x2
15 x1
x1
0
8 x1
1
October 25, 2004
2
4
8
x1
x1
4
3
x0
F=x2
x3
x0
x0
1
0
x0 1
ECE 510 OCE: BDDs and Their Applications
x0
x0 2
4 13
*BMDs for Common Boolean Functions AND
w
OR
w
EXOR
w x
x
x
x
x
-1 y
y
-2
y
y
y
-1 z 0 October 25, 2004
1
z 0
-2
z 1
z -1
0
ECE 510 OCE: BDDs and Their Applications
z 1
-2 14
Kronecker Multiplicative (K*)BMDs • An edge has two integer (rational) weights • The weights are combined additively and multiplicatively • The value of the function is derived by following a path from the root to a leaf and adding/multiplying edge weights encountered • Three types of expansion are used: Shannon, Positive Davio, Negative Davio • Normalization rules are quite complicated October 25, 2004
ECE 510 OCE: BDDs and Their Applications
15
Expansion Rules • Shannon Expansion = a + m( (1-x)*F0 + x*F1 ) • Positive Davio Expansion = a + m( F0 + x*F1 ) • Negative Davio Expansion = a + m( F0 + (1-x)*F1 )
October 25, 2004
ECE 510 OCE: BDDs and Their Applications
16
K*BMD Normalization Rules • There is only one leaf labeled 0 • The low-edge of a node always has additive weight 0 and multiplicative weight 1 • The multiplicative weight at the high-edge is 1, if F0 = 0. If the high-edge points to the leaf, then the multiplicative weight is normalized to 1
October 25, 2004
ECE 510 OCE: BDDs and Their Applications
17
*BMD vs. K*BMD for Integer Encoding K*BMD
*BMD x0
S
x1
(0, 1) x2
nD x2 (0, 1)
x3 0
pD
x0
(0, 1) x1
(1/8, 0)
(1/4, 1)
(-1/2, 0)
8
October 25, 2004
4
2
1
pD x3 (1, 0) (0, 1) 0
ECE 510 OCE: BDDs and Their Applications
18