Unit - 3 - Combinational Logic Design
Unit - 3 - Combinational Logic Design
Unit - 3 - Combinational Logic Design
Boolean Algebra
Basic Theorems and Properties of Boolean Algebra
Law/Property OR Operation AND Operation
Associative Laws (A + B) + C = A + (B + C) (A · B) · C = A · (B · C)
A + (B · C) = (A + B) ·
Distributive Laws A · (B + C) = (A · B) + (A · C)
(A + C)
Absorption Laws A + (A · B) = A A · (A + B) = A
-- A+A'B=A+B
1. Algebraic Simplification:
Use Boolean algebra theorems and properties to simplify expressions step by step.
Identify opportunities to apply commutative, associative, distributive, and other
fundamental laws.
Apply absorption, null, domination, and other laws to eliminate redundant terms.
2. Karnaugh Maps (K-Maps):
K-Maps are graphical tools used for simplifying Boolean expressions visually.
They are particularly useful for functions with few variables.
Group adjacent 1s or 0s to identify simplified terms.
3. Quine-McCluskey Algorithm:
Suitable for simplifying functions with many variables.
Systematic method to find prime implicants and identify essential prime implicants.
Results in minimal sum-of-products (SOP) or product-of-sums (POS) expressions.
4. Tabulation Method:
Similar to K-Maps but applicable to functions with more variables.
Create tables to generate prime implicants and identify essential prime implicants.
Useful for medium-sized functions.
5. Binary Decision Diagrams (BDDs):
Graphical representation of Boolean functions.
Useful for visualizing and simplifying functions, especially in software and hardware
verification.
6. Espresso Algorithm:
A software tool for logic minimization.
Automates the Quine-McCluskey method and produces simplified expressions.
7. Heuristic Methods:
Techniques like the Petrick's Method, which can be used to minimize expressions.
They are often used when other methods are not practical for large functions.
8. Don't Care Conditions:
Utilize "don't care" conditions when optimizing functions.
These are conditions where the function's value is not critical, allowing for more
optimization possibilities.
9. Technology Mapping:
In digital circuit design, use technology mapping tools to map simplified logical
functions onto specific hardware components, such as NAND or NOR gates.
10. Quadratic Boolean Functions:
For certain applications, quadratic Boolean functions may be preferred, and
techniques for their minimization exist.
The choice of method depends on the complexity of the function, available tools, and design
constraints. In practice, a combination of algebraic simplification, Karnaugh mapping, and
automated tools like Espresso or Quine-McCluskey are commonly used to achieve efficient
logical function minimization in digital design.
Minterms and Maxterms
There are two ways in which we can put the Boolean function. These ways are the minterm
canonical form and maxterm canonical form.
Literal
A Literal signifies the Boolean variables including their complements. Such as B is a boolean
variable and its complements are ~B or B', which are the literals.
Minterm
Minterms are a fundamental concept in Boolean algebra and digital logic design. They are used
to represent specific input combinations in a truth table or Boolean function. Minterms are also
known as "canonical product terms" or "standard product terms." Here's what you need to know
about minterms:
Definition:
A minterm is a product term in which all the variables (inputs) of a Boolean function appear
exactly once, either in their true (uncomplemented) or complemented form. In other words, a
minterm represents a unique combination of input values for which the function evaluates to 1.
Notation:
Minterms are typically represented using binary notation. Each minterm is associated with a
unique binary number based on the values of the input variables. The number indicates which
input combinations result in a 1 output.
For example, in a Boolean function with three variables A, B, and C, you have the following
minterms:
Use:
Minterms are often used in the process of simplifying Boolean functions, especially when using
methods like the Quine-McCluskey algorithm or Karnaugh maps. They help represent the
function in a canonical form, making it easier to apply simplification rules and minimize the
expression.
Maxterm
Maxterms are another fundamental concept in Boolean algebra and digital logic design,
complementing minterms. They are used to represent specific input combinations for which a
Boolean function evaluates to 0. Maxterms are also known as "canonical sum terms" or
"standard sum terms." Here's what you need to know about maxterms:
Definition:
A maxterm is a sum term in which all the variables (inputs) of a Boolean function appear exactly
once, either in their true (uncomplemented) or complemented form. In other words, a maxterm
represents a unique combination of input values for which the function evaluates to 0.
Notation:
Maxterms are also typically represented using binary notation. Each maxterm is associated with
a unique binary number based on the values of the input variables. The number indicates which
input combinations result in a 0 output.
For example, in a Boolean function with three variables A, B, and C, you have the following
maxterms:
m(0,0,0): Represents the input combination where A = 0, B = 0, and C = 0, resulting in a 0
output.
m(0,0,1): Represents the input combination where A = 0, B = 0, and C = 1, resulting in a 0
output.
m(0,1,0): Represents the input combination where A = 0, B = 1, and C = 0, resulting in a 0
output.
m(0,1,1): Represents the input combination where A = 0, B = 1, and C = 1, resulting in a 0
output.
m(1,0,0): Represents the input combination where A = 1, B = 0, and C = 0, resulting in a 0
output.
m(1,0,1): Represents the input combination where A = 1, B = 0, and C = 1, resulting in a 0
output.
m(1,1,0): Represents the input combination where A = 1, B = 1, and C = 0, resulting in a 0
output.
m(1,1,1): Represents the input combination where A = 1, B = 1, and C = 1, resulting in a 0
output.
Use:
Maxterms, like minterms, are used in the process of simplifying Boolean functions. They help
represent the function in a canonical form for simplification using methods like the Quine-
McCluskey algorithm or Karnaugh maps. Maxterms are essential for expressing the
complement of a function.
Sum of Products
A canonical form of representation of a boolean function that consists of two or more AND terms
OR'ed together
In the Sum of Products (SOP) form, minterms represent a "1" when they are selected (not
complemented) and represent a "0" when they are not selected (complemented).
0 0 0 X'Y'
0 1 1 X'Y
Input X Input Y Output Minterm
1 0 1 XY'
1 1 1 XY
Now, we will add all the minterms for which the output is true to find the desired canonical
SOP(Sum of Product) expression.
F=X' Y+XY'+XY
Example: F = X'Y+XY'+XY
Example:
Let us assume that we have a boolean function F, which defined on two variables X and Y. The
minterms for the function F are expressed as shorthand notation is as follows:
F=∑(1,2,3)
Now, from this expression, we will find the SOP expression. The Boolean function F has two
input variables X and y and the output of F=1 for m1, m2, and m3, i.e., 1st, 2nd, and 3rd
combinations. So,
F=∑(1,2,3)
F= m1 + m2 + m3
F= 01 + 10 + 11
Now, we replace zeros with either X' or Y' and ones with either X or Y. Simply, the complement
variable is used when the variable value is 1 otherwise the non-complement variable is used.
F = ∑(1,2,3)
F=01+10+11
F= A'B + AB' + AB
Product of Sums
A canonical representation consisting of two or more OR terms AND'ed together.
In a Product Of Sum form, maxterms represent a "0" when they are not complemented and
represent a "1" when they are complemented.
0 0 0 X+Y
0 1 1 X+Y'
1 0 1 X'+Y
1 1 1 X'+Y'
Now, we will multiply all the minterms for which the output is false to find the desired canonical
POS(Product of sum) expression.
F=(X'+Y').(X+Y)
F=∏(1,2,3)
F= M1.M2.M3
F= 01.10.11
Next, we replace zeros with either X or Y and ones with either X' or Y'. Simply, if the value of the
variable is 1, then we take the complement of that variable, and if the value of the variable is 0,
then we take the variable "as is".
F = ∑(1,2,3)
F=01.10.11
F=(A+B').( A'+B).( A'+B')
There are the following steps using which we can easily convert the canonical forms of the
equations:
1. Start with an SOP expression: For example, (F(A, B, C) = A'B + AB' + ABC).
2. Apply De Morgan's Theorem: Use De Morgan's Theorem to distribute complements
within each term. In SOP form, you have products of literals, and in POS form, you need
sums of complements of literals.
Applying De Morgan's Theorem to the example:
[F(A, B, C) = (A + B')(A' + B)(A' + C)]
3. This new expression is in POS form: Now you have a Product of Sums expression.
1. Start with a POS expression: For example, (F(A, B, C) = (A + B)(A' + B' + C)(A' + C)).
2. Apply De Morgan's Theorem: Use De Morgan's Theorem to distribute complements
within each term. In POS form, you have sums of complements of literals, and in SOP
form, you need products of literals.
Applying De Morgan's Theorem to the example:
[F(A, B, C) = (A + B)(A' + B' + C)(A' + C) = ABA' + BAB' + BAC + A'CA' + A'CB' + A'CC]
3. Simplify the expression: Eliminate any redundant terms or simplify further using Boolean
algebra laws.
4. This new expression is in SOP form: Now you have a Sum of Products expression.
The ability to convert between SOP and POS forms allows you to choose the
representation that makes it easier to analyze or manipulate a particular logical function,
depending on the context or requirements of your design. It's a powerful tool in digital logic
design and simplification.
2 Variable K-map
There is a total of 4 variables in a 2-variable K-map. There are two variables in the 2-variable K-
map. The following figure shows the structure of the 2-variable K-map:
0 1 0 t1 A'. B A + B'
1 0 0 t2 A . B' A'+ B
Consider sum of all "R" terms equal to "1". Consider product of all "R" terms equal to "0".
AB + A'.B' (A+B')(A'+B)
Rules :
We can either group 0’s with 0’s or 1’s with 1’s but we can not group 0’s
and 1’s together.
Groups may overlap each other.
We can only create a group whose number of cells are as in 2n i.e. 1, 2,
4, 8, 16 and so on number of cells.
Groups can be only either horizontal or vertical but never diagonal.
Now , we have
F (A,B,C,D) = (A'B'C'D' + AB'C'D' + AB'C'D' + AB'CD') + (A'B'C'D + A'BC'D + ABC'D +
AB'C'D) + (A'BC'D + ABC'D + A'BCD + ABCD)
= BD + C'D + B'D'
Which can directly be noticed from (A’B + AB)(C’D + CD) + (A’B’ + A’B + AB +
AB’)C’D + (A’B’ + AB’)(C’D’ + CD’) color coded as the figure.
1. Don't-Care Conditions:
Don't-care conditions are input combinations for which the output of a logical function is not
specified or does not matter.
In truth tables, don't-care conditions are often represented as "X" or left blank.
Don't-care conditions can be used to reduce the complexity of logical expressions and
circuits.
2. Use in Simplification:
3. Circuit Optimization:
Don't-care conditions can be used to optimize digital circuits by allowing for the elimination
of unnecessary gates or terms in the logical expressions.
This can lead to smaller, faster, and more power-efficient circuit designs.
4. Examples:
A B C F(A, B, C)
0 X 0 0
1 0 1 1
1 1 X 1
In this truth table, the "X" values indicate don't-care conditions. The function
F(A, B, C) is only specified for certain input combinations.
In this logical expression, the term with the "X" represents a don't-care condition.
Depending on the simplification context, it can be treated as either 0 or 1.
5. Minimization:
Don't-care conditions play a crucial role in the minimization of logical expressions using
methods like the Quine-McCluskey algorithm or Karnaugh maps.
They help identify groups of terms that can be combined or omitted to simplify the
expression.
Incompletely specified functions are a valuable tool in digital logic design because they allow for
more efficient and flexible circuit implementations. By taking advantage of don't-care conditions,
designers can create simpler and more cost-effective solutions while still meeting the required
logic specifications.
VEM method
Tabulation method
The quine-McCluskey method also called the tabulation method is a very useful and
convenient method for simplification of the Boolean functions for a large number of variables
(greater than 4). This method is useful over K-map when the number of variables is larger for
which K-map formation is difficult. This method uses prime implicants for simplification.
In this method, we construct multiple tables according to the question and at the last, we make
a prime implicant table which is used to obtain essential prime implicants which are present in
the simplified boolean expression.
Solution: Convert the given minterms into their binary representation and arrange them
according to the number of ones present in the binary representation.
TABLE 1
Group Minterm A B C D
0 0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
1
4 0 1 0 0
8 1 0 0 0
6 0 1 1 0
2
9 1 0 0 1
11 1 0 1 1
3
13 1 1 0 1
4 15 1 1 1 1
As 0 has no 1 in its representation it is kept in one group(0). Similarly, 1 2 4, and 8 contain one
1 in their representation so it is kept in the next group(1). 6 and 9 in the next group(2), 11, and
13 in the next group(3), 15 in the last group(4).
Now, for table-2 take minterms from successive groups(simultaneous group only) which have
an only a 1-bit difference in their representation and form their pair by merging them and
making a group of the pairs which are from the same groups that are merged (for example 0 is
from group 0 and 1 is from group 1 so it is added to the group 0. 0 belongs to group 0 in table 1
and 2 belongs to group 1 in table 1 so its kept in the same group in table 2. Similarly, make all
the possible pairs with the help of the above table and mark – where there is a bit difference.
TABLE-2
Group Pair A B C D
(0,1) 0 0 0 –
(0,2) 0 0 – 0
0
(0,4) 0 – 0 0
(0,8) – 0 0 0
(1,9) – 0 0 1
(2,6) 0 – 1 0
1
(4,6) 0 1 – 0
(8,9) 1 0 0 –
(9,11) 1 0 – 1
2
(9,13) 1 – 0 1
(11,15) 1 – 1 1
3
(13,15) 1 1 – 1
For table 3 repeat the same step by taking pairs of successive groups merging them where
there is only a 1-bit difference and keeping them in groups according to the groups from where
they are merged and placed – in bit difference.
TABLE-3
Group Quad A B C D
(0,1,8,9) – 0 0 –
0
(0,2,4,6) 0 – – 0
1 (9,11,13,15) 1 – – 1
After table 3 the process is stopped as there is no 1-bit difference in the remaining group
minterms in the simultaneous groups of table 3.
Now, the remaining quads present in table 3 represent the prime implicants for the given
boolean function. So, we construct prime implicants table which contains the obtained prime
implicants as rows and the given minterms as columns. Place 1 in the corresponding place
which the minterm can represent. Add the minterm to the simplified boolean expression if the
given minterm is only covered by this prime implicant.
Minterms ⇢
0 1 2 4 6 8 9 11 13 15
Prime Implicants ⇣
--- ---
B’C’ (0,1,8,9) 1 1 1 1
A’D'(0,2,4,6) 1 1 1 1
AD(9,11,13,15) 1 1 1 1
B’C’ is in simplified function as minterm 1 is only covered by B’C’. Similarly, minterms 2,4,6 are
only covered by A’D’ and minterms 11,13,15 are only covered by AD.
Solution: Convert the given minterms in their binary representation and arrange them
according to number of one’s present in the binary representation.
TABLE-1
Group Minterms A B C D E F G
0 20 0 0 1 0 1 0 0
28 0 0 1 1 1 0 0
1
52 0 1 1 0 1 0 0
2 60 0 1 1 1 1 0 0
TABLE-2
Group Pair A B C D E F G
(20,28) 0 0 1 – 1 0 0
0
(20,52) 0 – 1 0 1 0 0
(28,60) 0 – 1 1 1 0 0
1
(52,60) 0 1 1 – 1 0 0
For table 3 repeat the same step by taking pairs of successive groups merging them where
there is only a 1-bit difference and keeping them in groups according to the groups from where
they are merged and placed – in bit difference.
TABLE-3
Group Quad A B C D E F G
0 (20,28,52,60) 0 – 1 – 1 0 0
After table 3 the process is stopped as there is no 1-bit difference in the remaining group
minterms in the simultaneous groups of table 3.
Now, the remaining quads present in table 3 represent the prime implicants for the given
boolean function. So, we construct prime implicants table which contains the obtained prime
implicants as rows and the given minterms as columns. Place 1 in the corresponding place
which the minterm can represent. Add the minterm to the simplified boolean expression if the
given minterm is only covered by this prime implicant.
Minterms ⇢
20 28 52 60
Prime Implicants ⇣
--- ---
A’CEF’G'(20,28,52,60) 1 1 1 1
A’CEF’G’ is in simplified function as it is the only prime implicant that covers all minterms.
1. Truth Table: Begin with the truth table that represents the Boolean function you want to
simplify.
2. Identify Minterms or Maxterms: Depending on whether you are working with SOP or
POS expressions, identify the minterms (for SOP) or maxterms (for POS) for which the
function evaluates to 1.
3. Grouping: Group adjacent minterms (for SOP) or maxterms (for POS) that differ by only
one variable. These groupings create potential prime implicants.
4. Prime Implicants: Identify the groupings that cannot be further combined with adjacent
groups. These uncombined groups represent prime implicants.
5. List Prime Implicants: Make a list of all the identified prime implicants.
Prime implicants are important because they are the essential building blocks for simplifying
Boolean functions. They represent combinations of variables that are necessary to cover all 1s
in the truth table. Once you've determined the prime implicants, you can proceed to select
essential prime implicants and use them to construct the simplified expression. The selection of
prime implicants is a critical step in minimizing Boolean functions and optimizing digital circuits.