1 / 46

Logic Decomposition

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

rstacy
Download Presentation

Logic Decomposition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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. 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

  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 • 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.

  14. Example of Boolean AND Decomposition

  15. 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.

  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. A node which belongs to every path leading to a ‘1’ terminal is called a 1-dominator Enables fast algebraic AND decomposition 1-Dominator

  20. 1-Dominator

  21. A node which belongs to every path leading to a ‘0’ terminal is called a 0-dominator Enables fast algebraic OR decomposition 0-Dominator

  22. 0-Dominator

  23. A node which is contained in every path is called an x-dominator Enables fast XNOR Decomposition X-Dominator

  24. X-Dominator

  25. 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. 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

  28. Generalized X-Dominator

  29. 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

  30. MUX Decomposition

  31. Control Signal is a function Requires 2 nodes which cover all paths. Functional MUX Decomposition

  32. Functional MUX Decomposition

  33. Functional MUX Decomposition

  34. Logic Synthesis

  35. 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

  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 • Simple Dominator • Functional MUX • Single MUX • Generalized Dominator • 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.

More Related