Digital Logic Design I
Gate-Level Minimization
March 24, 2024 1
3-1 Introduction
Gate-level minimization refers to the design task of
finding an optimal gate-level implementation of Boolean
functions describing a digital circuit.
Formation of standard form of expression with minimum
number of literals
March 24, 2024
2
3-2 The Map Method
The complexity of the digital logic circuit depends on
The complexity of the algebraic expression
Logic minimization
Algebraic approaches: lack specific rules
The Karnaugh map or K map
A simple straight forward procedure
A pictorial form of a truth table
Applicable for the logic expression with variables < 7
A diagram made up of squares
Each square represents one minterm
March 24, 2024
3
Review of Boolean Function
Boolean function
Sum of minterms
Sum of products (or product of sum) in the simplest
form
A minimum number of terms
A minimum number of literals
The simplified expression may not be unique
It means one function may be represented by more
than one expression
March 24, 2024
4
Two-Variable Map
Figure 3.1 Two-variable Map
x y
0 0 m0 = x’.y’
0 1 m1= x’.y
1 0 m2=x.y’
1 1 m3= x.y
Figure 3.2 Representation of functions in the map
March 24, 2024
5
A Three-variable Map
A three-variable map
Eight minterms
The Gray code sequence
Any two adjacent squares in the map differ by only on variable
Primed (complemented) in one square and
unprimed(uncomplemented) in the other
e.g., m5 and m7 can be simplified
m5+ m7 = xy'z + xyz = xz (y'+y) = xz
March 24, 2024
Figure 3.3 Three-variable Map
6
A Three-variable Map
m0 and m2 (m4 and m6) are adjacent
m0+ m2 = x'y'z' + x'yz' = x'z' (y'+y) = x'z'
m4+ m6 = xy'z' + xyz' = xz' (y'+y) = xz'
March 24, 2024
7
Example 3.1
Example 3.1: simplify the Boolean function F(x, y, z) =
S(2, 3, 4, 5)
F(x, y, z) = S(2, 3, 4, 5) = x'y + xy'
Figure 3.4 Map for Example 3.1, F(x, y, z) = Σ(2, 3, 4, 5) = x'y + xy'
March 24, 2024
8
Example 3.2
Example 3.2: simplify F(x, y, z) = S(3, 4, 6, 7)
F(x, y, z) = S(3, 4, 6, 7) = yz+ xz'
Figure 3.5 Map for Example 3-2; F(x, y, z) = Σ(3, 4, 6, 7) = yz + xz'
March 24, 2024
9
Four adjacent Squares
Consider four adjacent squares
2, 4, and 8 squares
m0+m2+m4+m6 = x'y'z'+x'yz'+xy'z'+xyz' = x'z'(y'+y) +xz'(y'+y) =
x'z' + xz‘ = z'
m1+m3+m5+m7 = x'y'z+x'yz+xy'z+xyz =x'z(y'+y) + xz(y'+y) =x'z +
xz = z
March 24, 2024
Figure 3.3 Three-variable Map
10
Four adjacent Squares
Consider four adjacent squares
2, 4, and 8 squares
m0+m2+m4+m6 = x'y'z'+x'yz'+xy'z'+xyz' = x'z'(y'+y) +xz'(y'+y) =
x'z' + xz‘ = z'
m1+m3+m5+m7 = x'y'z+x'yz+xy'z+xyz =x'z(y'+y) + xz(y'+y) =x'z +
xz = z
yz 00 01 11 10
x 0 m0 m1 m3 m2
x 1 m4 m5 m7 m6
March 24, 2024
Figure 3.3 Three-variable Map
11
Example 3.3
Example 3.3: simplify F(x, y, z) = S(0, 2, 4, 5, 6)
F(x, y, z) = S(0, 2, 4, 5, 6) = z'+ xy'
Figure 3.6 Map for Example 3-3, F(x, y, z) = Σ(0, 2, 4, 5, 6) = z' +xy'
March 24, 2024
12
Example 3.4
Example 3.4: let F = A'C + A'B + AB'C + BC
a) Express it in sum of minterms.
b) Find the minimal sum of products expression.
Ans:
F(A, B, C) = S(1, 2, 3, 5, 7) = C + A'B
Figure 3.7 Map for Example 3.4, A'C + A'B + AB'C + BC = C + A'B
March 24, 2024
13
3.3 Four-Variable Map
The map 1001 = m8
16 minterms
Combinations of 2, 4, 8, and 16 adjacent squares
March 24, 2024 Figure 3.8 Four-variable Map 14
Example 3.5
Example 3.5: simplify F(w, x, y, z) = S(0, 1, 2, 4, 5, 6, 8,
9, 12, 13, 14)
F = y'+w'z'+xz'
Figure 3.9 Map for Example 3-5; F(w, x, y, z) = Σ(0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14) = y' + w' z' +xz'
March 24, 2024
15
Example 3.6
Example 3-6: simplify F = ABC (D+D’)+ (A+A’)BCD +
ABCD + ABC’(D+D’) = B’.C’ + B’.D’+A’.C.D’
(m0,m2,m8,m10), (m2,m6)
Figure 3.9 Map for Example 3-6; ABC + BCD + ABCD
+ ABC= BD + BC +ACD
March 24, 2024
16
Prime Implicants(P.I) and procedures
All the minterms with 1’s are covered.
Minimize the number of terms and number of variables.
Simplified expression may not be unique
A prime implicant: a product term obtained by combining the
maximum possible number of adjacent squares (combining all
possible maximum numbers of squares).
Essential P.I.: a minterm is covered by only one prime implicant.
The essential P.I. must be included.
A single one is a prime implicant if it is not adjacent to any one.
Two adjacent 1’s form a prime implicant provided they are not
within a group of four adjacent 1’s and so on.
Essential prime implicant is found by looking at each square with a
1 and checking the number of prime implicants that cover it.
The prime implicant is essential if it is the only prime implicant that
covers the minterm
March 24, 2024
17
Algorithym of K map expression
Step 1: Identify the ones that can not be combined with any other
ones. Encircle them. They are essential prime implicants.
Step 2: Identify the ones that can be combined in a group of two
adjacent ones in only one way. Encircle such groups of ones.
Step 3: Identify the ones that can be combined in a group of four
adjacent ones in only one way. Encircle such groups of ones.
Step 4: Identify the ones that can be combined in a group of eight
adjacent ones in only one way. Encircle such groups of ones.
Step 5After identifying the essential groups of 2, 4 and 8 ones, if
there are still some ones that not have been encircled, then these
are to be combined with each other or other already encircled ones.
But leftover ones should be encircled in a largest possible groups
and in as few groupings as possible.
Form the logic expression
March 24, 2024
18
Prime Implicants
Consider F(A, B, C, D) = Σ(0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15)
The simplified expression may not be unique
F = BD+B'D'+CD+AD = BD+B'D'+CD+AB'
= BD+B'D'+B'C+AD = BD+B'D'+B'C+AB'
March 24, 2024 Figure 3.11 Simplification Using Prime Implicants 19
3.4 Five-Variable Map=(ABCDE)
Map for more than four variables becomes complicated
Five-variable map: two four-variable map (one on the top of the
other). 2^5 = 32
16 squares, A = 0, 16 squares A = 1, m15 = 01111
m16 = 10000
March 24, 2024 Figure 3.12 Five-variable Map 20
Example 3.7 (cont.)
Another Map for Example 3-7 00000 10000
m0 and m16 are adjacent
March 24, 2024 Figure 3.13 Map for Example 3.7, F = A'B'E'+BD'E+ACE 21
Table 3.1 shows the relationship between the number
of adjacent squares and the number of literals in the
term.
March 24, 2024
22
Example 3.7
Example 3.7: simplify F = S(0, 2, 4, 6, 9, 13, 21, 23, 25,
29, 31), m0 to m15, have A = 0, m16 to m31 , A = 1
(m0,m2,m4,m6), (m9,m13,m29,m25), (21,23,29,31)
= A’.B’.E’ +B.D’E+ACE
F = A'B'E'+BD'E+ACE
March 24, 2024
23
Example 3.7 (cont.)
Another Map for Example 3-7
March 24, 2024 Figure 3.13 Map for Example 3.7, F = A'B'E'+BD'E+ACE 24
Is it possible to get POS form or
maxterm form using K Map
March 24, 2024
25
let F(A, B, C) = S(1, 2, 3, 5, 7), it means for m0, m4 and
m6, F = 0 , F’ = Complement of F = Σ(0,4,6)
A\BC 00 01 11 10
0 0 1 1 1
1 0 1 1 0
F’= B’.C’ + ABC’
(F’)’ = F = (B+C)(A’+B’+C)
F= C + A'B
F': sum of products → F: product of sums
March 24, 2024
26
Is it possible to get POS form or
maxterm form using K Map
March 24, 2024
27
3-5 Product of Sums Simplification
Approach #1
Obtain and simplify F' in the form of sum of products
Apply DeMorgan's theorem F = (F')'
F': sum of products → F: product of sums
Approach #2: Form K map
Obtain expression in POS considering squares with zero values
Write each term in sum form
Combinations of maxterms (it was minterms)
M0M1 = (A+B+C+D)(A+B+C+D') = (A+B+C)+(DD') = A+B+C
CD
AB 00 01 11 10
00 M0 M1 M3 M2
01 M4 M5 M7 M6
11 M12 M13 M15 M14
10 M8 M9 M11 M10
March 24, 2024
28
Example 3.8
Example 3.8: simplify F = S(0, 1, 2, 5, 8, 9, 10) into (a)
sum-of-products form, and (b) product-of-sums form:
F’ = (CD+ BD’+AB), (F’)’ = (CD+BD’+AB)’ = (C’+D’)(B’+D)(A’+B’)
a) F(A, B, C, D)= S(0, 1, 2, 5, 8,
9, 10) = B'D'+B'C'+A'C'D
SOP
a) F' = AB+CD+BD'
» Apply DeMorgan's theorem;
F=(A'+B')(C'+D')(B'+D)
» Or think in terms of maxterms
» POS
Figure 3.14 Map for Example 3.8, F(A, B, C, D)= S(0, 1,
2, 5, 8, 9, 10) = B'D'+B'C'+A'C'D
March 24, 2024
29
Hardware implementation of the SOP/POS
Gate implementation of the function of Example 3.8
In SOP, Product term and OR operation
SOP/POS can be implemented two levels of logi gates
Sum-of products form Product-of sums form
Figure 3.15 Gate Implementation of the Function of Example 3.8
March 24, 2024
30
Sum-of-Minterm Procedure
Consider the function defined in Table 3.2.
In sum-of-minterm:
F ( x, y, z ) = (1,3,4,6)
In sum-of-maxterm:
F ( x, y, z ) = (0,2,5,7)
Taking the complement of F
F ( x, y, z ) = ( x z)( x z )
March 24, 2024
31
Sum-of-Minterm Procedure
Consider the function defined in Table 3.2.
Combine the 1’s: F ( x, y, z ) = (1,3,4,6)
F ( x, y , z ) = xz xz
Combine the 0’s : 0
F'( x, y, z ) = xz xz
F = (x+z)(x’+z’)
(F’)’ = (xz + x’z’)’ F ( x, y, z ) = (0,2,5,7)
F = (x’+z’)(x+z)
Figure 3.16 Map for the function of Table 3.2
March 24, 2024
32
Is it possible to further simply the function
Yes by Don’t care condition
Don’t care condition is represented as d( )
March 24, 2024
33
3-6 Don't-Care Conditions
The value of a function is not specified for certain
combinations of variables
For BCD code; binary combinations from 1010-1111: don't care
The don't-care conditions can be utilized in logic for
further minimization of the logic circuit
In K map, don’t care condition is represented by x
symbol
X can be treated as 1 for SOP form of equation
X can be treated as 0 for POS form of equation
X terms will be considered for grouping adjacent squares
provided it simplifies the logic expression
In a given problem, don’t care terms are represented by d(x,y,z)
March 24, 2024
34
3-6 Don't-Care Conditions
Example 3.9:
Simplify F(w, x, y, z) = S(1, 3, 7, 11, 15) which has the
don't-care conditions d(w, x, y, z) = S(0, 2, 5).
K(w,x,y,z) = π(-----) , d(w,x,y,z) = π(-----)
Sol. In this problem, F function is essential minterms
that must be groped
d is the don’t care conditioned will be used provided
logic expression can be further simplified.
March 24, 2024
35
Example 3.9 (cont.)
F = S(0, 1, 3, 7, 11, 15) ; logic expression using K map is F =
y.z + w‘.x'; F = w’.z + yz
Find POS form of expression.
F = S(1, 3, 5, 7, 11, 15), logic expression using K map
F = yz + w'z
Either expression is acceptable
Figure 3.17 Example with don't-care Conditions
March 24, 2024
36
3-7 NAND and NOR Implementation
NAND gate is a universal gate
Can implement any digital system
Y=X
Figure 3.18 Logic Operations with NAND Gates
March 24, 2024
37
NAND Gate
Two graphic symbols for a NAND gate
Figure 3.19 Two Graphic Symbols for NAND Gate
March 24, 2024
38
Two-level Implementation
Two-level logic implementation
NAND-NAND = sum of products
Example: F = AB+CD
(F’)’ = F = ((AB + CD)’)’ = ((AB)’.(CD)’)’
F = ((AB)' (CD)' )' =AB+CD
March 24, 2024 Figure 3.20 Three ways to implement F = AB + CD 39
Example 3.10
Example 3-10: implement F(x, y, z) =
F ( x, y, z ) = (1,2,3,4,5,7) F ( x, y, z ) = xy xy z
March 24, 2024 Figure 3.21 Solution to Example 3-10 40
Procedure with Two Levels NAND
The procedure
Simplified in the form of sum of products;
A NAND gate for each product term; the inputs to
each NAND gate are the literals of the term (the first
level);
A single NAND gate for the second sum term (the
second level);
A term with a single literal requires an inverter in the
first level.
March 24, 2024
41
Multilevel NAND Circuits
Boolean function implementation
AND-OR logic → NAND-NAND logic
AND → AND + inverter
OR: inverter + OR = NAND
For every bubble that is not compensated by another small circle
along the same line, insert an inverter.
March 24, 2024 Figure 3.22 Implementing F = A(CD + B) + BC 42
NAND Implementation
March 24, 2024 Figure 3.23 Implementing F = (AB +AB)(C+ D) 43
NOR Implementation
NOR function is the dual of NAND function.
The NOR gate is also universal.
March 24, 2024 Figure 3.24 Logic Operation with NOR Gates
44
Two Graphic Symbols for a NOR Gate
Figure 3.25 Two Graphic Symbols for NOR Gate
Example: F = (A + B)(C + D)E POS form of expression
implementation
March 24, 2024 Figure 3.26 Implementing F = (A + B)(C + D)E 45
Example
Example: F = (AB +AB)(C + D)
Figure 3.27 Implementing F = (AB +AB)(C + D) with NOR gates
March 24, 2024
46
3-8 Other Two-level Implementations (
Wired logic
A wire connection between the outputs of two gates
Open-collector TTL NAND gates: wired-AND logic
The NOR output of ECL gates: wired-OR logic
F = ( AB ) (CD ) = ( AB CD ) = ( A B)(C D) AND-OR-INVERT function
F = ( A B ) (C D ) = [( A B )(C D )] OR-AND-INVERT function
March 24, 2024
Figure 3.28 Wired Logic
47
Non-degenerate Forms
16 possible combinations of two-level forms
Eight of them: degenerate forms = a single operation
AND-AND, AND-NAND, OR-OR, OR-NOR, NAND-OR, NAND-
NOR, NOR-AND, NOR-NAND.
The eight non-degenerate forms
AND-OR, OR-AND, NAND-NAND, NOR-NOR, NOR-OR, NAND-
AND, OR-NAND, AND-NOR.
AND-OR and NAND-NAND = sum of products.
OR-AND and NOR-NOR = product of sums.
NOR-OR, NAND-AND, OR-NAND, AND-NOR = ?
March 24, 2024
48
AND-OR-Invert Implementation
AND-OR-INVERT (AOI) Implementation
NAND-AND = AND-NOR = AOI
F = (AB+CD+E)'
F' = AB+CD+E (sum of products)
(X’.y’.z’) = (x + y + z)’ =
Figure 3.29 AND-OR-INVERT circuits, F = (AB +CD +E)
March 24, 2024
49
OR-AND-Invert Implementation
OR-AND-INVERT (OAI) Implementation
OR-NAND = NOR-OR = OAI
F = ((A+B)(C+D)E)'
F' = (A+B)(C+D)E (product of sums)
Figure 3.30 OR-AND-INVERT circuits, F = ((A+B)(C+D)E)'
March 24, 2024
50
Tabular Summary and Examples
Example 3-11: F = x'y'z'+xyz'
F' = x'y+xy'+z (F': sum of products)
F = (x'y+xy'+z)' (F: AOI implementation)
F = x'y'z' + xyz' (F: sum of products)
F' = (x+y+z)(x'+y'+z) (F': product of sums)
F = ((x+y+z)(x'+y'+z))' (F: OAI)
F = Z’(x’y’ + xy)
F’ = Z + (x+y)(x’+y’) = z + xx’ + xy’ + yx’ + yy’
= z + xy’ + yx’
March 24, 2024
51
Tabular Summary and Examples
March 24, 2024
52
March 24, 2024 Figure 3.31 Other Two-level Implementations 53
3-9 Exclusive-OR Function
Exclusive-OR (XOR)
xy = xy'+x'y
Exclusive-NOR (XNOR)
(xy)' = xy + x'y'
Some identities
x0 = x , = x’0 + 0’.x = 0 + 1.x = x
x1 = x‘ = x’1 + x.1’ = x’ + x.0 = x’
xx = 0
xx' = 1
xy' = (xy)'
x'y = (xy)'
Commutative and associative
AB = BA
(AB) C = A (BC) = ABC
March 24, 2024
54
Exclusive-OR Implementations
Implementations
(x'+y')x + (x'+y')y = xy'+x'y = xy
March 24, 2024 Figure 3.32 Exclusive-OR Implementations 55
Odd Function
ABC = (AB'+A'B)C' +(AB+A'B')C = AB'C'+A'BC'+ABC+A'B'C
= S(1, 2, 4, 7)
XOR is a odd function → an odd number of 1's, then F = 1.
XNOR is a even function → an even number of 1's, then F = 1.
Figure 3.33 Map for a Three-variable Exclusive-OR Function
March 24, 2024
56
XOR and XNOR
Logic diagram of odd and even functions
Figure 3.34 Logic Diagram of Odd and Even Functions
March 24, 2024
57
Four-variable Exclusive-OR function
Four-variable Exclusive-OR function
ABCD = (AB'+A'B)(CD'+C'D) =
(AB'+A'B)(CD+C'D')+(AB+A'B')(CD'+C'D)
Figure 3.35 Map for a Four-variable Exclusive-OR Function
March 24, 2024
58
Parity Generation and Checking
Parity Generation and Checking
A parity bit: P = xyz
Parity check: C = xyzP
C=1: one bit error or an odd number of data bit error
C=0: correct or an even # of data bit error
Figure 3.36 Logic Diagram of a Parity Generator and Checker
March 24, 2024
59
Parity Generation and Checking
March 24, 2024
60
Parity Generation and Checking
March 24, 2024
61
3.10 Hardware Description Language
(HDL)
Describe the design of digital systems in a textual form
Hardware structure
Function/behavior
Timing
VHDL and Verilog HDL
March 24, 2024
62
A Top-Down Design Flow
Specification
RTL design and
Simulation
Logic Synthesis
Gate Level Simulation
ASIC Layout FPGA Implementation
March 24, 2024
63
Module Declaration
Examples of keywords:
module, end-module, input, output, wire, and, or,
and not
Figure 3.37 Circuit to demonstrate an HDL
March 24, 2024
64
HDL Example 3.1
HDL description for circuit shown in Fig. 3.37
March 24, 2024
65
Gate Displays
Example: timescale directive
‘timescale 1 ns/100ps
March 24, 2024
66
HDL Example 3.2
Gate-level description with propagation delays for
circuit shown in Fig. 3.37
March 24, 2024
67
HDL Example 3.3
Test bench for simulating the circuit with delay
March 24, 2024
68
Simulation output for HDL
Example 3.3
March 24, 2024
69
Boolean Expression
Boolean expression for the circuit of Fig. 3.37
Boolean expression:
HDL Example 3.4
March 24, 2024
70
HDL Example 3.4
March 24, 2024
71
User-Defined Primitives
General rules:
Declaration:
Implementing the hardware in Fig. 3.39
March 24, 2024
72
HDL Example 3.5
March 24, 2024
73
HDL Example 3.5 Continued)
March 24, 2024
74
Figure 3.39 Schematic for circuit with_UDP_02467
March 24, 2024
75