Upload
colin-patton
View
31
Download
1
Embed Size (px)
DESCRIPTION
ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems. BDD-based Bi-decomposition BDS system. Outline. Review of current decomposition methods Algebraic Boolean Theory of BDD decomposition [C. Yang 1999] Bi-decomposition F = D Q Boolean AND/OR Decomposition - PowerPoint PPT Presentation
Citation preview
1ECE 667 - Synthesis & Verification - Lecture 14
ECE 697B (667)ECE 697B (667)Spring 2006Spring 2006
Synthesis and Verificationof Digital Systems
BDD-based Bi-decompositionBDD-based Bi-decomposition
BDS systemBDS system
ECE 667 - Synthesis & Verification - Lecture 14 2
OutlineOutline
• Review of current decomposition methods– Algebraic – Boolean
• Theory of BDD decomposition [C. Yang 1999]
– Bi-decomposition F = D Q– Boolean AND/OR Decomposition– Boolean XOR Decomposition– MUX Decomposition
• Logic optimization based on BDD decomposition
ECE 667 - Synthesis & Verification - Lecture 14 3
Functional Decomposition – previous workFunctional Decomposition – previous work
• Ashenhurst [1959], Curtis [1962]– Tabular method based on cut: bound/free variables– BDD implementation:
• Lai et al. [1993, 1996], Chang et al. [1996]
• Stanion et al. [1995]
• Roth, Karp [1962]– Similar to Ashenhurst, but using cubes, covers
– Also used by SIS
• Factorization based– SIS, algebraic factorization using cube notation
– Bertacco et al. [1997], BDD-based recursive bidecomp.
ECE 667 - Synthesis & Verification - Lecture 14 4
Drawbacks of Traditional Synthesis MethodsDrawbacks of Traditional Synthesis Methods
• Weak Boolean factorization capability.• Difficult to identify XOR and MUX decomposition.• Separate platforms for Boolean operations and
factorization.
• Our goal: use a common platform to carry out both Boolean operations and factorization: BDD’s
ECE 667 - Synthesis & Verification - Lecture 14 5
What is wrong with Algebraic Division?What is wrong with Algebraic Division?
• Divisor and quotient are orthogonal!!• Better factored form might be:
(q1+ q2+ …+qn) (d1+d2+…+dm)
– gi and dj may share same or opposite literals
• Example:
SOP form: F = abg + acg + adf + aef + afg + bd + ce + be + cd. (23 lits)
Algebraic: F = (b + c)(d + e + ag) + (d + e +g)af. (11 lits)
Boolean: F = (af + b + c)(ag + d + e). (8 lits)
ECE 667 - Synthesis & Verification - Lecture 14 6
First work, Karplus [1988]: 1-dominatorFirst work, Karplus [1988]: 1-dominator
d
10
ca
b
1 0
*
a + b c + d
• Definition: 1-dominator is a node that belongs to every path from root to terminal 1.
• 1-dominator defines algebraic conjunctive (AND) decomposition: F = (a+b)(c+d).
F
a
bc
d
10
1-dominator
ECE 667 - Synthesis & Verification - Lecture 14 7
Karplus: 0-dominatorKarplus: 0-dominator
a
b
0 1
d
10
c
a b c d
• Definition: 0-dominator is a node that belongs to every path from root to terminal 0.
• 0-dominator defines algebraic disjunctive (OR) decomposition: F = ab + cd.
a
bc
d
10
F
0-dominator
ECE 667 - Synthesis & Verification - Lecture 14 8
Bi-decomposition based on DominatorsBi-decomposition based on Dominators
• We can generalize the concept of algebraic decomposition and dominators to:• Generalized dominators• Boolean bi-decompositions (AND, OR, XOR)
• Bi-decomposition: F = D Q
• First, let’s review fundamental theorems for Boolean division and factoring.
ECE 667 - Synthesis & Verification - Lecture 14 9
Boolean DivisionBoolean Division
Definitions
• G is a Boolean divisor of F if there exist H and R such that F = G H + R, and G H 0.
• G is said to be a factor of F if, in addition, R=0, that is:F = G H.
where H is the quotient, R is the remainder.Note: H and R may not be unique.
ECE 667 - Synthesis & Verification - Lecture 14 10
Boolean Factor - Boolean Factor - TheoremTheorem
Theorem:
Boolean function G is a Boolean factor of Boolean function F iff F G , (i.e. FG’ = 0, or G’ F’).
FF
GGProof:: G is a Boolean factor of F. Then H s.t. F = GH;
Hence, F G (as well as F H).
: F G F = GF = G(F + R) = GH. (Here R is any function R G’.)
Notes:
- Given F and G, H is not unique. - To get a small H is the same as getting a small F + R.
Since RG = 0, this is the same as minimizing (simplifying) f with DC = G’.
ECE 667 - Synthesis & Verification - Lecture 14 11
Boolean Division - Boolean Division - TheoremTheorem
Theorem: G is a Boolean divisor of F if and only if F G 0.
GGFF
Proof:
: F = GH + R, GH 0 FG = GH + GR. Since GH 0, FG 0.
: Assume that FG 0. F = FG + FG’ = G(F + K) + FG’. (Here K G’.)
Then F = GH + R, with H = F + K, R = FG’. Since GH = FG 0, then GH 0.
Note:
f has many divisors. We are looking for a g such that f = gh + r, where g, h, r are simple functions. (simplify f with DC = g’)
ECE 667 - Synthesis & Verification - Lecture 14 12
Boolean DivisionBoolean Division
Goal : for a given F, find D and Q such that F = Q · D.
Boolean Space
FFD
FQ
F = e + bd, D = e + d, Q = e + b
ECE 667 - Synthesis & Verification - Lecture 14 13
Conjunctive (AND) DecompositionConjunctive (AND) Decomposition
• Conjunctive (AND) decomposition: F = D Q.
• Theorem:
Boolean function F has conjunctive decomposition iff F D. For a given choice of D, the quotient Q must satisfy: F Q F + D’.
DDQQ F
• For a given pair (F,D), this provides a recipe for Q .
ECE 667 - Synthesis & Verification - Lecture 14 14
Boolean Division Boolean Division AND decompositionAND decomposition
FFD
FQ
F = e + bd, Q = e + b F + D’
Boolean Space
D = e + d,
Given function F and divisor D F, find Q such that:
F Q F + D’.
D’
ECE 667 - Synthesis & Verification - Lecture 14 15
AND DecompositionAND Decomposition ( (F = D Q): Example Example
• Recall: given (F,D), quotient Q must satisfy: F Q F + D’.
d
e
b
0 1
F = e + bde
b
0 11
De
b
0 1
D = e + b,
d
e
b
0 1
DC
Q
d
e
0 1
Q = e + d
DC
DC
ebd
00 01 11 10
0
1
1 1
111
Q
ECE 667 - Synthesis & Verification - Lecture 14 16
Disjunctive (OR) DecompositionDisjunctive (OR) Decomposition
• Disjunctive (OR) decomposition: F = G + H.
• Theorem:
Boolean function F has disjunctive decomposition iff F G. For a given choice of G, the term H must satisfy: F’ H’ F’ + G.
• For a given (F,G), this provides a recipe for H .
GGHH
F
Dual to conjunctive
decomposition.
ECE 667 - Synthesis & Verification - Lecture 14 17
Boolean AND/OR Bi-decompositionsBoolean AND/OR Bi-decompositions
• Conjunctive (AND) decomposition
If D F, F = F D = Q D.
• Disjunctive (Disjunctive (OROR) decomposition) decomposition
If If G F, F = F + G = H + G.
• D, G = generalized dominators
ECE 667 - Synthesis & Verification - Lecture 14 18
Generalized DominatorGeneralized Dominator D D
af
bb
c c
0 0
D
g
d
e
a
f
bb
c c
F
1 00
1
Boolean divisor
F = D Q
ECE 667 - Synthesis & Verification - Lecture 14 19
Generalized DominatorGeneralized Dominator G G
af
bb
c c
0 0
G
g
d
e
a
f
bb
c c
F
1 00
0
Boolean “subtractor”
F = G + H
ECE 667 - Synthesis & Verification - Lecture 14 20
Boolean Division Based on Boolean Division Based on Generalized DominatorGeneralized Dominator
a
f
bb
c c
0 0
D
g
d
e
a
f
bb
c c
F
1 00
g
d
e
a
f
bb
c c
Q
1
DC
0
DC
minimizeg
d
e
a
Q
10
Q = ag + d + e
1
reduce
a
f
b
c
0
D
D = af + b + c
1
ECE 667 - Synthesis & Verification - Lecture 14 21
Special Case: Special Case: 1-dominator1-dominator
a
b
1 0
a + b
d
10
c
*
c + dFa
b
c
d
10
1-dominator
F = (a+b)(c+d)
ECE 667 - Synthesis & Verification - Lecture 14 22
Special Case: Special Case: 0-dominators0-dominators
a
b
0 1
d
10
c
a b c da
b
c
d
10
F
0-dominator
F = ab + cd
ECE 667 - Synthesis & Verification - Lecture 14 23
Algebraic Algebraic XOR XOR DecompositionDecomposition
h
F
f
h
F
f’f
+= h
f
0
hf
h
f’
0
h’f’
= complement edge = 1-edge edge
= 0-edge edge
ECE 667 - Synthesis & Verification - Lecture 14 24
AlgebraicAlgebraic XOR XOR Decomposition: Decomposition: x-dominatorsx-dominators
F
1
a
d
b
c
x-dominator a+b
1
a
b
c+d
1
d
c
ECE 667 - Synthesis & Verification - Lecture 14 25
Boolean Boolean XORXOR Decomposition: Decomposition: Generalized x-dominatorsGeneralized x-dominators
Given F and G, there exists H : F = G H; H = F G.
F
1
a
d
b
c c
Generalized x-dominator
c
d
1
G
1
H
a
d
b
c
ECE 667 - Synthesis & Verification - Lecture 14 26
MUX MUX DecompositionDecomposition
f g
F
v 0 1
f g
F
v
f g
h
F
0 1
f gh
F
• Simple MUX decomposition
• Complex MUX
decomposition
ECE 667 - Synthesis & Verification - Lecture 14 27
FunctionalFunctional MUX MUX Decomposition - example Decomposition - example
F
h
f g
F
h
f g
0 1
1
0 1
b
a
0
F
dc
F
1
d
b
a
c
0
ECE 667 - Synthesis & Verification - Lecture 14 28
Synthesis FlowSynthesis FlowBoolean Network
Construct Global BDDs
Variable Reorder
Decompose BDD
Factoring Tree Processing
Technology Mapping
Construct Factoring Trees
ECE 667 - Synthesis & Verification - Lecture 14 29
Factoring Tree Processing: Factoring Tree Processing:
ECE 667 - Synthesis & Verification - Lecture 14 30
A Complete Synthesis ExampleA Complete Synthesis Example
ECE 667 - Synthesis & Verification - Lecture 14 31
A Complete Synthesis Example (Decompose function A Complete Synthesis Example (Decompose function gg))
ECE 667 - Synthesis & Verification - Lecture 14 32
A Complete Synthesis Example (Decompose function A Complete Synthesis Example (Decompose function hh))
ECE 667 - Synthesis & Verification - Lecture 14 33
A Complete Synthesis Example (Sharing Extraction)A Complete Synthesis Example (Sharing Extraction)
ECE 667 - Synthesis & Verification - Lecture 14 34
ConclusionsConclusions
• BDD-based bi-decomposition is a good alternative to traditional, algebraic logic optimization– Produces Boolean decomposition– Several types: AND, OR, XOR, MUX
• BDD decomposition-based logic optimization is fast.
• Stand-alone BDD decomposition scheme is not amenable to large circuits– Global BDD too large– Must partition into network of BDDs (local BDDs)