SlideShare a Scribd company logo
Boolean Matching in Logic Synthesis
Boolean matching is a technique to detect 
equivalence of two Boolean function 
under permutation of the variables. 
A permutation P over X is a one- to-one function 
P : X -> X; X = {x1, x2, x3, …, xn }
Equivalence of two functions defined under 
 Negation of input variables 
 Permutation of input variables 
 Negation of output
 X = {x1, x2, x3, …, xn } 
 Set of Boolean input variables. 
 f (X) and g (X) 
 Denotes two Boolean functions of X. 
  (X) 
 Maps each xi to itself or its complement. 
 If g (X) = f ( (X)) 
 Then we say f (X) and g (X) are equivalent functions.
5 
Example: 
X = {x1, x2, x3} 
f (X) = x1 + x2 + x3 
g (X)= x1 + x2 + x3 
 Mapping: 
x1 x1 
x2 x2 
x3 x3 
g (X) = f ( (X) ), so f (X) and g (X) are equivalent 
functions.
  (X) 
 Maps each xi to any xi. 
  is a permutation of X. 
 If g (X) = f ( (X)) 
 Then we say f (X) and g (X) are equivalent functions. 
Example: 
X = {x1, x2, x3} 
f (X) = x1x3 + x2 + x3x1 
g (X)= x3x2 + x1 + x2x3 
 Mapping: 
x1 x3 
x2 x1 
x3 x2 
g (X) = f ( (X) ), so f (X) and g (X) are equivalent functions.
7 
7 
 X = {x1, x2, x3,…, xn} 
 Set of Boolean input variables. 
 f (X) and g (X) 
 Denotes two Boolean functions of X. 
 If g (X) = f (X) or g (X) = f (X) 
 Then we say f(X) and g(X) are equivalent functions. 
Example: 
X = {x1, x2, x3} 
f (X) = x1x2x3 
g (X)= x1 + x2 + x3 
g (X) = f (X), so f (X) and g (X) are equivalent 
functions.
 N-equivalent 
 Equivalent under input Negation. 
 P-equivalent 
 Equivalent under input Permutation. 
 NP-equivalent 
 Equivalent under input Negation, input Permutation. 
 NPN-equivalent 
 Equivalent under input Negation, input Permutation, 
output Negation.
Given functions f (X) and g (Y), 
where, 
X = { x1 , x2 ,…, xn} 
Y = { y1 , y2 ,…, yn} 
 : maps each xi to a unique yj or yj 
g (Y) = f ( (X) ) or f ( (X) ) 
Total 2n  n!  2 mappings
Function f and g 
Compute Signatures 
of Functions 
Equal? 
Not 
Matched 
No 
Compute Signatures 
of variables 
Yes 
Equal? 
Equivalence of 
f and g ? 
Matched 
Not 
Matched 
Not 
Matched 
Yes 
Yes 
No 
No
• The positive cofactor of function f (x1, ..,xn) with 
respect to variable xi, denoted by fxi , is f (x1, ..,xi = 1, 
...,xn). 
▫ The negative cofactor denoted by fx′i, is f (x1, .., xi =0, ...,xn). 
• A function f (x1, ...,xn) is positive unate in variable xi if 
and only if 
 the negative cofactor of f with respect to xi is covered by the 
positive cofactor of f with respect to xi, i.e., fx′i⊆ fxi . 
 Likewise, f is negative unate in variable xi if and only if 
fxi ⊆ fx′i. 
 f is called binate in xi if it is not unate in it.
A signature is defined as a necessary condition that 
captures some key characteristic of a Boolean 
function with respect to one or more of its input 
variables. 
3 types of key characteristic : 
 Unateness property 
 Symmetry property 
 Size of on_set
 Matched functions having the same number of Unate 
and Binate variables. 
 If we denote by b the number of binate variables, 
then b is a signature of the function. 
 The number of Unate variables (n-b) is a signature. 
 At most b! *(n – b)! variable permutations need to be 
considered in the search for a match in the worst 
case.
A function: 
g has n = 7, 4 Unate variables, 3 Binate variables. 
Consider another function with n=7. 
• First, a necessary condition for f to match g is to also have 4 
unate variables and 3 binate variables. 
• Then, only 3!4! =144 variable orders and corresponding OBDDs 
need to be considered in the worst case.
 Symmetry class : a set of variables that are 
interchangeable without affecting the logic 
functionality. 
 A symmetry class is an ensemble of symmetry sets 
with the same cardinality. 
• A necessary condition for matching is to have 
symmetry classes of the same cardinality for each 
i = 1,2, . . . , n.
Consider, 
• The support variables of f(x) can be partitioned into three 
symmetry sets:{x1, x2, x3}, {x4, x5}, {x6, x7}. 
• There are two non-void symmetry classes, namely:C2 ={{x4, 
x5}, {x6, x7}} and C3 = {{x1, x2, x3}}. 
• A signature is [0,2,1,0,0,0,0]. 
Consider, g1 = y1 + y2 y3 + y4 y5 + y6 y7 
g2 = (y1’ + y2’)(y3’+ y4)( y5 + y6 +y7 ). 
 The signatures of the cells are, [1,3,0,0,0,0,0] & [0,2,1,0,0,0,0]. 
• The signatures of f and g2 are equal, and indeed g2 is NPN 
equivalent to f.
 Signatures can also be obtained by considering the 
satisfy count of a function, which is the number of its 
minterms. 
 minterm is intended to imply it that each of the groups 
in the expression takes on a value of 1 only for one of the 
all possible combinations of the inputs and their inverses. 
 The number of minterms for which a function f evaluates 
to 1 (denoted as on_set(f) ). 
 matched functions have the same size of on_set. 
 computed on Ordered Binary Decision Diagram
 Cofactor signature 
 Cofactor statistics and Component signature 
 Single fault propagation weight signature (SFP) 
and Partner patterns
 Cofactor signature of a variable xt for function f : 
onsize (xt  fxt) 
: 0-branch 
: 1-branch 
xt 
f 
xt  fxt 
0 1
 A sorted list of onsize (xt xj  fxtxj) for all xt in the 
input set 
xt xj  fxtxj 
f 
xt 
xj 
0 1
( onsize (xt  fxt  fxt), onsize (xt  fxt  fxt), onsize (fxt  fxt) ) 
xt xt xt xt 
0 1
Function f and g 
Compute Signatures 
of Functions 
Equal? 
Not 
Matched 
No 
Compute Signatures 
of variables 
Yes 
Equal? 
Equivalence of 
f and g ? 
Matched 
Not 
Matched 
Not 
Matched 
Yes 
Yes 
No 
No
23 
 Technology Mapping 
 Matching of complex gates. 
 Exploiting implicit don’t care. 
 Logic Verification 
 When input correspondence is not given. 
 Verify correctness of a logic circuit. 
 Logic Synthesis 
 Cell library binding process. 
23
24 
Boolean matching is based on exact equivalence 
checking techniques that find a match whenever 
possible. Various kinds of algorithms exist for 
Boolean matching. An overview of Boolean 
S i g n a t u r e b a s e d 
algorithm is discussed.
Boolean Matching in Logic Synthesis
Boolean Matching in Logic Synthesis

More Related Content

POT
2portnetwork-150303092056-conversion-gate01
PDF
Partial Differential Equation - Notes
PPTX
Latch & Flip-Flop Design.pptx
PPTX
Unit 3-State-Space Analysis_all.pptx
PPT
z transforms
PDF
Signals and systems analysis using transform methods and matlab 3rd edition r...
PDF
Hw1 solution
PPT
Analysis of state machines
2portnetwork-150303092056-conversion-gate01
Partial Differential Equation - Notes
Latch & Flip-Flop Design.pptx
Unit 3-State-Space Analysis_all.pptx
z transforms
Signals and systems analysis using transform methods and matlab 3rd edition r...
Hw1 solution
Analysis of state machines

What's hot (20)

DOCX
4 bit uni shift reg
PPTX
Sequential logic circuit
PDF
Verilog coding of mux 8 x1
PPTX
application of graph theory in air traffic control.pptx
DOCX
Unit step function
PPTX
Linear transformation and application
PDF
Shift register
PPT
Laplace transform
PPT
Initial and final condition for circuit
PDF
Chapter 03 Boolean Algebra and Combinational Logic
PDF
Engineering Electromagnetics 8th Edition Hayt Solutions Manual
PPTX
Lcd
PDF
RF Circuit Design - [Ch3-1] Microwave Network
PPTX
Laplace transforms
PPT
Numerical method
PPTX
D and T Flip Flop
PPTX
CMOS Layout
PPTX
Introduction To Vector Integrals.pptx
PPTX
Presentation on Numerical Method (Trapezoidal Method)
4 bit uni shift reg
Sequential logic circuit
Verilog coding of mux 8 x1
application of graph theory in air traffic control.pptx
Unit step function
Linear transformation and application
Shift register
Laplace transform
Initial and final condition for circuit
Chapter 03 Boolean Algebra and Combinational Logic
Engineering Electromagnetics 8th Edition Hayt Solutions Manual
Lcd
RF Circuit Design - [Ch3-1] Microwave Network
Laplace transforms
Numerical method
D and T Flip Flop
CMOS Layout
Introduction To Vector Integrals.pptx
Presentation on Numerical Method (Trapezoidal Method)
Ad

Similar to Boolean Matching in Logic Synthesis (20)

DOCX
237654933 mathematics-t-form-6
PPT
PPT
Random variable, distributive function lect3a.ppt
PPTX
Lesson 1
PPTX
Edsc 304 lesson 1
PPTX
Lesson 1
PPTX
Quantitative Techniques random variables
DOCX
Lecture Notes In Algebra
DOCX
Chapter 4 and half
PPTX
Exponential and logarithmic functions
PPTX
Module ii sp
PPTX
this materials is useful for the students who studying masters level in elect...
PDF
Defining Functions on Equivalence Classes
PDF
Machine Learning
PPTX
R lecture co4_math 21-1
PPT
Functions (1)
PPTX
AIOU Code 803 Mathematics for Economists Semester Spring 2022 Assignment 2.pptx
PPTX
Integration presentation
PDF
functions review
PDF
4.1 Inverse Functions
237654933 mathematics-t-form-6
Random variable, distributive function lect3a.ppt
Lesson 1
Edsc 304 lesson 1
Lesson 1
Quantitative Techniques random variables
Lecture Notes In Algebra
Chapter 4 and half
Exponential and logarithmic functions
Module ii sp
this materials is useful for the students who studying masters level in elect...
Defining Functions on Equivalence Classes
Machine Learning
R lecture co4_math 21-1
Functions (1)
AIOU Code 803 Mathematics for Economists Semester Spring 2022 Assignment 2.pptx
Integration presentation
functions review
4.1 Inverse Functions
Ad

More from Iffat Anjum (20)

PPTX
Fog computing ( foggy cloud)
PPTX
Cognitive radio network_MS_defense_presentation
PPTX
Lecture 15 run timeenvironment_2
PPT
Lecture 16 17 code-generation
PPTX
Lecture 14 run time environment
PPTX
Lecture 12 intermediate code generation
PPT
Lecture 13 intermediate code generation 2.pptx
PPTX
Lecture 11 semantic analysis 2
PPTX
Lecture 09 syntax analysis 05
PPTX
Lecture 10 semantic analysis 01
PPTX
Lecture 07 08 syntax analysis-4
PPT
Lecture 06 syntax analysis 3
PPT
Lecture 05 syntax analysis 2
PPT
Lecture 03 lexical analysis
PPT
Lecture 04 syntax analysis
PPTX
Lecture 02 lexical analysis
PDF
Lecture 01 introduction to compiler
PPT
Compiler Design - Introduction to Compiler
PPTX
Distributed contention based mac protocol for cognitive radio
PPT
On qo s provisioning in context aware wireless sensor networks for healthcare
Fog computing ( foggy cloud)
Cognitive radio network_MS_defense_presentation
Lecture 15 run timeenvironment_2
Lecture 16 17 code-generation
Lecture 14 run time environment
Lecture 12 intermediate code generation
Lecture 13 intermediate code generation 2.pptx
Lecture 11 semantic analysis 2
Lecture 09 syntax analysis 05
Lecture 10 semantic analysis 01
Lecture 07 08 syntax analysis-4
Lecture 06 syntax analysis 3
Lecture 05 syntax analysis 2
Lecture 03 lexical analysis
Lecture 04 syntax analysis
Lecture 02 lexical analysis
Lecture 01 introduction to compiler
Compiler Design - Introduction to Compiler
Distributed contention based mac protocol for cognitive radio
On qo s provisioning in context aware wireless sensor networks for healthcare

Recently uploaded (20)

PDF
Classroom Observation Tools for Teachers
PDF
Basic Mud Logging Guide for educational purpose
PDF
RMMM.pdf make it easy to upload and study
PDF
Computing-Curriculum for Schools in Ghana
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Cell Types and Its function , kingdom of life
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
master seminar digital applications in india
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Institutional Correction lecture only . . .
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
Classroom Observation Tools for Teachers
Basic Mud Logging Guide for educational purpose
RMMM.pdf make it easy to upload and study
Computing-Curriculum for Schools in Ghana
2.FourierTransform-ShortQuestionswithAnswers.pdf
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Final Presentation General Medicine 03-08-2024.pptx
human mycosis Human fungal infections are called human mycosis..pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Anesthesia in Laparoscopic Surgery in India
Cell Types and Its function , kingdom of life
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Renaissance Architecture: A Journey from Faith to Humanism
master seminar digital applications in india
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Institutional Correction lecture only . . .
Module 4: Burden of Disease Tutorial Slides S2 2025

Boolean Matching in Logic Synthesis

  • 2. Boolean matching is a technique to detect equivalence of two Boolean function under permutation of the variables. A permutation P over X is a one- to-one function P : X -> X; X = {x1, x2, x3, …, xn }
  • 3. Equivalence of two functions defined under  Negation of input variables  Permutation of input variables  Negation of output
  • 4.  X = {x1, x2, x3, …, xn }  Set of Boolean input variables.  f (X) and g (X)  Denotes two Boolean functions of X.   (X)  Maps each xi to itself or its complement.  If g (X) = f ( (X))  Then we say f (X) and g (X) are equivalent functions.
  • 5. 5 Example: X = {x1, x2, x3} f (X) = x1 + x2 + x3 g (X)= x1 + x2 + x3  Mapping: x1 x1 x2 x2 x3 x3 g (X) = f ( (X) ), so f (X) and g (X) are equivalent functions.
  • 6.   (X)  Maps each xi to any xi.   is a permutation of X.  If g (X) = f ( (X))  Then we say f (X) and g (X) are equivalent functions. Example: X = {x1, x2, x3} f (X) = x1x3 + x2 + x3x1 g (X)= x3x2 + x1 + x2x3  Mapping: x1 x3 x2 x1 x3 x2 g (X) = f ( (X) ), so f (X) and g (X) are equivalent functions.
  • 7. 7 7  X = {x1, x2, x3,…, xn}  Set of Boolean input variables.  f (X) and g (X)  Denotes two Boolean functions of X.  If g (X) = f (X) or g (X) = f (X)  Then we say f(X) and g(X) are equivalent functions. Example: X = {x1, x2, x3} f (X) = x1x2x3 g (X)= x1 + x2 + x3 g (X) = f (X), so f (X) and g (X) are equivalent functions.
  • 8.  N-equivalent  Equivalent under input Negation.  P-equivalent  Equivalent under input Permutation.  NP-equivalent  Equivalent under input Negation, input Permutation.  NPN-equivalent  Equivalent under input Negation, input Permutation, output Negation.
  • 9. Given functions f (X) and g (Y), where, X = { x1 , x2 ,…, xn} Y = { y1 , y2 ,…, yn}  : maps each xi to a unique yj or yj g (Y) = f ( (X) ) or f ( (X) ) Total 2n  n!  2 mappings
  • 10. Function f and g Compute Signatures of Functions Equal? Not Matched No Compute Signatures of variables Yes Equal? Equivalence of f and g ? Matched Not Matched Not Matched Yes Yes No No
  • 11. • The positive cofactor of function f (x1, ..,xn) with respect to variable xi, denoted by fxi , is f (x1, ..,xi = 1, ...,xn). ▫ The negative cofactor denoted by fx′i, is f (x1, .., xi =0, ...,xn). • A function f (x1, ...,xn) is positive unate in variable xi if and only if  the negative cofactor of f with respect to xi is covered by the positive cofactor of f with respect to xi, i.e., fx′i⊆ fxi .  Likewise, f is negative unate in variable xi if and only if fxi ⊆ fx′i.  f is called binate in xi if it is not unate in it.
  • 12. A signature is defined as a necessary condition that captures some key characteristic of a Boolean function with respect to one or more of its input variables. 3 types of key characteristic :  Unateness property  Symmetry property  Size of on_set
  • 13.  Matched functions having the same number of Unate and Binate variables.  If we denote by b the number of binate variables, then b is a signature of the function.  The number of Unate variables (n-b) is a signature.  At most b! *(n – b)! variable permutations need to be considered in the search for a match in the worst case.
  • 14. A function: g has n = 7, 4 Unate variables, 3 Binate variables. Consider another function with n=7. • First, a necessary condition for f to match g is to also have 4 unate variables and 3 binate variables. • Then, only 3!4! =144 variable orders and corresponding OBDDs need to be considered in the worst case.
  • 15.  Symmetry class : a set of variables that are interchangeable without affecting the logic functionality.  A symmetry class is an ensemble of symmetry sets with the same cardinality. • A necessary condition for matching is to have symmetry classes of the same cardinality for each i = 1,2, . . . , n.
  • 16. Consider, • The support variables of f(x) can be partitioned into three symmetry sets:{x1, x2, x3}, {x4, x5}, {x6, x7}. • There are two non-void symmetry classes, namely:C2 ={{x4, x5}, {x6, x7}} and C3 = {{x1, x2, x3}}. • A signature is [0,2,1,0,0,0,0]. Consider, g1 = y1 + y2 y3 + y4 y5 + y6 y7 g2 = (y1’ + y2’)(y3’+ y4)( y5 + y6 +y7 ).  The signatures of the cells are, [1,3,0,0,0,0,0] & [0,2,1,0,0,0,0]. • The signatures of f and g2 are equal, and indeed g2 is NPN equivalent to f.
  • 17.  Signatures can also be obtained by considering the satisfy count of a function, which is the number of its minterms.  minterm is intended to imply it that each of the groups in the expression takes on a value of 1 only for one of the all possible combinations of the inputs and their inverses.  The number of minterms for which a function f evaluates to 1 (denoted as on_set(f) ).  matched functions have the same size of on_set.  computed on Ordered Binary Decision Diagram
  • 18.  Cofactor signature  Cofactor statistics and Component signature  Single fault propagation weight signature (SFP) and Partner patterns
  • 19.  Cofactor signature of a variable xt for function f : onsize (xt  fxt) : 0-branch : 1-branch xt f xt  fxt 0 1
  • 20.  A sorted list of onsize (xt xj  fxtxj) for all xt in the input set xt xj  fxtxj f xt xj 0 1
  • 21. ( onsize (xt  fxt  fxt), onsize (xt  fxt  fxt), onsize (fxt  fxt) ) xt xt xt xt 0 1
  • 22. Function f and g Compute Signatures of Functions Equal? Not Matched No Compute Signatures of variables Yes Equal? Equivalence of f and g ? Matched Not Matched Not Matched Yes Yes No No
  • 23. 23  Technology Mapping  Matching of complex gates.  Exploiting implicit don’t care.  Logic Verification  When input correspondence is not given.  Verify correctness of a logic circuit.  Logic Synthesis  Cell library binding process. 23
  • 24. 24 Boolean matching is based on exact equivalence checking techniques that find a match whenever possible. Various kinds of algorithms exist for Boolean matching. An overview of Boolean S i g n a t u r e b a s e d algorithm is discussed.

Editor's Notes

  • #16: In mathematics, the cardinality of a set is a measure of the "number of elements of the set". For example, the set A = {2, 4, 6} contains 3 elements, and therefore A has a cardinality of 3. A unit or group of complementary parts that contribute to a single effect, especially: a. A coordinated outfit or costume.
  • #17: In mathematics, the cardinality of a set is a measure of the "number of elements of the set". For example, the set A = {2, 4, 6} contains 3 elements, and therefore A has a cardinality of 3. A unit or group of complementary parts that contribute to a single effect, especially: a. A coordinated outfit or costume.
  • #18: Minterm: http://www.facstaff.bucknell.edu/mastascu/elessonshtml/Logic/Logic2.html