E & C E 2 2 3
Karnaugh Maps (K Maps)
A Karnugh map is a graphical representation of a truth table
The map contains one cell for each possible minterm
adjacent cells differ in only one literal, i.e., x or x
Two variables, F =f(x,y)
y y
y y
0 1 0 1
x x
0 m0 m1 0 xy xy
x 1 m2 m3 x 1 xy xy
Function is plotted by placing 1 in cells corresponding to mint-
erms of function
Example, F = xy
70 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
K Maps with 3 and 4 Variables
3 variables, F = f(x,y,z); 4 variables, F = f(w,x,y,z)
y y
yz yz
00 01 11 10 00 01 11 10
x x
0 m0 m1 m3 m2 0 xyz xyz xyz xyz
x 1 m4 m5 m7 m6 x 1 xyz xyz xyz xyz
z z
y
yz
wx 00 01 11 10
00 m0 m1 m3 m2
01 m4 m5 m7 m6
x
11 m12 m13 m15 m14
w
10 m8 m9 m11 m10
71 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Examples
F = w = x(x+x)(y+y)(z+z) F = xy
yz yz
wx 00 01 11 10 wx 00 01 11 10
00 00
01 01
11 1 1 1 1 11
10 1 1 1 1 10
F = wxz
yz
wx 00 01 11 10
00
01
11
10
72 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
K Map Boolean Funct. Simplification
To write simplified function, find maximum size groups (mini-
mum literals) that cover all 1s in map
8 cells --> single literal
4 cells --> two literals
2 cells --> three literals
1 cell --> four literals
Guidelines for logic synthesis
Fewer groups: fewer AND gates and fewer input to the OR gate
Fewer literals (larger group): fewer inputs to AND gate
Synthesis (design) objectives
Smallest number of logic gates
Number of inputs to logic gate
73 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Example
Consider the following K map
Nothing must be a single cell
Four groups of two cells each
nothing left uncovered F = wxy + wxy + wyz + wyz
yz
The group of 4 (xz) term is not wx 00 01 11 10
needed
00 1
01 1 1 1
11 1 1 1
10 1
74 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Product of Sum Expression
Recall: Let F be the function
F = (all minterms not in F)
F= (all minterms not in F) (de morgans theorem)
Therefore, one can obtain F by F = xz + xy + wyz
yz
grouping all 0s on K map, and then wx 00 01 11 10
taking the complement to obtain
product-of-sum form 00 1 1 0 1
Hence,
F = (w + x)(y + z)(x + z) 01 0 1 0 0
in sum-of-product form
11 0 0 0 0
Should check both, sum of products,
and product of sums 10 1 1 0 1
One is often simpler than the other
F = wx + yz + xz
75 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Plotting Product of Sum
Given, F = (w + x)(x + y + z)( y + z)
F = wx + xyz +yz
yz
wx 00 01 11 10
00
01
11
10
76 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Dont Care (Incompletely Specified)
Conditions
Some times, not all values of a function are defined
Some input conditions will never occur
We dont care what the output is for that input condition
In these cases, we can choose the output to be either 0 or 1,
whichever simplifies the circuit
Example: a circuit is to have an output of 1 if a binary coded
decimal (BCD) digit is a multiple of 3
digit wxyz F
0 0000 0
1 0001 0
77 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
2 0010 0
3 0011 1
4 0100 0
5 0101 0
6 0110 1
7 0111 0
8 1000 0
9 1001 1
1010 - dont care condition
1011 - ,,
1100 - ,,
1101 - ,,
1110 - ,,
1111 - ,,
F= (3,6,9) + d(10,11,12,13,14,15)
78 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Dont Care: Plotting
Dont cares are plotted as X in the K map
Sum of products: treat X as 1 if it allows a larger group
Product of sums: Treat X as 0 of it allows a larger group
F1 = wz + xyz + xyz (sum of products, (a))
F2 = xz + wy + xz (recall F = (all minterms not in F)
F2 = (x + z)(w + y)(x + z)
yz yz
wx 00 01 11 10 wx 00 01 11 10
00 1 00 0 0 0
01 1 01 0 0 0
11 X X X X 11 X X X X
10 1 X X 10 0 X X
(a) (b) 79 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Observation: In general, F1 is not equal to F2 due to different
values chosen for dont care cells
80 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
More Logic Gates
A
Z A Z Z A B Z
A
1 0 0 0
0
B 0 1 0
1 0
1 0 0
NOT gate AND gate 1 1 1
A
Z A Z Z
A A B Z
0 0
B 0 0 1
1 1 0 1 1
NAND gate 1 0 1
Buffer gate
1 1 0
A Z A B Z A Z A B Z
0 0 0
B 0 0 0
0 1 1
B 0 1 1
1 0 1
OR gate 1 0 1
1 1 1 XOR gate 1 1 0
A Z A B Z A Z A B Z
0 0 1
B 0 0 1
0 1 0
B 0 1 0
1 0 0
NOR gate 1 0 0
1 1 0 XNOR gate 1 1 1
81 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
NAND and NOR Implementation
A set of logic gates are functionally complete if any boolean
function can be implemented by just these gates
AND, OR, NOT
AND, NOT
(xy) = x+y ==> OR gate
OR, NOT
NAND
NOR
NAND and NOR gates are easier to implement (smaller area,
less power consumption, faster) than AND and OR gates
82 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Logic Implementation with NAND/NOR
F = (AB) F = A + B = (AB)
A
Z A Z
Given F = xyz + wx =
B B
all implementations represent the AND-Invert Invert-OR gate
same function x
y F = xyz + wx
Function can be implemented with z
NAND gates only
w
Procedure from K map x
x
present the simplified function in sum y F = xyz + wx
of product form (AND-OR) z
w
use De morgans theorem to represent
the function in NAND-NAND form x
x
Similar steps for NOR implementation y F = xyz + wx
z
starting from product of sums form
w
83 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Other Two-Level Implementations
Wired Logic, Transistor-Transistor Logic (TTL)
Wired logic: if outputs of two logic gates are shorted together
TTL style implementation allows wired connection
+5V +5V +5V
R R R
Out
Out Out
AND
logic x y
Input
Inputs
NOT gate NAND gate wired AND gate
Other two level implementations are AND-OR-INVERT and
OR-AND-INVERT
84 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Simplest Two-Level Expression
Some definitions
Implicant: a grouping of one or more K map cells
Prime implicant: an implicant that is not a subset of another
implicant
Essential prime implicant: a prime implicant that covers at
least one minterm not covered by another prime implicant
Example, f(w,x,y,z) = (0,1,2,5,6,7,9,14) + d(13)
yz yz
wx 00 01 11 10 wx 00 01 11 10
00 1 1 1 00 1 1 1
01 1 1 1 01 1 1 1
X 1 X 1
11 11
10 1 10 1
essential prime implicants prime implicants 85 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Essential prime implicants: yz, xyz
Prime implicants: wxy, wxz, wxz, wxy, wyz
minterms covered
0 1 2 5 6 7 9 14
yz (1,5,9,13) *
xyz (6,14) *
wxy (0,1) A
wxz (0,2) B
wxz (5,7) C
wxy (6,7) D
wyz (2,6)
E
86 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
All minterms must be covered
Essential prime imlicants must be included (*)
Different combinations of prime implicants are:
B + C; or B + D; or A + C + E; or A + D + E
B + C or B + D are the simplest, hence the simplest function
implementation is
F = yz + xyz + wxz + wxz or yz + xyz + wxz + wxy
87 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Tabulation (Quine-McCluskey) Method
The map method of simplification is convenient if number of
variables does not exceed beyond 4 or 5
Tabulation method is preferred for a function with large number
of variables
for F = f(w,x,y,z) consider two adjacent minterms
let a = m4 + m5 = wxyz + wxyz = wxy
or = 0100 + 0101 = 010-
similarly, let b = m12 + m13 = wxyz + wxyz = wxy
or = 1100 + 1101 = 110-
similarly, c = m4 + m5 + m12 + m13 = a + b
= wxy + wxy = xy
= 010- + 110- = -10-
88 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Adjacent minterms differ by a single bit in their binary represen-
tation
Tabulation method consists of grouping minterms and systemat-
ically checking for single bit differences
Example, f(w,x,y,z) = (0,3,4,6,7,8,10,11,15) + d(5,9)
Group minterms according to number of 1s in binary represen-
tation
Each element of each section is compared with each element of
the section below it; all reductions are recorded in next column
Mark terms that combine
All unmarked terms are prime implicants
89 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
w x y z
0 0 0 0 0
-- -----------------
4 0 1 0 0
8 1 0 0 0
-- --------------------
3 0 0 1 1
5 0 1 0 1
6 0 1 1 0
9 1 0 0 1
10 1 0 1 0
-- -------------------
7 0 1 1 1
11 1 0 1 1
-- -----------------
15 1 1 1 1
90 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
0 0,4 (4) 4,5,6,7 (1,2)
---- 0,8 (8) 8,9,10,11 (1,2)
4 ------------ ----------------------
8 4,5 (1) 3,7,11,15 (4,8)
---- 4,6 (2)
3 8,9 (1)
5 8,10 (2)
6 -----------
9 3,7 (4)
10 3,11 (8)
---- 5,7 (2)
7 6,7 (1)
11 9,11 (2)
--- 10,11 (1)
15 ----------
7,15 (8)
11,15 (4)
91 of 92
Department of Electrical & Computer Engineering, University of Waterloo
E & C E 2 2 3
Prime minterms covered
implicants 0 3 4 6 7 8 10 11 15
0,4
0,8
4,5,6,7
8,9,10,11
3,7,11,15
F(w,x,y,z) = 0,4 + 4,5,6,7 + 8,9,10,11 + 3,7,11,15
0-00 + 01-- + 10-- + --11
wyz + wx + wx + yz
or F(w,x,y,z) = 0,8 + 4,5,6,7 + 8,9,10,11 + 3,7,11,15
-000 + 01-- + 10-- + --11
xyz + wx + wx + yz
92 of 92
Department of Electrical & Computer Engineering, University of Waterloo