logic decomposition

46
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)

Upload: gaille

Post on 08-Jan-2016

46 views

Category:

Documents


1 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Logic Decomposition

Logic Decomposition

ECE1769

Jianwen Zhu

(Courtesy Dennis Wu)

Page 2: Logic Decomposition

Introduction

Page 3: Logic Decomposition

Functional Decomposition

• Re-express a Boolean function as

– Where

– Free set:– Bound set:– Disjoint decomposition

)),(),...,(),(()( 10 ZYYYFXf k

};,...,,{ 10 nxxxX

};,...,,{ 10 syyyY

};,...,,{ 10 mzzzZ

., XZY

Page 4: Logic Decomposition

Ashenhurst Decomposition Chart

• Classic method– Row: bound set

– Column: free set

– Disjoint decomposition if column multiplicity = 2

Page 5: Logic Decomposition

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

Page 6: Logic Decomposition

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)

Page 7: Logic Decomposition

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

Page 8: Logic Decomposition

BDD Summary

• Canonical• Compact• Efficient algorithms for many Boolean operations

Procedure Result Time Complexity

Apply f1 <op> f2 O(|G1|·|G2|)

Restrict f|xi = b O(|G|·log|G|)

Compose f1|xi = f2 O(|G1|2··|G2|)

Page 9: Logic Decomposition

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.

Page 10: Logic Decomposition

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

Page 11: Logic Decomposition

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.

Page 12: Logic Decomposition

Example Generalized Dominator

Page 13: Logic Decomposition

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.

Page 14: Logic Decomposition

Example of Boolean AND Decomposition

Page 15: Logic Decomposition

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.

Page 16: Logic Decomposition

Example of Boolean OR Decomposition

Page 17: Logic Decomposition

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.

Page 18: Logic Decomposition

Algebraic Bi-Decomposition

Page 19: Logic Decomposition

1-Dominator

• A node which belongs to every path leading to a ‘1’ terminal is called a 1-dominator

• Enables fast algebraic AND decomposition

Page 20: Logic Decomposition

1-Dominator

Page 21: Logic Decomposition

0-Dominator

• A node which belongs to every path leading to a ‘0’ terminal is called a 0-dominator

• Enables fast algebraic OR decomposition

Page 22: Logic Decomposition

0-Dominator

Page 23: Logic Decomposition

X-Dominator

• A node which is contained in every path is called an x-dominator

• Enables fast XNOR Decomposition

Page 24: Logic Decomposition

X-Dominator

Page 25: Logic Decomposition

X-Dominator

Page 26: Logic Decomposition

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

Page 27: Logic Decomposition

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)

Page 28: Logic Decomposition

Generalized X-Dominator

Page 29: Logic Decomposition

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.

Page 30: Logic Decomposition

MUX Decomposition

Page 31: Logic Decomposition

Functional MUX Decomposition

• Control Signal is a function

• Requires 2 nodes which cover all paths.

Page 32: Logic Decomposition

Functional MUX Decomposition

Page 33: Logic Decomposition

Functional MUX Decomposition

Page 34: Logic Decomposition

Logic Synthesis

Page 35: Logic Decomposition

Sweep

• Constant and Single-Variable Nodes Removal

• Removal of Functionally Equivalent Nodes

AND AND OR

1x y x y

OR

xy x y

Page 36: Logic Decomposition

Eliminate

• Balance between Global vrs. Local Scenario

• Partial Collapsing

Page 37: Logic Decomposition

Global vrs Local BDDs

• Representing large Boolean networks in a global BDD causes serious computational problems.

• Leave in multilevel form.

Page 38: Logic Decomposition

BDD Decomposition Engine

Page 39: Logic Decomposition

Order of Decomposition

1. Simple Dominator

2. Functional MUX

3. Single MUX

4. Generalized Dominator

5. Generalized X-Dominator

Page 40: Logic Decomposition

Typical Logic Optimization Flow BDDlopt

• Boolean Simplification – (Variable Ordering)

• Factorization – (Recursive BDD Decomposition)

• Logic Sharing – (Detected on Factoring Trees)

Page 41: Logic Decomposition

Factoring Trees

• Retains information about the decomposition process

• Extract functionally equivalent sub-trees

Page 42: Logic Decomposition

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

Page 43: Logic Decomposition

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

Page 44: Logic Decomposition

Comparison between BDS and SIS

Page 45: Logic Decomposition

Performance Comparison on Large Circuits

Page 46: Logic Decomposition

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.