Download presentation
Presentation is loading. Please wait.
Published byJoleen Phillips Modified over 9 years ago
1
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
2
Introduction
3
Functional Decomposition Re-express a Boolean function as –Where –Free set: –Bound set: –Disjoint decomposition
4
Ashenhurst Decomposition Chart Classic method –Row: bound set –Column: free set –Disjoint decomposition if column multiplicity = 2
5
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
6
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)
7
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
8
BDD Summary Canonical Compact Efficient algorithms for many Boolean operations ProcedureResultTime Complexity Applyf 1 f 2 O(|G 1 |·|G 2 |) Restrictf| x i = b O(|G|·log|G|) Composef1| x i = f2 O(|G 1 | 2 · · |G 2 |)
9
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.
10
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
11
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.
12
Example Generalized Dominator
13
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.
14
Example of Boolean AND Decomposition
15
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.
16
Example of Boolean OR Decomposition
17
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.
18
Algebraic Bi-Decomposition
19
1-Dominator A node which belongs to every path leading to a ‘1’ terminal is called a 1-dominator Enables fast algebraic AND decomposition
20
1-Dominator
21
0-Dominator A node which belongs to every path leading to a ‘0’ terminal is called a 0-dominator Enables fast algebraic OR decomposition
22
0-Dominator
23
X-Dominator A node which is contained in every path is called an x- dominator Enables fast XNOR Decomposition
24
X-Dominator
26
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
27
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)
28
Generalized X-Dominator
29
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.
30
MUX Decomposition
31
Functional MUX Decomposition Control Signal is a function Requires 2 nodes which cover all paths.
32
Functional MUX Decomposition
34
Logic Synthesis
35
Sweep Constant and Single-Variable Nodes Removal Removal of Functionally Equivalent Nodes AND OR 1 xy xy x y xy
36
Eliminate Balance between Global vrs. Local Scenario Partial Collapsing
37
Global vrs Local BDDs Representing large Boolean networks in a global BDD causes serious computational problems. Leave in multilevel form.
38
BDD Decomposition Engine
39
Order of Decomposition 1.Simple Dominator 2.Functional MUX 3.Single MUX 4.Generalized Dominator 5.Generalized X-Dominator
40
Typical Logic Optimization Flow BDDlopt Boolean Simplification –(Variable Ordering) Factorization –(Recursive BDD Decomposition) Logic Sharing –(Detected on Factoring Trees)
41
Factoring Trees Retains information about the decomposition process Extract functionally equivalent sub-trees
42
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
43
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
44
Comparison between BDS and SIS
45
Performance Comparison on Large Circuits
46
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.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.