mihir choudhury, kartik mohanram (iccad’10 best paper nominee) presentor: abert liu

Post on 21-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Bi-decomposition of large Boolean functions using blocking edge graphs

Mihir Choudhury, Kartik Mohanram(ICCAD’10 best paper nominee)

Presentor: ABert Liu

m

Introduction Terminology Algorithm Illustration Experimental Result Conclusion

Outline

m

Introduction

m

Bi-decomposition is a special kind of functional

decomposition Functional decomposition

Break a large function into a network ofsmaller functions

Reduce circuit and communication complexityand thus simplify physical design

Bi-decomposition plays an important role in logic synthesis for restructuring Boolean networks

Introduction

m

Problem

f

fA f B

h

XA XB XC

XBXC

Bi-decompose

XA

m

Terminology

m

Blocking Edge Graph (BEG):

It’s an undirected graph. Every vertex represent a variable. One graph represents only one non-

decomposability of and, or, or xor. The edges connected variable pair {i , j} means

no variable partition can decompose this variable pair.

BEG can extract variable partition.

Terminology

m

( a, b) and ( b, d) are not blocked in the and BEG.

( c, d) and ( c, b) are not blocked in the or BEG. The xor BEG is complete graph.

BEG Example

ORAND

a b

dc

a b

dc

XOR

a b

dc

m

Algorithm

m

1.Construct BEG 2.Do variable partition on the BEG. 3.Compute the decomposed functions. 4.Recursively bi-decompose the decomposed

functions from 3. In 4. if the function is not decomposable it will

do some relaxation to make further decompose. (It’s not bi-decomposition)

Algorithm

m

Illustration

m

Giving a function f with variable set V. To construct BEG for f: 1.Choose a variable pair { i, j }. 2.Give an assignment c to V/{ i, j}. (Restricting the K-map of function to 2x2 squares.) (There are 2x2 K-maps for each pair { i, j}) 3.Test the blocking condition to add edges ( i,

j) to BEGs. 4. Go back to 1. until all the pairs have been

tested.

Construct BEG

m

Blocking condition:

One square blocks the others.

Construct BEG

m

K-map ij\k 0 1 00 1 1 01 1 0 11 0 1 10 1 0

Example

AND

i

kj

OR

i

kj

XOR

i

kj

For { i, j } pair : assign k=0 assign k=1 i\j 0 1 i\j 0 1 0 1 1 or 0 1 0 xor 1 1 0 square 1 0 1 squareBlocking all { i, j} in all BEGs.Other pair do the same thing to finish constructing the BEGs.

m

K-map ij\k 0 1 00 1 0 01 1 0 11 0 0 10 0 0

Example

AND

i

kj

OR

i

kj

XOR

i

kj

For { i, j } pair : assign k=0 assign k=1 i\j 0 1 i\j 0 1 0 1 1 Literal 0 0 0 Zero 1 0 0 square 1 0 0 square

m

We can compute whether the edge ( i, j)

should be added or not in and and or BEGs by compute x. If x is not constant 0 the edge will be added.

Construct BEG

i

j

k

On-SetOff-set

m

The same for or and and:

Construct BEG

i

j

k

On-SetOff-set

m

Whether the function is bi-decomposable or not?

Guarantee the existence of variable partition.

Variable Partition

m

Who can be common variable?Vertex cut is necessary but not sufficient condition.

Variable Partition

m

Vertex Cut: A set of vertices whose removal

renders a connected graph disconnected. Examples:

Variable Partition

a b

dc

Legal cut

Not a vertex cut

a b

dc

e Legal cut

Another legal cut

m

Decomposed function for or and and: For an or bi-decomposition.

Decomposed Function

Off-set

On-set

An and bi-decomposition can be obtained in a similar manner by interchanging the off-set and the on-set of f.

It’s subset of off-set of f.

It’s obtained from expanding on-set of f and does not overlap with off-set of decomposed function.

m

For xor :

Decomposed Function

m

Example

m

Experimental Result

m

Experimental Result

m

Experimental Result

m

Conclusion

m

The experimental result looks good. This work implemented in ABC using CUDD

package, it might have memory problem when function is large.

Solving problem with new graph structure might be a good idea. The BEG has global view of the decomposability of

every variable pairs to choose the best partition. Maybe we can improve our bi-decomposition

work.

Conclusion

m

Thanks for Attention

top related