210 likes | 303 Views
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
E N D
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 + x3and 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 x4and 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 + x2and 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
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 f xt xt fxt 0 1
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 0 1
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 x0 y1 (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 x1 y2 x2 y0 0 1 1 0
Matching Based on Structure of BDD x0 y0 y1 • Structure Equivalence of BDDf of (a) and BDDg of (c) • Top-Down transformation • Bottom-up transformation x1 y1 y1 y2 x2 y0 y2 0 1 0 1 1 0 (a) BDDf (b) BDDg (c) BDDg