Академический Документы
Профессиональный Документы
Культура Документы
Simplification Goals
Goal -- minimize the cost of realizing a switching function Cost measures and other considerations
Number of gates Number of levels Gate fan in and/or fan out Interconnection complexity Preventing hazards
Two-level realizations
Minimize the number of gates (terms in switching function) Minimize the fan in (literals in switching function)
Example 3.1
Determine the form and the number of terms and literals in each of the following. g(A,B,C) = AB + A B + AC Two-level form, three products , two sums, six literals.
--------------------
f(X,Y,Z) = X Y(Z + Y X) + Y Z
Minimization Methods
Commonly used techniques
Boolean algebra postulates and theorems Karnaugh maps Quine-McCluskey method Petricks method Generalized concensus algorithm
Characteristics
Heuristics (suboptimal) Algorithms (optimal)
Karnaugh Maps
Karnaugh maps (K-maps) -- convenient tool for representing switching functions of up to six variables. K-maps form the basis of useful heuristics for finding MSOP and MPOS representations. An n-variable K-map has 2n cells with each cell corresponding to a row of an n-variable truth table. K-map cells are labeled with the corresponding truth-table row. K-map cells are arranged such that adjacent cells correspond to truth rows that differ in only one bit position (logical adjacency). Switching functions are mapped (or plotted) by placing the functions value (0,1,d) in each cell of the map.
Figure 3.1 Venn diagram and equivalent K-map for two variables
A
m
A B
0
AB AB AB AB
B
m
2
m
3
m
1
(a) A
m
0
(b) A B
m
2
(c) A 0
0 2
0
1 3 1 3
m
3
B (e) A B
0
1 (f)
(d)
0
2
AB 00 01 10 11
f(AB)
0
1 3
1 (g)
C (c)
A
0 m0 m2 m6 m4 1 3 7 2 6
A
4
AB C
0
00
2
01
6
11
4
10
0
5 1 3 7 5
m1
m3
m7
m5
C B (e)
B (d)
(f)
Figure 3.3 (a) -- (d) K-maps for four and five variables
AB CD
0
A 00
4
01
12
11
8
10
0 4 12 8
00
1 5 13 9 1 5 13 9
01
3 7 15 11 3 7 15 11
11
2 6 14 10
14
10
10 B (b) A ABC DE
0
(a) B 000
4
B
16 20 28 24
001
011
12 8
010
100
16
101
20
111
28
110
24 0 4 12 8
00
1 5 13 9 17 21 29 25 1 5 13 9 17 21 29 25
01
3 7 15 11 19 23 27 3 7 15 11 19 23 31 27
11
2 6 14 10 18 22 30 26
14
10
18
22
30
26
10 (c) C (d) C
C 000
4
C
16 20 28 24
001
011
12 8
010
100
16
101
20
111
28
110
24 0 4 12 8
000
1 5 13 9 17 21 29 25 1 5 13 9 17 21 29 25
001
3 7 15 11 19 23 31 27 3 7 15 11 19 23 31 27
011
2 6 14 10 18 22 30 26
14
10
18
22
30
26
010
32 36 44 40 48 52 60 56 32 36 44 40 48 52 60 56
100
33 37 45 41 49 53 61 57 33 37 45 41 49 53 61 57
101
35 39 47 43 51 55 63 59
A E
35
39
47
43
51
55
63
59
111
34 38 46 42 50 54 62 58 34 38 46 42 50 54 62 58
A 00
2
01
6
11
4
10 0
5
0
1
1
3
0
7
0 0 B
C B (a) AB C
0
C 1
(b) A AB 10
4
A 00
0 2
00
2
01
6
11
C 0
01
6
11
4
10 0
5
0
1
1
3 7 5
0
1 3 7
0 0 B
C 1
1 B (c)
C 1
(d)
a 00
4
01
12
11
8
10
Q ab G
0
a 00
4
01
12
11
8
10 0
00
1
1
5 13
1
9
00
1 5
0
13 9
01
3 7
1
15
1
11
01 G 1
10 3
0
7 15 11
0 G
11 Q 10
2
1
6
1
14
1 1
11 Q
2 6 14 10
10
b (a)
b (b)
Q 00
4
01
12
11
8
10
00
1
1
5 13
1
9
01
3 7 15
1
11
1 a 1
10
11 b 10
2
1
6
1
14
1 1
f(A,B,C) = AB + BC
Universal set A BC
B (a) BC 00
0 2
AB
AB C 0
1 3
A 11
6 4
AB 10 C
0
A 00
2
01 1
7
01
6
11
4
10 0
1
5
0
1
0
3 7 5
C 1 B (b)
1 AB
C 1
B (c)
(A + C) 00
4
A 11
12 8
(B + C) 10 0 CD
AB 00
0 4
A 01
12
01 0
5 13
11
8
10
00
1
0 0
3 7
00
1 5 13
1
9
01 11 C 10
2
0
15 11
0 D
01
3 7 15
1
11
D 1
11
6 14 10
1
2 6
1
14
1
10
C 10
(B + C + D)
B (a) AC 00
0 4
B (b) A BC 11
12 8
AB CD 00
1
01 1
5 13
10 1
9
1 1
3 7
01 11 C 10
2
1
15 11
1 D
14
10
1 BCD
B (c)
f(A,B,C,D)= (A+B)(A+C+D)(B+C+D)
AB CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10 1
00
1 5 13
1
9
00
1
1
5
1
13 9
01
3 7 15
1
11
1 D
01
3
1
7
1
15 11
D 1
11 C 10
2 6
1
14
1
10
11 C 10
2
1
6 14 10
B (a)
B (b)
A 00
4
01
12
11
8
10 Step 1
00
1 5
1
13 9
01
3
1
7 15 11
1 D
11 C 10
2 6 14 10
Step 3
A 00
2
01
6
11
4
10
0
1 3
1
7
1
5
1 B
Minterms: {AB C, A BC, A BC, ABC, ABC} Groups of two minterms: {A B, AB, A C, BC, BC} Groups of four minterms: {B} Prime implicants: {A C, B} Cover = {A C, B} MSOP = A C + B
f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15)
AB CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10 1
00
1 5
1
13 9
1 1
15 11
00
1 5
1
13 9
01
3 7
1 1
2 6
01 D 11
10 3 7
1
15
1
11
11 C 10
1
14
1 C 1
1
2 6
1
14
1
10
10
B (a) AB CD
0
B (b) A AB 10
8
A 00
0 4
00
4
01
12
11
CD 00
1
01
12
11
8
10 1
00
1 5
1
13 9
1 1
15 11
1
5 13 9
01
3 7
1 1
2 6
01 D 11
10 3 7
1
15
1
11
11 C 10
1
14
1 C 1
1
2 6
1
14
1
10
10
B (c)
B (d)
f(A,B,C,D) = m(2,3,4,5,7,8,10,13,15)
A 00
0 4
AB CD 00
1 5
AB 10 CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
01
12
11
8
10 1
1
13 9
1 1
15 11
00
1 5
1
13 9
1 1
15 11
00
1 5
1
13 9
01
3 7
1 1
2 6
01 D 11
10 3 7
1 1
2 6
01 D 11
10 3 7
1
15
1
11
11 C 10
1
14
1 C 1
1
14
1 C 1
1
2 6
1
14
1
10
10
10
B (a)
B (b)
B (c)
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10 1
9
00
1
1
5 13
1
9
00
1
1
5 13
1 1
01
3 7
1
15 11
01 D 11
10 3 7
15
11
11 C 10
2 6
1
14
1 C 1 1
1
2 6 14
1
10
10
B (a) AB CD
0
B (b) A AB 10
8
A 00
0 4
00
4
01
12
11 1
CD 00
1
01
12
11
8
10 1
9
00
1
1
5 13
1
9
1
5 13
1 1
01
3 7
1
15 11
01 D 11
10 3 7
15
11
11 C 10
2 6
1
14
1 C 1 1
1
2 6 14
1
10
10
B (c)
B (d)
AB C 0
1 3
01
6
11
4
10
1
7
1
5
1 B
A 00
4
01
12
11
8
10 1
00
1
1
5 13 9
01
3
1
7 15 11
1 D 1 1
14 10
11 C 10
2 6
1 B
AB 10 CD
0
A 00
4
AB 10 CD 00
1
A 00
0 4
00
4
01
12
11
8
01
12
11
8
01
12
11
8
10 1
00
1
1
5
1
13 9
00
1
1
5
1
13 9
1
5
1
13 9
01
3 7
1
15 11
01 D 11
10 3 7
1
15 11
01 D 11
10 3 7
1
15 11
11 C 10
2 6
1
14
1 C 1 1
1
2 6 14
1 C 1 1
1
2 6 14
1
10
10
10
B (a)
B (b)
B (c)
B 000
4
B 010 100
16
001 1
5
011
12 8
101
20
111
28
110
24
00
1
1
13 9 17 21 29
1
25
01
3 7 15
1
11 19 23 31
1
27
11 D 10
2 6
1
14 10 18 22
1
30 26
C (a)
C (b)
Example 3.17 -- Find the minimum POS form of the function f(A,B,C,D) = M(0,1,2,3,6,9,14)
AB CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10
00
1
0
5 13 9
00
1
0
5 13 9
01
3
0
7 15 11
0 D
01
3
0
7 15 11
0 D
11 C 10
2
0
6 14 10
11 C 10
2
0
6 14 10
B (a)
B (b)
Example 3.18 -- Find the MPOS of the following function using Algorithm 3.5 f(A,B,C,D) = M(0,1,2,3,6,9,14)
AB CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10
00
1
1
5 13 9
00
1
1
5 13 9
01
3
1
7 15 11
1 D
01
3
1
7 15 11
1 D
11 C 10
2
1
6 14 10
11 C 10
2
1
6 14 10
B (a)
B (b)
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10 1
9
00
1 5
0
13
0
9
0 0
00
1 5
1
13
01
3 7 15 11
01 D
3 7 15 11
1 D 1
6 14 10
11 C 10
2
0
6 14 10
0 C 0 0
11
2
1 1 1
10
B (a)
B (b)
Figure 3.21
B 000
4
B 010 100
16
001 0
5
011
12 8
101
20
111
28
110
24
00
1
0
13 9 17 21
0
29 25
01
3 7 15 11 19 23 31 27
11 D 10
2 6 14
0
10
0
18 22 30
0
26
AB CD
0
A 00
4
AB 10 CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
01
12
11
8
10 1
00
1
0
5 13
0
9
00
1
1
5 13
1
9
00
1 5
1
13 9
01
3 7 15
0
11
0 D 0
10
01
3 7 15
1
11
1 D 1
10
01
3
1
7
1
15 11
11 C 10
2
0
6 14
11 C 10
2
1
6 14
11 C 10
2 6
1
14 10
B (a)
B (b)
B (c)
Example 3.22 -- Minimizing a Function with Dont Cares. f(A,B,C,D) = m(1,3,4,7,11) + d(5,12,13,14,15) = M(0,2,6,8,9,10) D(5,12,13,14,15)
AB CD
0
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10 0
9
00
1 5
1
13
d
9
00
1
0
5 13
d d d
15 11
01
3
1
7
d
15
d
11
01 D 1
10 3 7
0 D
11 C 10
2
1
6
1
14
d d
11 C 10
2 6 14
d
10
B (a)
SOP
B (b)
POS
A B C D
A 00
4
AB 10 CD
0
A 00
4
01
12
11
8
01
12
11
8
10
00
1 5 13
d
9
1 1
11
00
1
0
5
0
13
d
9
01
3 7
1
15
d d
14 10
01 D
3
0
7 15
d
11
D d
11 C 10
2 6
1 1
d C d
11
2
0
6 14
d
10
10
MSOP MPOS Figure 3.26 Use of dont cares for SOP and POS forms.
B (a)
B (b)
Dynamic hazard (bounce) -- the output changes multiple times during a change of state
Dynamic 0 to 1 hazard -- the output changes from 0 to 1 to 0 to 1 Dynamic 1 to 0 hazard -- the output changes from 1 to 0 to 1 to 0
x1 x2
G1
x1 x2 I1 x3 x1
G1
x1 x3
G2
y2 (a)
G2 (b)
y2
x1 x2 x3 y1 y2 z Time t1
Dt
t2
Dt
t3 t4 (c) t5
Dt
t6
x1 z 1 x3 1 1 x2 (a) 1 x3 1 1 x2 (b) z 1 1
x1
x1 x2 x1 x3 x2 x3
G2
G3
G4
A C A D A B C
(a)
(b)
Example 3.24 -- Use the Q-M method to find the MSOP of the function
f(A,B,C,D) = m(2,4,6,8,9,10,12,13,15)
AB CD
0
A 00
4
01
12
11
8
10 1
9
00
1 5
1
13
1 1
01
3 7 15
1
11
11 C 10
2 6 14
1
10
10 12 13 15
A 00
4
01
12
11
8
10 1
9
00
1 5
1
13
1 1
01
3 7 15
1
11
11 C 10
2 6 14
1
10
Covering Procedure
Step 1 -- Identify any minterms covered by only one PI. Select these PIs for the cover. Step 2 -- Remove rows covered by the PIs identified in step 1. Remove minterms covered by the removed rows. Step 3 -- If a cyclic chart results from step 2, go to step 5. Otherwise, apply the reduction procedure of steps 1 and 2. Step 4 -- If a cyclic chart results from step 3, go to step 5. Otherwise return to step 1. Step 5 -- Apply the cyclic chart procedure. Repeat step 5 until a void chart or noncyclic chart chart is produced. In the latter case, return to step 1.
10 11 13 14 15
Reduced PI Charts
10 11 13
* PI2 *PI4 5 10
Cyclic PI Charts
1. No essential PIs. 2. No row or column coverage.
1 *PI1 PI2 PI3 PI4 PI5 PI6 2 3 4 5 6
6
*PI3
PI4 *PI5
Example 3.25 -- Find a minimal sum of products of the following function using the Quine-McCluskey procedure.
10 12 15 27
0 * * PI1 b * * PI2 a g PI3 g PI4 b * * PI5 a b PI6 b PI7 b g PI8 g PI9 a PI10 a b g PI11 b g PI12 a PI13 a b g
2 7
10
2 7 8
fa
fg
PI1
PI2
fa fb fg
PI3
PI5
PI13
2
PI2 *PI3 *PI4 PI5 PI6
10
Figure 3.35
Switching function
Yes
Figure 3.36
100 000 010 110 000 100 010 110
101
111
101
111
011
011
Figure 3.37
A 1 1 1 1 C 1 D 1 C 1 1 1 1 1 1 D A
B (a)
B (b)
Figure 3.38
Inputs: EPI, PI, DC
Compute uncovered minterms UC
Yes
UC = F ? No
Move lowest-cost prime implicant from PI to EPI No New EPI found ? Yes
Figure P3.1
A BCD inputs B C D
Logic circuit
f(A, B, C, D)