460 likes | 539 Views
Learn about various functional decomposition methods in Boolean functions and their applications in logic synthesis. Understand the concept of cuts, dominators, and different decomposition strategies for AND, OR, and XNOR operations.
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.