460 likes | 762 Views
Logic Decomposition. ECE1769 Jianwen Zhu (Courtesy Dennis Wu). Introduction. Functional Decomposition. Re-express a Boolean function as Where Free set: Bound set: Disjoint decomposition. Ashenhurst Decomposition Chart. Classic method Row: bound set Column: free set
E N D
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Functional Decomposition • Re-express a Boolean function as • Where • Free set: • Bound set: • Disjoint decomposition
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
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.
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 Horizontal Cut
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.
Boolean AND Decomposition • Obtain divisor by redirecting dangling edges of generalized dominator to 1. • Obtain quotient by minimizing F with the off-set of the divisor as a don’t care set.
Boolean OR Decomposition • Obtain subtractor by redirecting dangling edges of generalized dominator to 0. • Obtain remainder by minimizing F using the on-set of the subtractor as a don’t care set.
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.
A node which belongs to every path leading to a ‘1’ terminal is called a 1-dominator Enables fast algebraic AND decomposition 1-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
A node which is contained in every path is called an x-dominator Enables fast XNOR Decomposition 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
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
Each node in a BDD can be decomposed as a simple MUX Only useful when overlap between its two cofactors is small. Simple MUX Decomposition
Control Signal is a function Requires 2 nodes which cover all paths. Functional MUX Decomposition
Sweep • Constant and Single-Variable Nodes Removal • Removal of Functionally Equivalent Nodes AND AND OR OR x y x 1 x y x y 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.
Order of Decomposition • Simple Dominator • Functional MUX • Single MUX • Generalized Dominator • 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
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.