logic decomposition

Post on 08-Jan-2016

46 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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

Logic Decomposition

ECE1769

Jianwen Zhu

(Courtesy Dennis Wu)

Introduction

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

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

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

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.

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

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.

Example Generalized Dominator

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.

Example of Boolean AND 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.

Example of Boolean OR 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.

Algebraic Bi-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

1-Dominator

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

X-Dominator

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

• Enables fast XNOR Decomposition

X-Dominator

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

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)

Generalized X-Dominator

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.

MUX Decomposition

Functional MUX Decomposition

• Control Signal is a function

• Requires 2 nodes which cover all paths.

Functional MUX Decomposition

Functional MUX Decomposition

Logic Synthesis

Sweep

• Constant and Single-Variable Nodes Removal

• Removal of Functionally Equivalent Nodes

AND AND OR

1x y x y

OR

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

BDD Decomposition Engine

Order of Decomposition

1. Simple Dominator

2. Functional MUX

3. Single MUX

4. Generalized Dominator

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

Comparison between BDS and SIS

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

top related