Presentation is loading. Please wait.

Presentation is loading. Please wait.

Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)

Similar presentations


Presentation on theme: "Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)"— 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 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

25

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

33

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.


Download ppt "Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)"

Similar presentations


Ads by Google