Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
-
Upload
joleen-phillips -
Category
Documents
-
view
219 -
download
0
Transcript of Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Logic Decomposition
ECE1769
Jianwen Zhu
(Courtesy Dennis Wu)
Introduction
Functional Decomposition
• Re-express a Boolean function as
– Where
– Free set:– Bound set:– Disjoint decomposition
)),(),...,(),(()( 10 ZYYYFXf k
};,...,,{ 10 nxxxX
};,...,,{ 10 syyyY
};,...,,{ 10 mzzzZ
., XZY
Ashenhurst Decomposition Chart
• Classic method– Row: bound set
– Column: free set
– Disjoint decomposition if column multiplicity = 2
Specialized Decompositions
• Algebraric Factorization:– F = A*B + C, where supp(A) and supp(B) are disjoint
• Boolean Factorization:– F = A*B + C, where supp(A) and supp(B) are not
disjoint
• Bi Decomposition:– F = A (op) B, where op is any operation
Boolean Division
• F = QD• Definition: Function D is a Boolean divisor of F if
there exists a function Q, called the quotient, such that F = QD
• Theorem: Function D is a Boolean divisor of F iff F D.– On-set of F is subset of the on-set of D– F implies D
• Example: e + bd = (e + b)(e + d)
Boolean Subtraction
• F = D + R• Definition: Function D is a Boolean
subtractor of F if there exists a function R, called the remainder, such that F = D + R.
• Theorem: A function D is a Boolean subtractor of F iff F D.– On-set of D is a proper subset of the on-set of F– D implies F
BDD Summary
• Canonical• Compact• Efficient algorithms for many Boolean operations
Procedure Result Time Complexity
Apply f1 <op> f2 O(|G1|·|G2|)
Restrict f|xi = b O(|G|·log|G|)
Compose f1|xi = f2 O(|G1|2··|G2|)
Cut
• A cut (D, V – D) of a BDD is a partition of its nodes V into disjoint subsets D and (V – D) such that– root D and
terminals 0, 1 (V-D).
– A cut cannot cross any path more than once.
Horizontal Cut
• A cut where support of D and (V-D) are disjoint.– Bound set
– Free set
• Idea:– Exploit structures in
horizontal cut
• Cut edge classification 0: pointing to 0
1: :pointing to 1
x :pointing to internal nodes
Generalized Dominator
• Consider a cut partitioning the set of BDD nodes function F into D and (V-D). The portion of the BDD defined by D is copied to form a separate graph. In that graph, an edge e is connected to 0 if e 0 in the original BDD of F, and it is connected to 1 if e 1 in the original BDD of F. All the internal edges e x are left dangling. The resulting graph is called a generalized Dominator.
Example Generalized Dominator
Boolean AND Decomposition
1. Obtain divisor by redirecting dangling edges of generalized dominator to 1.
2. Obtain quotient by minimizing F with the off-set of the divisor as a don’t care set.
Example of Boolean AND Decomposition
Boolean OR Decomposition
1. Obtain subtractor by redirecting dangling edges of generalized dominator to 0.
2. Obtain remainder by minimizing F using the on-set of the subtractor as a don’t care set.
Example of Boolean OR Decomposition
Finding Generalized Dominators
• Number of BDD cuts is exponential.
• Filtering Cuts– Valid Cuts contain at least one edge connected
to a terminal node.
– 0-Equivalent Cuts (same 0 ) result in the same AND decomposition.
– 1-Equivalent Cuts (same 1 ) result in the same OR decomposition.
Algebraic Bi-Decomposition
1-Dominator
• A node which belongs to every path leading to a ‘1’ terminal is called a 1-dominator
• Enables fast algebraic AND decomposition
1-Dominator
0-Dominator
• A node which belongs to every path leading to a ‘0’ terminal is called a 0-dominator
• Enables fast algebraic OR decomposition
0-Dominator
X-Dominator
• A node which is contained in every path is called an x-dominator
• Enables fast XNOR Decomposition
X-Dominator
X-Dominator
Finding Simple Dominators
• All simple dominators common in that all internal edges converge to a single node.
• Complexity of O(V) – V is the # of variables.
• All Simple Dominators are found at the same time.
• The simple dominator closest to the middle height of the BDD is used for decomposition
Generalized X-Dominator
• A node which is pointed to by both complement and regular edges is called a generalized x-dominator.
• F=(f) ! (f ! F)
Generalized X-Dominator
Simple MUX Decomposition
• Each node in a BDD can be decomposed as a simple MUX
• Only useful when overlap between its two cofactors is small.
MUX Decomposition
Functional MUX Decomposition
• Control Signal is a function
• Requires 2 nodes which cover all paths.
Functional MUX Decomposition
Functional MUX Decomposition
Logic Synthesis
Sweep
• Constant and Single-Variable Nodes Removal
• Removal of Functionally Equivalent Nodes
AND AND OR
1x y x y
OR
xy x y
Eliminate
• Balance between Global vrs. Local Scenario
• Partial Collapsing
Global vrs Local BDDs
• Representing large Boolean networks in a global BDD causes serious computational problems.
• Leave in multilevel form.
BDD Decomposition Engine
Order of Decomposition
1. Simple Dominator
2. Functional MUX
3. Single MUX
4. Generalized Dominator
5. Generalized X-Dominator
Typical Logic Optimization Flow BDDlopt
• Boolean Simplification – (Variable Ordering)
• Factorization – (Recursive BDD Decomposition)
• Logic Sharing – (Detected on Factoring Trees)
Factoring Trees
• Retains information about the decomposition process
• Extract functionally equivalent sub-trees
Experimental Results
• BDDlopt Vrs SIS-1.2• AND / OR-Intensive Circuits
– Resulting area almost the same– BDDlopt out-performs SIS in CPU time
• XOR-Intensive Circuits– BDDlopt uses 23% less gates– BDDlopt uses 14% less area– BDDlopt uses 84.4% less CPU time
BDS Vrs SIS Experimental Results
• Area is 3% larger
• Delay is 13% smaller
• Memory Requirement is 30% smaller
• Synthesis is 8X faster
• Superior performance on large circuits
Comparison between BDS and SIS
Performance Comparison on Large Circuits
Conclusion
• Decomposition– Boolean decomposition using cuts and generalized
dominators.– Fast algebraic decomposition with simple dominators.– XOR, variable and functional MUX decomposition.
• Logic Synthesis– Sweep to remove simple redundancy.– Elimination to remove inter-gate redundancy.– Decomposition to recursively break down large
functions in to basic gates.