Sie sind auf Seite 1von 21

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 f = x1 + x2 + x3 and g = x1 + x2 + x3 maps x1 x1 x2 x2 x3 x3 g (X) = f ( (X) )

Ex.

Permutation of Input Variables

g (X) = f ( (X) ) is a permutation of X f = x1 x3 + x2 x4 and g = x2 x4 + x1 x3 maps x1 x2 x2 x1 x3 x4 x4 x3 g (X) = f ( (X) )

Ex.

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


Function f and g Compute Signatures of variables

Compute Signatures of Functions No Not Matched

No Equal? Yes No Equivalence of f and g ? Yes Matched

Not Matched

Equal? Yes

Not Matched

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

: 0-branch : 1-branch

xt fxt

Cofactor Statistics (Component Signature) of xt

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

xt xj fxtxj

Single Fault Propagation Weight (Partner) Signature

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

xt

xt

xt

xt

Structural Equivalence
x0 y1

x1
x2 0 1

y2
y0 1 0

(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

Matching Based on Structure of BDD


x0 y0 y1

x1
x2 0 (a) BDDf

y1

y1
y2

y2
y0 1 0

(b) BDDg

(c) BDDg

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

Das könnte Ihnen auch gefallen