# Karnaugh Maps

Objectives
This section presents a technique for simplifying logical expressions. It will: Define Karnaugh and establish the correspondence between Karnaugh maps and truth tables and logical expressions. Show how to use Karnaugh maps to derive minimal sumof-products and product-of-sums expressions. Introduce the concept of "don't care" entries and show how to extend Karnaugh map techniques to include maps with don't care entries.

Sections 2.6 and 2.7 from the text

Elec 326

1

Karnaugh Maps

Karnaugh Map Definitions A Karnaugh map is a two-dimensional truth-table. Unlike ordinary (i.e., one-dimensional) truth tables, however, certain logical network simplifications can be easily recognized from a Karnaugh map.
A B Z 0 0 0 0 1 1 1 0 1 1 1 0 Truth Table Z 0 B 1 A 1 0 Z A 0 B 0 0 1 1 1 1 0

Type 1 Map

Type 2 Map

Two-Variable Maps
AB C Z 0 00 0 0 01 1 0 10 1 0 11 0 1 00 1 1 01 0 1 10 0 1 11 1 Truth Table

Z 0 1 0 B 1

A 1 0 1 0 C

Z A B,C 0 00 0 01 11 10 1 0 1

1 1 0 1 0

Type 1 Map

Type 2 Map

Three-Variable Maps
Elec 326 2 Karnaugh Maps

1

B C.D 00 01 11 10 00 0 0 1 0 01 0 11 1 10 0 1 1 1 1 1 1 1 1 1 B Type 1 Map Type 2 Map Four-Variable Maps Truth Table Elec 326 3 Karnaugh Maps The interpretation of a type 1 map is that the rows or columns labeled with a variable correspond to region of the map where that variable has value 1. A C B A=1 region D C B B=1 region A D C B C=1 region A D C B D=1 region A D Numbering of Karnaugh Map Squares.C 0 00 0 01 11 10 1 3 2 1 4 5 7 6 Z A.D 00 01 11 10 00 0 4 12 8 01 1 11 3 10 2 5 7 13 9 15 11 6 14 10 Elec 326 4 Karnaugh Maps 2 .B C. Z A 0 B 0 0 1 1 1 2 3 Z A B.A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Z 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 Z 0 0 C 1 0 0 1 1 1 1 1 1 1 A 0 1 1 1 D Z A.

. The labels for the type 1 map must be chosen to guarantee this property. Elec 326 6 Karnaugh Maps 3 . Z = (A•B)⊕(C+D) A Z = A•B•(C+D)' + (A•B)'•(C+D) = A•B•C'•D' + (A'+B')•(C+D) = A•B•C'•D' + A'•C + A'•D + B'•C + B'•D 1 B 0 0 1 1 1 1 C 0 0 1 1 0 D 1 0 1 1 Elec 326 5 Karnaugh Maps Minimal Sum-Of-Products Expressions Ordering of Squares The important feature of the ordering of squares is that the squares are numbered so that the binary representations for the numbers of two adjacent squares differ in exactly one position.Exercise: Plot the following expression on a Karnaugh map. Note that squares at opposite ends of the same row or column also have this property (i. This is due to the use of a Gray code (one in which adjacent numbers differ in only one position) to label the edges of a type 2 map. their associated numbers differ in exactly one position).e.

this reduction technique can also be applied to groupings of 4.Merging Adjacent Product Terms Z Z 0 0 C 0 0 0 1 0 0 B 0 1 0 0 A 0 0 0 0 D = m5 + m13 = A'•B•C'•D + A•B•C'•D = (A'+A)•B•C'•D = 1•B•C'•D = B•C'•D A' B C' D A B C' D Z B C' D Z Example Z A' • C • D C A • B • C' A 0 0 1 0 0 0 1 0 B 1 1 0 0 0 0 0 0 D Elec 326 7 Karnaugh Maps For k-variable maps..0 positions.(k-3)...2k rectangles all of whose binary numbers agree in (k-2).8..16.. Z 0 0 C 0 0 0 1 1 0 B 0 1 1 0 A 0 0 0 0 D Z= = = = = = m5 + m7 + m13 + m15 A'•B•C'•D + A'•B•C•D + A•B•C'•D + A•B•C•D (A'•C' + A'•C + A•C' + A•C) • (B•D) (A'•(C' + C) + A•(C' + C)) • (B•D) (A' + A) • (B•D) B•D Elec 326 8 Karnaugh Maps 4 ..(k4). respectively...

Basic Karnaugh Map Groupings for Three-Variable Maps. Z7 A Z8 A Z9 1 1 C 1 1 D C B Z11 A Z12 1 1 C 1 1 1 D C B B 1 B A 1 1 D C 1 B 1 Z13 1 1 D C 1 B 1 1 D C 1 B A Z14 1 D C B A 1 D 1 1 D A Z10 A Elec 326 10 Karnaugh Maps 5 . Z1 A Z3 1 1 B 1 C B 1 C B A Z5 1 1 1 1 C A Z2 A Z4 A Z6 1 A 1 C 1 B 1 C B 1 1 1 1 C B 1 1 Elec 326 9 Karnaugh Maps Basic Karnaugh Map Groupings for Four-Variable Maps.

If X is a variable that has value 1 in all of the squares in the grouping. There are exactly k-i variables that have constant value for all squares in the grouping. If X is a variable that has value 0 for some squares in the grouping and value 1 for others. Elec 326 12 Karnaugh Maps 6 . Resulting Product Terms: If X is a variable that has value 0 in all of the squares in the grouping. then neither X' nor X are in the product term.Z15 1 1 C 1 1 B Z18 1 1 C B 1 1 1 1 A Z16 A Z17 1 1 1 1 1 B A D C 1 1 1 1 D C 1 1 1 D B A 1 1 D C 1 1 B 1 1 Z19 1 1 1 A 1 D C Z20 1 1 1 1 A 1 1 1 1 B D Elec 326 11 Karnaugh Maps Rules for Grouping: The number of squares in a grouping is 2i for some i such that 1 ≤ i ≤ k. then the literal X' is in the product term. then the literal X is in the product term.

Invalid Karnaugh Map Groupings. An essential prime implicant is one that covers a distiquished 1cell. Z 0 0 C 1 0 1 1 1 1 B 0 1 1 1 A 0 0 0 0 D Z loop 1 1 1 0 1 1 1 B 0 0 1 1 A 1 1 1 1 loop 2 D C 1 0 Violates Rule 1 Violates Rule 2 Elec 326 13 Karnaugh Maps In order to minimize the resulting logical expression. the groupings should be selected as follows: Identify those groupings that are maximal in the sense that they are not contained in any other possible grouping. A distinguished 1-cell is a cell that is covered by only one prime implicant. Examples: Z #1 C #4 1 0 0 1 #2 0 1 1 0 B 14 1 1 1 1 A 1 0 1 1 #3 Karnaugh Maps D Elec 326 7 . The product terms obtained from such groupings are called prime implicants. Use the fewest possible number of maximal groupings needed to cover all of the squares marked with a 1.

Minimal Grouping a. Non-minimal Selection of Prime Implicants c. Non-minimal Product Terms b. Z = B•D+A•B'•C'+A'•B•C'+A'•C•D+A'•B'•D' c. X A Y A 1 B 1 1 0 0 C 1 0 1 1 0 0 D 1 1 0 C 1 1 0 0 B 1 0 1 1 0 0 D 1 0 0 0 1 0 1 0 X = A•B + A'•B'•D' + A'•B'•C + B•C•D' Y = A'•C' + A•C•D' + A•B•C + B•C'•D' Elec 326 16 Karnaugh Maps 8 . W3 = BD+AB+B'C'+A'CD' Elec 326 15 Karnaugh Maps Exercise: Derive minimal sum-of-products logical expressions from the following Karnaugh maps. Z = B•D+A•B'•C'+A'•C'•D'+A'•B'•C W3 1 1 C 0 1 0 1 1 1 B 1 1 1 1 A 1 1 0 0 D C W3 1 1 0 1 0 1 1 1 B 1 1 1 1 A 1 1 0 0 D a. Z = A•B•D+A•B'•C'+A'•B•C'+A'•C•D+A'•B'•D' b.Z #3 1 1 1 1 0 B 0 1 1 0 A 1 1 0 0 #2 Z #4 #3 1 1 1 1 0 B 0 1 1 0 A 1 1 0 0 #2 Z #3 1 1 1 1 0 B 0 1 1 0 A 1 1 0 0 #2 #4 C #5 0 1 1 D C #1 #5 0 1 1 D C #1 #4 0 1 1 D #1 a. W3 = C'D+AC'+BC+A'B'D' b.

Minimal Product-Of-Sums Expressions Merging Adjacent Product Terms. then that variable does not appear in the sum term. Z 1 1 B 0 1 A 1 1 0 1 C A' B' C' A B' C' Z B' C' Z Karnaugh Map OR-AND Networks M3•M7 = (A+B'+C')•(A'+B'+C') = (A•A')+(B'+C') = 0 + (B'+C') = B' + C' Elec 326 17 Karnaugh Maps Rules for Grouping: Same as for sum-of-products. If variable X has value 0 for some squares in the group and value 1 for the others. except that zero's are grouped instead of ones. Resulting Sum Terms: If variable X has value 0 for all squares in the group. Prime Implicate: Maximal grouping of zeros. Elec 326 18 Karnaugh Maps 9 . If variable X has value 1 for all squares in the group. then the literal X is in the sum term. then the literal X' is in the sum term.

Examples: Z B'+C+D A+D' 1 0 C 0 1 0 0 0 1 B 0 1 1 1 A 1 1 1 0 A'+B+C'+D D Z = (A+D')•(B'+C+D)•(A'+B+C'+D) Z1 1 0 C 0 1 0 1 1 0 B 1 1 1 1 A 1 0 1 1 D C Z2 1 0 0 1 0 0 0 0 B 1 0 0 0 A 1 0 0 1 D Z1 = (A+B'+D)•(B+C+D')•(A+B+D') Z2 = D'•(A+B')•(B'+C') Elec 326 19 Karnaugh Maps Comparison of Sum-of-Products and Product-ofSums Expressions. Z1 1 0 C 0 1 0 0 0 0 B 1 0 0 1 A 0 0 1 1 D C Z1 1 0 0 1 0 0 0 0 B 1 0 0 1 A 0 0 1 1 D Z1 = (A+B')•(A+D')•(B'+D')•(A'+B+C) Z1 = (A•B•D') + (A•B'•C) + (A'•B'•D') Elec 326 20 Karnaugh Maps 10 .

Exercise: Derive minimal SOP and POS expressions from the following Karnaugh maps. Z 1 d B d 0 A 1 1 0 0 C B Z 1 1 1 0 A 1 1 0 0 C B Z 1 0 0 0 A 1 1 0 0 C B Z 1 1 0 0 A 1 1 0 0 C Z = B'+A'•C Z = A•B'+B'•C' Z 0 0 C 0 0 0 0 1 1 B d d d d A 1 0 d d C D Z 1 0 1 1 d 0 1 d B Z = B' A d d 0 d 1 0 d 1 D Z = B•C + A•D' Z = (C+D')•(A'+B') Elec 326 22 Karnaugh Maps 11 . X A 1 B 1 1 1 0 0 1 C 0 0 0 1 D 0 C 0 1 1 B 0 0 1 0 0 0 1 0 0 1 D 1 1 1 X 1 1 1 A 1 X = B•D' + A•C' + A•D' + B•C' Y = (B' + D') • (A' + C') Elec 326 21 Karnaugh Maps Don't Care Entries Assignment of Values to Don't Care Entries.

Minterm and Maxterm Lists with Don't Care Entries.d13.d14.B.C(d1.2.4.d12.d11.C(0. ΣA.d10.d12.d15) Elec 326 23 Karnaugh Maps Five.d14.9.B.B.7.d3.d15) ΠA.d3.2.B.6.8.d1.and Six-Variable Maps Five-Variable Maps.4.7) ΣA.1.5) and ΠA. B 8 Z 0 1 D 3 2 4 5 7 6 C B 12 8 13 9 15 11 14 10 E D B 16 20 28 24 17 21 29 25 19 23 31 27 18 22 30 26 C A E 0 1 D 3 2 6 C 7 5 4 12 13 9 E 15 11 14 10 B 16 20 28 24 17 21 29 25 E A D 19 23 31 27 18 22 30 26 C Five-Variable Map Structure Alternate Version of Five-Variable Map Elec 326 24 Karnaugh Maps 12 .3.C(6.5.d13.d11.d10.C(0.

Six-Variable Maps C 12 8 1 5 13 9 F 3 7 15 11 E 2 6 14 10 0 4 C 16 20 28 24 17 21 29 25 F E 19 23 31 27 18 22 30 26 C 48 52 60 56 49 53 61 57 F E 51 55 63 59 50 54 62 58 C 32 36 44 40 33 37 45 41 F E 35 39 47 43 34 38 46 42 D D D D Z 0 1 E 3 2 4 5 7 6 D C 12 8 13 9 15 11 14 10 C F E C 16 20 28 24 17 21 29 25 19 23 31 27 18 22 30 26 D C F 32 36 44 40 33 37 45 41 A E 35 39 47 43 34 38 46 42 D F E 48 52 60 56 49 53 61 57 51 55 63 59 50 54 62 58 D B F A B Alternate Version of Six-Variable Map Six Variable Map Structure Elec 326 25 Karnaugh Maps Examples. Z 1 B' •C' • E' D 0 0 1 0 0 0 0 C 0 1 1 0 B 0 1 1 0 1 0 0 1 0 0 0 0 C A 0 1 1 0 B 0 1 1 0 B•E E Z = B'•C'•E'+B•E Z 0 0 D 1 1 0 1 1 1 C 1 1 1 0 B 1 0 0 0 0 0 0 0 0 1 1 0 C A 1 1 1 1 B 1 0 1 1 E A'B'D + CE + ABD + BD'E' Elec 326 26 Karnaugh Maps 13 .

Z 0 0 D 0 0 0 1 1 0 C 1 1 1 1 B 0 1 1 0 0 0 0 0 0 1 1 0 C A 0 1 1 1 B 0 1 1 1 E Z = (B+C)•(B+E•(A'+D+E)•(A+C+E) Z 0 0 D d d d d d d C 1 1 1 1 B 0 0 1 1 d 0 d 1 d 0 d 1 C A d 1 d 1 B d 0 d 1 E Z = B•C + D Elec 326 27 Karnaugh Maps Timing Hazards Exercise: Draw a timing diagram for the following circuit assuming an equal unit delay for each gate. A B X Y A B X Y Elec 326 28 Karnaugh Maps 14 .

The hazard occurs in making a transition from one square to the other. This can happen anytime there are to adjacent squares on the Karnaugh map that are both 1 and not both covered by a common loop. It happens because one of the AND gates is holding the output 1 before the transition and the other AND gate holds it 1 after the transition. The way to prevent it is to put in an extra product term that is 1 on both sides of the transition. Elec 326 29 Karnaugh Maps There is a simple way to prevent the hazards using Karnaugh maps.Static 1 hazards A=1 S B=1 S P NS Q Z 0 spike. The spike occurs if it is possible for the first to turn off before the second turns on. On the Karnaugh map this is a loop covering the two adjacent one squares. static 1 hazard P NS Q Z Without the delay in the gates. A Z 0 1 0 1 1 0 1 S 0 B The hazard occurs when the output is 1 before and after the transition. the output Z would be constant at 1. The spike is due to the gate delay and the fact that not every path from on input to the output is the same length. Elec 326 30 Karnaugh Maps 15 .

It is not possible to get a 1 spike from a 2-level AND-OR network by changing only one variable. and it is possible for them to both be 1 during the transition The fix is to put in an extra OR gate to hold the output zero during the transition Z 0 0 1 1 1 A 1 0 A S B Z S 0 B Elec 326 32 Karnaugh Maps 16 . static 0 hazard The static 0 hazard is caused by two OR gates where one holds the output zero before the transition and the other after the transition. Its only purpose is to prevent the hazard.The loop added to prevent the hazard is redundant and not needed to realize the logical expression. A S B Z This technique will avoid all static 1 hazards if only one variable is changed at a time. Why? Elec 326 31 Karnaugh Maps Static 0 hazard S A=0 S B=0 P Q Z P NS Q Z 1 spike.

Therefore. Elec 326 33 Karnaugh Maps 17 . they will not be a problem. then we don't care if it has a spike. If the signal Z above is not used during the transition. When a signal is used as the input to a flip-flop. if we can make sure that any spikes occur at some other time.Hazards can frequently be ignored. it is only sampled with the clock makes a transition.