Download presentation
1
CT455: Computer Organization K-Map
2
Lecture 5: Karnaugh Maps
Function Simplification Algebraic Simplification Half Adder Introduction to K-maps Venn Diagrams 2-variable K-maps 3-variable K-maps 4-variable K-maps 5-variable and larger K-maps
3
Lecture 5: Karnaugh Maps
Simplification using K-maps Converting to Minterms Form Simplest SOP Expressions Getting POS Expressions Don’t-care Conditions Review Examples
4
Function Simplification
Why simplify? Simpler expression uses less logic gates. Thus: cheaper, less power, faster (sometimes). Simplification techniques: Algebraic Simplification. simplify symbolically using theorems/postulates. requires skill but extremely open-ended. Karnaugh Maps. diagrammatic technique using ‘Venn-like diagram’. easy for humans (pattern-matching skills). simplified standard forms. limited to not more than 6 variables.
5
Algebraic Simplification
Algebraic simplification aims to minimise (i) number of literals, and (ii) number of terms But sometimes conflicting. Let’s aim at reducing the number of literals.
6
Algebraic Simplification
Example: (x+y).(x+y').(x'+z) (6 literals) = (x.x+x.y'+x.y+y.y').(x'+z) (assoc.) = (x+x.(y'+y)+0).(x'+z) (idemp.,assoc., compl.) = (x+x.(1)+0).(x'+z) (complement) = (x+x+0).(x'+z) (identity 1) = (x).(x'+z) (idemp, identity 0) = (x.x'+x.z) (assoc.) = (0+x.z) (complement) = x.z (identity 0) Number of literals reduced from 6 to 2.
7
Minimum SOP and POS Representations
The minimum sum of products (MSOP) of a function, f, is a SOP representation of f that contains the fewest number of product terms and fewest number of literals of any SOP representation of f. Example -- f(a,b,c,d) = m(3,7,11,12,13,14,15) = ab + acd + acd = ab + cd The minimum product of sums (MPOS) of a function, f, is a POS representation of f that contains the fewest number of sum terms and the fewest number of literals of any POS representation of f. Example -- f(a,b,c,d) = M(0,1,2,4,5,6,8,9,10) = (a + c)(a + d)(a + b + d)(b + c + d) = (a +c)(a + d)(b + c)(b + d) CS1103-5
8
Algebraic Simplification
Find minimal SOP and POS expressions of f(x,y,z) = x'.y.(z + y'.x) + y'.z x'.y.(z+y'.x) + y'.z = x'.y.z + x'.y.y'.x + y'.z (distributivity) = x'.y.z y'.z (complement, null element 0) = x'.y.z + y'.z (identity 0) = x'.z + y’.z (absorption) = (x' + y').z (distributivity) Minimal SOP of f = x'.z + y'.z (2 2-input AND gates and 1 2-input OR gate) Minimal POS of f = (x' + y').z (1 2-input OR gate and 1 2-input AND gate)
9
Algebraic Simplification
Find minimal SOP expression of f(a,b,c,d) = a.b.c + a.b.d + a'.b.c' + c.d + b.d' a.b.c + a.b.d + a'.b.c' + c.d + b.d' = a.b.c + a.b + a'.b.c' + c.d + b.d' (absorption) = a.b.c + a.b + b.c' + c.d + b.d' (absorption) = a.b + b.c' + c.d + b.d' (absorption) = a.b + c.d + b.(c' + d') (distributivity) = a.b + c.d + b.(c.d)' (DeMorgan) = a.b + c.d + b (absorption) = b + c.d (absorption) Number of literals reduced form 13 to 3.
10
Algebraic Simplification
Difficulty – needs good algebraic manipulation skills. Advantage – very open-ended (to your desired form!)
11
Half Adder Half-Adder is a circuit which adds two single bits (called X,Y) together, to produce a result of two bits (called C, S). A black-box representation of this circuit is: Truth table representation is: Half adder X Y (X+Y) S C
12
Half Adder In sum-of-minterms forms: C = X.Y S = X'.Y + X.Y'
Algebraic simplification could simplify S to: = XY Giving: X Y S C
13
Introduction to K-maps
Systematic method to obtain simplified sum-of-products (SOPs) Boolean expressions. Objective: Fewest possible terms/literals. Diagrammatic technique based on a special form of Venn diagram. Advantage: Easy with visual aid. Disadvantage: Limited to 5 or 6 variables.
14
Figure 3.1 Venn diagram and equivalent K-map for two variables
CS1103-5
15
Figure 3.2 Venn diagram and equivalent K-map for three variables
CS1103-5
16
Figure 3.3 (a) -- (d) K-maps for four and five variables
CS1103-5
17
Venn Diagrams Venn diagram to represent the space of minterms.
Example of 2 variables (4 minterms): ab' a'b a'b' ab a b
18
Venn Diagrams Each set of minterms represents a Boolean function. Examples: { a.b, a.b' } a.b + a.b' = a.(b+b') = a { a‘.b, a.b } a‘.b + a.b = (a'+a).b = b { a.b } a.b { a.b, a.b', a‘.b } a.b + a.b' + a‘.b = a + b { } 0 { a‘.b',a.b,a.b',a‘.b } 1 ab' a'b a'b' ab a b
19
2-variable K-maps Karnaugh-map (K-map) is an abstract form of Venn diagram, organised as a matrix of squares, where each square represents a minterm adjacent squares always differ by just one literal (so that the unifying theorem may apply: a + a' = 1) For 2-variable case (e.g.: variables a,b), the map can be drawn as:
20
2-variable K-maps Alternative layouts of a 2-variable (a, b) K-map
OR a'b' ab' a'b ab b a m0 m2 m1 m3 OR Alternative 2: ab a'b ab' a'b' b a m3 m1 m2 m0 OR Alternative 3: and others…
21
2-variable K-maps Equivalent labeling: a b equivalent to: 1
22
2-variable K-maps The K-map for a function is specified by putting
a ‘1’ in the square corresponding to a minterm a ‘0’ otherwise For example: Carry and Sum of a half adder. 1 a b C = ab S = ab' + a'b
23
3-variable K-maps There are 8 minterms for 3 variables (a, b, c). Therefore, there are 8 cells in a 3-variable K-map. ab'c' ab'c a b abc abc' a'b'c' a'b'c a'bc a'bc' 1 c bc OR m4 m5 m7 m6 m0 m1 m3 m2 Note Gray code sequence Above arrangement ensures that minterms of adjacent cells differ by only ONE literal. (Other arrangements which satisfy this criterion may also be used.)
24
3-variable K-maps There is wrap-around in the K-map:
a'.b'.c' (m0) is adjacent to a'.b.c' (m2) a.b'.c' (m4) is adjacent to a.b.c' (m6) m4 m5 m7 m6 m0 m1 m3 m2 1 a bc Each cell in a 3-variable K-map has 3 adjacent neighbours. In general, each cell in an n-variable K-map has n adjacent neighbours. For example, m0 has 3 adjacent neighbours: m1, m2 and m4.
25
Figure 3.15 -- Example 3.13 f(A,B,C,D) = m(1,2,3,6) = AC + BC
CS1103-5
26
Quick Review Questions (1)
Textbook page 104. 5-1. The K-map of a 3-variable function F is shown below. What is the sum-of-minterms expression of F? 5-2. Draw the K-map for this function A: A(x, y, z) = x.y + y.z’ + x’.y’.z 1 a b c bc
27
4-variable K-maps There are 16 cells in a 4-variable (w, x, y, z) K-map. m4 m5 w y m7 m6 m0 m1 m3 m2 00 01 11 10 z wx yz m12 m13 m15 m14 m8 m9 m11 m10 x
28
4-variable K-maps There are 2 wrap-arounds: a horizontal wrap-around and a vertical wrap-around. Every cell thus has 4 neighbours. For example, the cell corresponding to minterm m0 has neighbours m1, m2, m4 and m8. m4 m5 w y m7 m6 m0 m1 m3 m2 z wx yz m12 m13 m15 m14 m8 m9 m11 m10 x
29
Figure 3.16 -- Example 3.14 f(A,B,C,D) = BD + BC + BCD
CS1103-5
30
5-variable K-maps Maps of more than 4 variables are more difficult to use because the geometry (hyper-cube configurations) for combining adjacent squares becomes more involved. For 5 variables, e.g. vwxyz, need 25 = 32 squares.
31
5-variable K-maps Organised as two 4-variable K-maps: v ' v
y m23 m22 m16 m17 m19 m18 00 01 11 10 z wx yz m28 m29 m31 m30 m24 m25 m27 m26 x m4 m5 m7 m6 m0 m1 m3 m2 m12 m13 m15 m14 m8 m9 m11 m10 v ' v Corresponding squares of each map are adjacent. Can visualise this as being one 4-variable map on TOP of the other 4-variable map.
32
Larger K-maps 6-variable K-map is pushing the limit of human “pattern-recognition” capability. K-maps larger than 6 variables are practically unheard of! Normally, a 6-variable K-map is organised as four 4-variable K-maps, which are mirrored along two axes.
33
Larger K-maps a‘.b' a‘.b a.b' a.b
w a‘.b' m0 00 01 11 10 cd ef m1 m3 m2 m4 m5 m7 m6 m12 m13 m15 m14 m8 m9 m11 m10 m40 10 11 01 00 m41 m43 m42 m44 m45 m47 m46 m36 m37 m39 m38 m32 m33 m35 m34 m18 m19 m17 m16 m22 m23 m21 m20 m30 m31 m29 m28 m26 m27 m25 m24 m58 m59 m57 m56 m62 m63 m61 m60 m54 m55 m53 m52 m50 m51 m49 m48 a‘.b a.b' a.b a b Try stretch your recognition capability by finding simplest sum-of-products expression for S m(6,8,14,18,23,25,27,29,41,45,57,61).
34
Simplification Using K-maps
Based on the Unifying Theorem: A + A' = 1 In a K-map, each cell containing a ‘1’ corresponds to a minterm of a given function F. Each group of adjacent cells containing ‘1’ (group must have size in powers of twos: 1, 2, 4, 8, …) then corresponds to a simpler product term of F. Grouping 2 adjacent squares eliminates 1 variable, grouping 4 squares eliminates 2 variables, grouping 8 squares eliminates 3 variables, and so on. In general, grouping 2n squares eliminates n variables.
35
Simplification Using K-maps
Group as many squares as possible. The larger the group is, the fewer the number of literals in the resulting product term. Select as few groups as possible to cover all the squares (minterms) of the function. The fewer the groups, the fewer the number of product terms in the minimized function.
36
Simplification Using K-maps
Example: F (w,x,y,z) = w’.x.y'.z' + w'.x.y'.z + w.x'.y.z' + w.x'.y.z + w.x.y.z' + w.x.y.z = m(4, 5, 10, 11, 14, 15) 1 w y 00 01 11 10 wx yz x (cells with ‘0’ are not shown for clarity) z
37
Simplification Using K-maps
Each group of adjacent minterms (group size in powers of twos) corresponds to a possible product term of the given function. 1 w 00 01 11 10 z wx yz x A B y
38
Simplification Using K-maps
There are 2 groups of minterms: A and B, where: A = w'.x.y'.z' + w‘.x.y'.z = w'.x.y'.(z' + z) = w'.x.y' B = w.x'.y.z' + w.x'.y.z + w.x.y.z' + w.x.y.z = w.x'.y.(z' + z) + w.x.y.(z' + z) = w.x'.y + w.x.y = w.(x'+x).y = w.y 1 w 00 01 11 10 z wx yz x A B y
39
Simplification Using K-maps
Each product term of a group, w'.x.y' and w.y, represents the sum of minterms in that group. Boolean function is therefore the sum of product terms (SOP) which represent all groups of the minterms of the function. F(w,x,y,z) = A + B = w'.x.y' + w.y
40
Simplification Using K-maps
Larger groups correspond to product terms of fewer literals. In the case of a 4-variable K-map: 1 cell = 4 literals, e.g.: w.x.y.z, w'.x.y'.z 2 cells = 3 literals, e.g.: w.x.y, w.y'.z' 4 cells = 2 literals, e.g.: w.x, x'.y 8 cells = 1 literal, e.g.: w, y', z 16 cells = no literal, e.g.: 1
41
Simplification Using K-maps
Other possible valid groupings of a 4-variable K-map include: 1 P
42
Simplification Using K-maps
Groups of minterms must be (1) rectangular, and (2) have size in powers of 2’s. Otherwise they are invalid groups. Some examples of invalid groups: 1 O
43
Converting to Minterms Form
The K-map of a function is easily drawn when the function is given in canonical sum-of-products, or sum-of-minterms form. What if the function is not in sum-of-minterms? Convert it to sum-of-products (SOP) form. Expand the SOP expression into sum-of-minterms expression, or fill in the K-map directly based on the SOP expression.
44
Converting to Minterms Form
Example: f(A,B,C,D) = A(C+D)'(B'+D') + C(B+C'+A'D) = A(C'D')(B'+D') + BC + CC' + A'CD = AB'C'D' + AC'D' + BC + A'CD C A 00 01 11 10 B CD AB D AB'C'D' + AC'D' + BC + A'CD = AB'C'D' + AC'D'(B+B') + BC + A'CD = AB'C'D' + ABC'D' + AB'C'D' + BC(A+A') + A'CD = AB'C'D' + ABC'D' + ABC + A'BC + A'CD = AB'C'D' + ABC'D' + ABC(D+D') + A'BC(D+D') + A'CD(B+B') = AB'C'D' + ABC'D' + ABCD + ABCD' + A'BCD + A'BCD' + A'B'CD 1 1 1 1
45
Simplest SOP Expressions
To find the simplest possible sum of products (SOP) expression from a K-map, you need to obtain: minimum number of literals per product term; and minimum number of product terms This is achieved in K-map using bigger groupings of minterms (prime implicants) where possible; and no redundant groupings (look for essential prime implicants) Implicant: a product term that could be used to cover minterms of the function.
46
Simplest SOP Expressions
A prime implicant is a product term obtained by combining the maximum possible number of minterms from adjacent squares in the map. Use bigger groupings (prime implicants) where possible. 1 O P
47
Simplest SOP Expressions
No redundant groups: An essential prime implicant is a prime implicant that includes at least one minterm that is not covered by any other prime implicant. 1 P O Essential prime implicants
48
Quick Review Questions (2)
Textbook page 104. 5-3. Identify the prime implicants and the essential prime implicants of the two K-maps below. 1 C A 00 01 11 10 B CD AB D 1 a b c bc
49
Simplest SOP Expressions
Algorithm 1 (non optimal): 1. Count the number of adjacencies for each minterm on the K-map. 2. Select an uncovered minterm with the fewest number of adjacencies. Make an arbitrary choice if more than one choice is possible. 3. Generate a prime implicant for this minterm and put it in the cover. If this minterm is covered by more than one prime implicant, select the one that covers the most uncovered minterms. 4. Repeat steps 2 and 3 until all the minterms have been covered.
50
Simplest SOP Expressions
Algorithm 2 (non optimal): 1. Circle all prime implicants on the K-map. 2. Identify and select all essential prime implicants for the cover. 3. Select a minimum subset of the remaining prime implicants to complete the cover, that is, to cover those minterms not covered by the essential prime implicants.
51
Simplest SOP Expressions
Example: f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15) 1 C A 00 01 11 10 B CD AB D All prime implicants
52
Simplest SOP Expressions
B 1 C A 00 01 11 10 CD AB D 1 C A 00 01 11 10 B CD AB D Essential prime implicants 1 C A 00 01 11 10 B CD AB D Minimum cover
53
Simplest SOP Expressions
1 C A 00 01 11 10 B CD AB D A'BC' AB'D' BD A'B'C f(A,B,C,D) = B.D + A'.B'.C + A.B'.D' + A'.B.C'
54
Quick Review Questions (3)
Textbook page 104. 5-4. Find the simplified expression for G(A,B,C,D). 1 C A 00 01 11 10 B CD AB D 5-5 to 5-7.
55
Getting POS Expressions
Simplified POS expression can be obtained by grouping the maxterms (i.e. 0s) of given function. Example: Given F=m(0,1,2,3,5,7,8,9,10,11), we first draw the K-map, then group the maxterms together: 1 C A 00 01 11 10 B CD AB D
56
Getting POS Expressions
1 C A 00 01 11 10 B CD AB D C A 00 01 11 10 B CD AB 1 D K-map of F K-map of F' This gives the SOP of F' to be: F' = B.D' + A.B To get POS of F, we have: F = (B.D' + A.B)' = (B.D')'.(A.B)' DeMorgan = (B'+D).(A'+B') DeMorgan
57
Don’t-care Conditions
In certain problems, some outputs are not specified. These outputs can be either ‘1’ or ‘0’. They are called don’t-care conditions, denoted by X (or sometimes, d). Example: An odd parity generator for BCD code which has 6 unused combinations.
58
Don’t-care Conditions
Don’t-care conditions can be used to help simplify Boolean expression further in K-maps. They could be chosen to be either ‘1’ or ‘0’, depending on which gives the simpler expression.
59
Don’t-care Conditions
1 A C 00 01 11 10 D AB CD B For comparison: WITHOUT Don’t-cares: P = A'.B'.C'.D’ + A'.B'.C.D + A'.B.C'.D + A'.B.C.D' + A.B'.C'.D WITH Don’t-cares: P = A'.B'.C'.D' + B'.C.D + B.C'.D + B.C.D' + A.D 1 A C 00 01 11 10 D AB CD B X
60
Examples Example #1: f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15)
Fill in the 1’s. 1 C A 00 01 11 10 B CD AB D
61
Examples Example #1: f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15)
00 01 11 10 B CD AB D These are all the prime implicants; but do we need them all?
62
Examples Example #1: f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15)
00 01 11 10 B CD AB D Essential prime implicants: B.D A'.B.C' A.B'.D'
63
Examples Example #1: f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15)
00 01 11 10 B CD AB D Minimum cover. EPIs: B.D, A'.B.C', A.B'.D' + A'.B'.C f(A,B,C,D) = B.D + A'.B.C' + A.B'.D' + A'.B'.C
64
Examples SUMMARY Essential prime implicants Minimum cover
B 1 C A 00 01 11 10 CD AB D 1 C A 00 01 11 10 B CD AB D Essential prime implicants SUMMARY 1 C A 00 01 11 10 B CD AB D Minimum cover f(A,B,C,D) = B.D + A'.B'.C + A.B'.D' + A'.B.C'
65
Examples Example #2: f(A,B,C,D) = A.B.C + B'.C.D' + A.D + B'.C'.D'
1 C A 00 01 11 10 B CD AB D Fill in the 1’s.
66
Examples Example #2: f(A,B,C,D) = A.B.C + B'.C.D' + A.D + B'.C'.D'
1 C A 00 01 11 10 B CD AB D Find all PIs: A.D A.C B'.D' Are all ‘1’s covered by the PIs? Yes, so the answer is: f(A,B,C,D) = A.D + A.C + B'.D'
67
Examples Example #3 (with don’t cares):
f(A,B,C,D) = m(2,8,10,15) + d(0,1,3,7) 1 X C A 00 01 11 10 B CD AB D Fill in the 1’s and X’s.
68
Examples Example #3 (with don’t cares):
f(A,B,C,D) = m(2,8,10,15) + d(0,1,3,7) 1 X C A 00 01 11 10 B CD AB D Do we need to have an additional term A'.B' to cover the 2 remaining x’s? No, because all the 1’s (minterms) have been covered. f(A,B,C,D) = B'.D' + B.C.D
69
Examples To find simplest POS expression for example #2:
f(A,B,C,D) = A.B.C + B'.C.D' + A.D + B'.C'.D' Draw the K-map of the complement of f, f '. From K-map, f ' = A'.B + A'.D + B.C'.D' Using DeMorgan’s theorem, f = (A'.B + A'.D + B.C'.D')' = (A+B').(A+D').(B'+C+D) 1 C A 00 01 11 10 B CD AB D
70
Examples To find simplest POS expression for example #3:
f(A,B,C,D) = m(2,8,10,15) + d(0,1,3,7) Draw the K-map of the complement of f, f '. f '(A,B,C,D) = m(4,5,6,9,11,12,13,14) + d(0,1,3,7) 1 C A 00 01 11 10 B CD AB D X From K-map, f ' = B.C' + B.D' + B'.D Using DeMorgan’s theorem, f = (B.C' + B.D' + B'.D)' = (B'+C).(B'+D).(B+D')
71
Design Example: Two Bit Comparator
Block Diagram and Truth Table A B C D F F F 1 2 3 F 1 A B = C D 2 B < C D 3 B > C D B C D N 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A 4-Variable K-map for each of the 3output functions CS1103-5
72
Two bit Comparator Example
AB AB AB CD 00 01 11 10 CD 00 01 11 10 CD 00 01 11 10 00 1 00 00 1 1 1 01 1 01 1 01 1 1 11 1 11 1 1 1 11 10 1 10 1 1 10 1 F 1 F 2 F 3 F1 = A' B' C' D' + A' B C' D + A B C D + A B' C D' F2 = A' B' D + A' C + B’CD F3 = B C' D' + A C' + A B D' CS1103-5
73
Design Example: Two Bit Adder
Block Diagram and Truth Table A A 1 B 1 C 1 D 1 X 1 Y 1 Z 1 B N 1 X Y Z N 3 + C D N 2 A 4-variable K-map for each of the 3 output functions CS1103-5
74
1's on diagonal suggest XOR! Y K-Map not minimal as drawn
Two Bit Adder (continued) AB AB AB CD 00 01 11 10 CD 00 01 11 10 CD 00 01 11 10 00 00 1's on diagonal suggest XOR! Y K-Map not minimal as drawn 1 1 00 1 1 01 1 01 1 1 01 1 1 11 1 1 1 11 1 1 11 1 1 10 1 1 10 1 1 10 1 1 X Y Z X = A C + B C D + A B D Z = B D' + B' D = B xor D Y = A' B' C + A B' C' + A' B C' D + A' B C D' + A B C' D' + A B C D = B' (A xor C) + A' B (C xor D) + A B (C xnor D) = B' (A xor C) + B (A xor B xor C) gate count reduced if XOR available CS1103-5
75
Two Bit Adder (continued)
\ A \ B \ C \ D A Two alternative implementations of Y with and without XOR B C D Y 1 Note: XOR typically requires 4 NAND gates to implement! X Y X NOR Y Y 2 CS1103-5
76
Figure 3.25 -- block diagram and truth table.
Example Design a circuit to distinguish BCD digits 5 from those 5. Figure block diagram and truth table. CS1103-5
77
f(A,B,C,D) = (A + B)(A + C + D)
Example 3.23 (concluded) MSOP MPOS Figure Use of don’t cares for SOP and POS forms. f(A,B,C,D) = A + BD + BC; f(A,B,C,D) = (A + B)(A + C + D) CS1103-5
78
End of file
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.