boolean matching in logic synthesis
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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 ign 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 ign 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