boolean matching in logic synthesis. equivalence of functions equivalence of two functions defined...

21
Boolean Matching in Logic Synthesis

Post on 21-Dec-2015

225 views

Category:

Documents


2 download

TRANSCRIPT

Boolean Matching in Logic Synthesis

Equivalence of Functions

Equivalence of two functions defined under Negation of input variables Permutation of input variables Negation of output

Negation of Input Variables (Phase Assignment)

Let f (X) and g (X) be two functions and

X = { x1 , x2 ,…, xn} g (X) = f ( (X) ) maps each xi to itself or its complement

Ex.

f = x1 + x2 + x3 and g = x1 + x2 + x3

maps x1 x1

x2 x2

x3 x3

g (X) = f ( (X) )

Permutation of Input Variables

g (X) = f ( (X) ) is a permutation of X

Ex.

f = x1 x3 + x2 x4 and g = x2 x4 + x1 x3

maps x1 x2

x2 x1

x3 x4

x4 x3

g (X) = f ( (X) )

Negation of Output

g (X) = f (X) or g (X) = f (X)

Ex.

f = x1 + x2 and g = x1 x2

g (X) = f (X)

Equivalence of Functions

NPN-equivalent :– equivalent under input Negation, input

Permutation, output Negation NP-equivalent :

– equivalent under input Negation, input Permutation

P- equivalent :– equivalent under input Permutation

Boolean Matching

Given functions f (X) and g (Y), where X =

{ x1 , x2 ,…, xn} and Y = { y1 , y2 ,…, yn}

: maps each xi to a unique yj or yj

g (Y) = f ( (X) ) (or f ( (X) )

Applications of Boolean Matching

Technology Mapping– matching of complex gates, e.g. ACT2– exploiting implicit don’t care

Logic Verification– input correspondence is not given

Boolean Matching

Given functions f (X) and g (Y), where X =

{ x1 , x2 ,…, xn} and Y = { y1 , y2 ,…, yn}

: maps each xi to a unique yj or yj

g (Y) = f ( (X) ) (or f ( (X) )

2n n! 2 mappings

Solving Boolean Matching

Pruning search space Signature of function Signature of variable Signatures invariant to input permutation / input

negation / output negation Signature used as necessary condition for

equivalence

A General Paradigm of Boolean Matching

F u n c tio n f an d g

C o m p u te S ig n a tu re so f F u n c tio n s

E q u a l?N o t

M atch edN o

C o m p u te S ig n a tu re so f v a riab le s

Y es

E q u a l?

E q u iv a len ce o f f an d g ?

M atch ed

N o tM atch ed

N o tM atch ed

Y es

Y es

N o

N o

Signatures of Functions

Unateness property Symmetry property Size of on_set

Unateness Property Matched functions having the same number of unate

variables Speed-up of phase assignment

transforming negative unate variables to positive ones by adding inverters

all unate variables being positive unate phase assignment required for binate variables

only Speed-up of permutation

unate variables not being associated to binate variables

Symmetry Property

Symmetry class : a set of variables that are interchangeable without affecting the logic functionality

Matched functions having the same symmetry classes

Variables in different symmetry sets not being associated

Size of On_set

the number of minterms for which a function f evaluates to 1 (denoted as onsize(f) )

matched functions having the same size of on_set

computed on Ordered Binary Decision Diagram

Signature of Variables

Cofactor signature

Cofactor statistics and Component signature

Single fault propagation weight signature (SFP) and Partner patterns

Cofactor Signature

Cofactor signature of a variable xt for function f :onsize (xt fxt)

: 0-branch

: 1-branch

xt

xt fxt

0 1

f

Cofactor Statistics (Component Signature) of xt

A sorted list of onsize (xt xj fxtxj) for all xt in the

input set

xt xj fxtxj

0 1

fxt

xj

Single Fault Propagation Weight (Partner) Signature

( onsize (xt fxt fxt), onsize (xt fxt fxt), onsize (fxt fxt) )

xt xt xt xt

0 1

Structural Equivalence

(1) Graph isomorphism

(2) One to one correspondence of labels of nonterminal

nodes of two graphs

(3) For all nonterminal nodes, all corresponding branches

having the same value or all corresponding branches

having complemented value

x0

0 1

x1

x2

y1

1 0

y2

y0

Matching Based on Structure of BDD

Structure Equivalence of BDDf of (a) and BDDg of (c) Top-Down transformation Bottom-up transformation

x0

0 1

x1

x2

y1

1 0

y2

y0

y0

0

y1

y2

y1

1

(a) BDDf (b) BDDg (c) BDDg