제 3 장 카르노 맵 ( k-map : karnaugh map )
DESCRIPTION
제 3 장 카르노 맵 ( K-map : Karnaugh Map ). 카르노 맵 소개 카르노 맵을 사용한 최소 곱의 합 식 무정의 (Don ’ t Care) 합의 곱 5 변수와 6 변수 맵 다중출력 문제. 카르노 맵 (K-map: Karnaugh map). 각 정사각형은 함수의 최소항들을 나타낸다. Plotting Functions. 3 변수 맵. 예제 3.1. m 0 +m 1 : A B C + A B C =A B - PowerPoint PPT PresentationTRANSCRIPT
1
제 3 장 카르노 맵 (K-map : Karnaugh Map)
1) 카르노 맵 소개
2) 카르노 맵을 사용한 최소 곱의 합 식
3) 무정의 (Don’t Care)
4) 합의 곱
5) 5 변수와 6 변수 맵
6) 다중출력 문제
2
카르노 맵 (K-map: Karnaugh map)
• 각 정사각형은 함수의 최소항들을 나타낸다 .
3
Plotting Functions
4
3 변수 맵
5
예제 3.1
m0+m1: ABC + ABC =ABm4+m6: ABC + ABC =ACm7+m5: ABC + ABC =ACm0+m4: ABC + ABC =BCm1+m5: ABC + ABC =BC
6
수직 배열 맵 (Vertical Map)
0 1
00
01
10
11
ABC
AB
0 1
00
01
10
11
ABC
1
1
0 1
00
01
10
11
ABC
1
1
AC
7
라벨이 붙여진 맵 (Map with Columns labeled)
0
1
00 01 1011AB
C0
1
2
3
4
5
6
7 C
B
A
0
1
00 01 1011AB
C
1
1 11 C
B
A
ABAC
8
4 변수 맵
9
2 개의 1 로 이루어진 그룹
10
4 개로 이루어진 그룹
11
8 개로 이루어진 그룹
A D
12
예제 3.3
F = AB' + AC + A'BC'
• 곱의 합으로 표현되는 함수식을 맵에 나타내는 방법
F = AB'(C' + C) + AC(B' + B) + A'BC'
= AB'C' + AB'C + AB'C + ABC + A'BC'
= m4 + m5 + m5 + m7 + m2
= m2 + m4 + m5 + m7
( 중복 제거 및 순서화 )
13
내포항 (Implicant)
• 함수에 대한 곱의 합 식에서 사용되는 곱 항– 임의의 곱의 합식은 내포항들의 합
• 내포항은 1, 2, 4, 8, ..(2 의 지수승 ) 개의 1 로 구성
14
내포항 예
최소항 2 개로 구성된 그룹 4 개로 구성된 그룹
A'B'C'D' A'CD CDA'B'CD BCDA'BCD ACDABC'D' B'CDABC'D ABC'ABCD ABDAB'CD-------------------------------------------------------총 14 개의 내포항
15
주 내포항 (Prime Implicant : PI)
• 다른 내포항에 완전히 포함되지 않는 하나의 내포항이다
• F 의 주내포항 : A'B'C'D', ABC', ABD, CD
16
주 내포항 (Prime Implicant : PI)• 대수적 의미
– 임의의 문자 변수가 주 내포항에서 제거되면 더 이상 내포항이 아닌 내포항을 의미
– A'B'C'D' 는 B'C'D', A'C'D', A'B'D', A'B'C' 가 내포항이 아니기 때문에 주 내포항
17
Cover
• F 에 대한 임의의 곱의 합 식은 내포항들의 합
• F 의 각 1 들은 적어도 한 개의 내포항에 포함되도록 충분한
내포항들을 선택해야 한다 .
• 이런 곱의 합식을 F 의 커버 (cover) 라 한다 .
• 내포항 ABD 는 m13 과 m15 를 커버
18
예제 3.4
• 함수 G– 3 개의 최소항 -> 적어도 2 개의 항이 필요– G = ABD + ABC
• 함수 H– 최소식 H = BC'D + ABC– 내포항 ABD 는 다른 항에 의해 커버되는 1 만을 커버
19
필수 주 내포항 (Essential Prime Implicant : EPI)
• 다른 주 내포항에 포함되지 않는 적어도 1 개의 1 을 포함하는 주 내포항이다 . A'B'C'D', ABC', CD 는 필수 주 내포항
•필수 (Essential) : 주어진 함수에 대한 최소화된 곱의 합 형태의 어떤 수식에도 이 주 내포항은 포함되어야 한다는 뜻
A'B'C'D' ABC'
CD
20
카르노 맵을 사용한 최소 곱의 합 식
• N- 변수 맵에서 , 각각의 사각형은 n 개의 인접한 사각형을 가짐
• 고립되었다는 것은 1 을 갖는 인접한 정사각형들의 수가 적은 ( 또는 없는 ) 것을 의미한다 .
3, 4 변수 맵의 인접한 사각형
21
1. 모든 필수 주 내포항들을 찾음 .
• 맵 상에서 필수 주 내포항들을 묶음
• 필수 주 내포항으로 만드는 최소항들에 * 표시를 한다 .
– 일반적으로 가장 고립된 1 들로부터 시작하는 것이 빠르다 .
2. 함수를 커버하는 ' 충분한 ' 다른 주 내포항들을 찾음 .(2 가지
기준 )
• 선택된 주 내포항에 의해 될수록 많은 새로운 ( 아직 커버되지
않은 ) 1 을 커버하는 주 내포항을 선택 .
• 고립되고 커버되지 않은 1 을 남겨놓지 않도록 함 .
맵 방법 1
22
F = A'B'C'D' + ABC' + … F = A'B'C'D' + ABC' + CD
예제 3.5 필수 주 내포항에 의해서만 커버
23
• 필수 주 내포항– 가장 고립된 m11 -> wyz
– m0, m12, m8 -> y'z'
• 주 내포항– 남은 2 개의 1 은 w'xz 에 의해 커버
• 주 내포항 w'xy', xyz 는 새로운 1 을 커버하지 않기 때문에 중복
• 최소곱의 합 식
f = y'z' + w y z + w'xz
예제 3.6 필수 주 내포항과 주 내포항에 의해 커버
24
• 필수 주 내포항 : a'd' + bd' + a'bc + ab'd
• 1 개의 1(m8) 이 남음
• 4 개로 이루어진 그룹 (c'd') 과 2 개로 이루어진 그룹 (ab'c') 에 커버
• 최소 식
f = a'd' + bd' + a'bc + ab'd + c'd'
예제 3.8 f(a, b, c, d) = m(0, 2, 4, 6, 7, 8, 9, 11, 12, 14)
25
• 최소 해
G = A'BC' + A'CD + ABC + AC'D
예제 3.10 특이한 경우
26
g(w, x, y, z) = m(2, 5, 6, 7, 9, 10, 11, 13, 15)
g = xz + wz + …
g = xz + wz + w'yz' + wx'y g = xz + wz + w'yz' + x'yz'
g = xz + wz + x'yz' + w'xy
예제 3.11 여러 개의 최소 해
27
F = A'C'D' + AC'D + A'CD + ACD' + B'D' + AB'
F = A'C'D' + AC'D + A'CD + ACD' + B'D' + B'C
F = A'C'D' + AC'D + A'CD + ACD' + AB' + B'C
• F = A'C'D' + AC'D + A'CD + ACD' + …( 가운데 맵 )
• 커버되지 않은 3 개의 1: B'D', AB', B'C 중 임의의 2 개로 커버
• 최소 식
예제 3.12 다소 복잡한 경우
28
''
'
'
''''
cab
dac
ba
dabddbf
• m10 과 m15
f = b'd + bd + …
• 커버되지 않은 1: 3 개
• 최소 해 : 4 가지
예제 3.13 여러 개의 최소 해
29
1. 모든 주 내포항들을 원으로 묶음
2. 모든 필수 주 내포항들을 선택
• 단지 한 번 원으로 묶인 1 을 찾음으로써 쉽게 선택이 가능
3. 맵 방법 1 에 기술한 것처럼 충분한 다른 주 내포항들을 선택
• 이들 주 내포항들은 이미 단계 1 에서 지정됨
맵 방법 2
30
• 가운데 맵 : 모든 주 내포항• m3 와 m5 -> A'B' 와 C'D 필수 주 내포항• 남은 4 개의 1 을 커버 : 적어도 2 개 이상의 항이 필요
- B'D' 는 2 개의 새로운 1 을 포함- B'C' 는 단지 1 개를 포함- 남은 1 을 커버하기 위하여 ABC 가 필요
• 최소 해 F = A'B' + C'D + B'D' + ABC
예제 3.15 복잡한 경우
31
G(A, B, C, D) = m(0, 1, 3, 7, 8, 11, 12, 13, 15)
예제 3.16 필수 주 내포항의 cover 가 작은 경우
•필수 주 내포항 : YZ - 5 개의 1 이 남음
•주 내포항 : W'X'Z, X'Y'Z', WXY',
W'X'Y', WY'Z' , WXZ
• 적어도 3 개의 항이 더 필요
32
• 최소해
F = YZ + W'X'Z (dotted circle) + X'Y'Z' + WXY'
F = YZ + W'X'Y' + X'Y'Z' + WXY'
F = YZ + W'X'Y' + WY'Z' + WXY'
F = YZ + W'X'Y' + WY'Z' + WXZ
예제 3.16 계속
33
• a'c'd' 로 시작하는 경우의 해
f = a'c'd' + bc'd + acd + b'cd'
예제 3.17 필수 주 내포항이 없는 경우
34
• a'c'd' 와 abd 를 선택하는 경우 ( 가운데 맵 ) 5 개의 항
• a'c'd' 와 a'b'd' 를 선택하는 경우 ( 가운데 맵 )->5 개의 항
• a'b'd' 로 시작 ( 세번째 맵 )
f = a'b'd' + a'bc' + abd + ab'c
예제 3.17 ( 계속 )
35
• m0 를 커버하는 C'D' 로 시작 , 그리고 B'D, BC
• m13 을 커버하는 3 가지 (AB 또는 AC' 또는 AD )
F = C'D' + B'D + BC + { AB 또는 AC' 또는 AD }
예제 3.18 필수 주 내포항이 없고 복잡한 경우
G(A, B, C, D) = m(0, 1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15)
36
AD
AC
AB
CDBDCB
BCDBDCF '
'''
'''
• m0 를 커버하는 B'C' 로 시작하는 경우 , BD', CD
• 앞에서 처럼 m13 을 커버하는 3 가지 (AB 또는 AC' 또는 AD )
• 총 6 개의 최소 해가 존재
예제 3.18 ( 계속 )
37
f = a'b'c'd' + a'cd + bc'd + a b'd + a bc' + a'bc + a cd'
= a'b'c'd' + a'cd + bc'd + ab'd + abd' + bcd' + ab'c
= …
• 1 개의 필수 주 내포항과 10 개의 1 이 남음
• 모든 주 내포항 : 가운데 맵
• 주 내포항들을 2 개씩 그룹핑함
• 7 개의 항 이내로 간소화가 불가능하고 , 32 개의 다른 해가 존재
예제 3.19
38
Don’t Care ( 무정의 )
• 무정의를 가진 함수에 대한 최소 해를 구하는 방법
• 정의 변경• 주 내포항 : 다른 더 큰 사각형에 포함되지 않은 1, 2, 4, 8, ..
개의 1 또는 × 의 사각형이다 . - ×( 무정의 ) 도 1 과 같이 동등하게 다룬다 .
• 필수 주 내포항 : 다른 주 내포항에 의해 커버되지 않는 1 을 적어도 한 개를 커버하는 주 내포항이다 . 무정의 (×) 는 주 내포항을 필수로 만들지는 않는다 .
• 최소 해를 구할 때 무정의 중에 어떤 것은 포함되고 어떤 것은 포함되지 않음
39
F(A, B, C, D) = m(1, 7, 10, 11, 13) + d(5, 8, 15)
• 최소해 ( 가운데 맵 )
F = BD + A'C'D + AB'C
• 모든 무정의를 1 로 고려하는 경우 ( 오른쪽 맵 )
F = BD + A'C'D + AB'C + AB'D'
F = BD + A'C'D + ACD + AB'D'
• 모든 무정의를 ‘0’ 으로 고려한 경우
F = A'B'C'D + A'BCD + ABC'D + AB'C
예제 3.20
40
g1 = x'z + w'yz + w'y'z' + wxy' (m0 = 1)
g2 = x'z + w'yz + xy'z' + wxy' (m0 = 0)
g3 = x'z + w'yz + xy'z' + wy'z (m0 = 0)
g2 와 g3 는 대수학적으로 같은 함수이지만 g1 과는
다르다 .
• 2 개의 필수 주 내포항 x'z 와 w'yz ( 가운데 맵 )
• 4 개의 무정의로 이루어진 w'x' 는 주 내포항이지만 , 필수는 아님
• 모두 무정의로만 이루어진 주 내포항은 사용할 수 없음
• 최소화 해
예제 3.21 모든 해의 대수적 표현이 동일하지 않은 경우
41
g1 = c'd' + ab + b'd' + a'cd
g2 = c'd' + ab + b'd' + a'b'c
g3 = c'd' + ab + ad' + a'b'c
• 첫번째 맵 : 유일한 필수 주 내포항 c'd' 와 ab, 3 개의 1 이 남음
• 두번째 맵 : b'd' 를 이용한 2 개의 해
• 세번째 맵 : ad' 를 이용한 해
• 동일성을 검증 : 무정의들이 처리된 값을 표로 구현• g1 ≠ g2 = g3
예제 3.22
42
1. 맵 방법 1 또는 2 를 사용하여 모든 필수 주 내포항을 찾음
2. 필수 주 내포항에 포함되는 모든 1 들을 X 로 대치
포함되지 않고 남아있는 1 을 구별하기 위함
3. 맵 방법 1 과 2 에서 처럼 다른 주 내포항들을 충분히 선택
맵 방법 3
43
• 처음에 필수 주 내포항 A'B 와 CD 를 찾음
• 두번째 맵 : 포함된 모든 1 을 무정의로 변환
• 나머지 1 들은 AC 와 B'C'D' 에 의해 커버
• 최소화 해
F = A'B + CD + AC + B'C'D'
예제 3.23 F(A, B, C, D) = m(0, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15)
44
합의 곱
합의 곱 형태의 최소화
1. 함수의 보수를 맵에 표현
• 함수에 대한 맵이 이미 존재하는 경우 , 모든 0 을 1 로 , 모든 1
을 0 으로 대치 . X 는 변환하지 않음
2. 앞에서 사용한 방법을 이용하여 함수의 보수에 대한 최소화 곱의 합
식을 찾음
3. 합의 곱 식을 만들기 위하여 , 2 에서 구한 곱의 합 수식에 보수를 취함
( 드모르강의 정리 ( 대수적 속성 P11) 을 이용 )
45
f (a, b, c, d) = m(0, 1, 4, 5, 10, 11, 14)
f '(a, b, c, d) = m(2, 3, 6, 7, 8, 9, 12, 13, 15)
f 에 대한 최소 곱의 합 식 f = a'c' + ab'c + acd'
예제 3.25 합의 곱
f 에 대한 최소 합의 곱 식• f' = ac' + a'c + abd
f = (a'+c)(a+c')(a'+b'+d')
• f' = ac' + a'c + bcd
f = (a'+c)(a+c')(b'+c'+d')
46
5, 6 변수 맵
• 5 변수 맵은 25 = 32 개로 구성• 16 개의 정사각형을 2 개층 (layer) 구조로 나타냄
• 5 변수 맵 (2-layer)
47
• 6 변수 맵의 경우도 16 개의 정사각형의 맵이 4 개층 구조로 그려짐
• 4 변수 맵과 동일
48
5 변수 함수에 대한 맵핑
F(A, B, C, D, E) = m(4, 5, 6, 7, 9, 11, 13, 15, 16, 18, 27, 28, 31)
49
• 1 들 중에서 인접한 층에서 대응하는 정사각형에 1 이 없는 것• 이러한 1 을 포함한 주 내포항은 그 층에만 속하게 된다 ( 따라서 , 4
변수 맵 문제가 된다 .).
• 이와 같은 예로 , m4, m9, m16, m28 의 경우가 있다
• F = A'B'C + A'BE + AB'C'E' + ABCD'E' + …
50
• 양쪽의 레이어 상에 1 을 커버하는 필수 주 내포항
• 최종 해
F = ABC + ABE + ABCE + ABCDE + BDE
(계속 )
51
다중 출력 문제
• 다중 출력을 가진 시스템을 설계하는 경우가 많음• 3 개의 입력 A, B, C 와 2 개의 출력 F, G
– 2 개의 문제로 나누어서 취급– 하나의 시스템 : 게이트들의 공유가능 -> 비용 줄임 .
52
F(A, B, C) = m(0, 2, 6, 7) G(A, B, C) = m(1, 3, 6, 7)
• 각 함수에 대해 아래와 같은 식을 얻을 수 있음
F = AC + AB G = AC + AB
예제 3.32
53
• 우측 : 두개의 독립된 문제
• 좌측 : 항 (AB) 공유함으로써 게이트 수가 줄어듬 .
( 예제 3.32 계속 )
54
F(A, B, C) = m(0, 1, 6) G(A, B, C) = m(2, 3, 6)
독립된 문제 ( 위쪽 맵 ) : F = AB + ABC G = AB + BC공유 ( 아래쪽 맵 ) : F = AB + ABC G = AB + ABC
예제 3.33
55
• 독립된 문제 : F = AB + ABC G = AB + BC (6 게이트 : 4 AND, 2 OR, 13 inputs)
• 공유 : F = AB + ABC G = AB + ABC (5 게이트 : 3 AND, 2 OR, 11 inputs)
( 예제 3.33 계속 )
56
F(A, B, C) = m(2, 3, 7) G(A, B, C) = m(4, 5, 7)
• 독립된 문제 해
f = ab + bc
g = ab + ac
•공유항 이용
f = ab + abc
g = ab + abc
예제 3.34
57
F(A, B, C, D) = m(4, 5, 6, 8, 12, 13)
G(A, B, C, D) = m(0, 2, 5, 6, 7, 13, 14, 15)
• 하나의 함수에서만 1 인 것 ( 적색 ) 들에서 필수 주 내포항 찾음
예제 3.35
58
• 공유항 이용
F = ACD + ABD + BCDG = ABD + BC + BCD(20 inputs, 7 게이트 )
( 예제 3.35 계속 )
59
• 독립함수로 풀면
F = ACD + ABD + BC
G = ABD + BC + BD
(21 inputs, 8 게이트 )
( 예제 3.35 계속 )
60
F(A, B, C, D) = m(0, 2, 3, 4, 6, 7, 10, 11)
G(A, B, C, D) = m(0, 4, 8, 9, 10, 11, 12, 13)
• 먼저 공유되지 않는 1 들에서 필수 주 내포항 묶음
• 각 함수 (F, G) 의 독립 해 ( 분리하여 풀음 )
F = AC + AD + BC G = AC + CD + AB
(18 inputs, 8 게이트 )
예제 3.36
61
ACD 와 ABC 를 공유 (16 inputs, 6 게이트 )
• F = AC + ACD + ABC• G = AC + ACD + ABC
( 예제 3.36 계속 )
62
F(W, X, Y, Z) = m(2, 3, 7, 9, 10, 11, 13)
G(W, X, Y, Z) = m(1, 5, 7, 9, 13, 14, 15)
* mark : 공유안되는 필 수 주내포항
예제 3.37
63
F = XY + WYZ + W XYZ
G = YZ + WXY + WXYZ (7 게이트 ,20 inputs)
• F, G 를 분리하여 구한 해
F = XY + WYZ + WYZ
G = YZ + WXY + XZ (8 게이트 , 21 inputs)
( 예제 3.37 계속 )
64
분리된 문제로 해를 구하는 경우
F = AB + BD + BC
G = C + ABD
H = BC + ABC + ( ABD or ACD) (10 게이트 , 25 inputs)
예제 3.38
65
공유하여 구한 해
F = BC + ABC + ABD + ABD
G = C + ABD
H = BC + ABC + ABD (8 게이트 , 22 inputs)
( 예제 3.38 계속 )
66
F(A, B, C, D) = m(2, 3, 4, 6, 9, 11, 12) + d(0, 1, 14, 15)
G(A, B, C, D) = m(2, 6, 10, 11, 12) + d(0, 1, 14, 15)
• BD: 공유안되는 필수 주 내포항
예제 3.40 : 무정의를 가진 시스템의 예
67
• ABD 을 공유
F = BD + ABD + AD
G = AC + ABD + CD
(17 inputs, 7 게이트 )
( 예제 3.40 계속 )
68
• ACD 를 공유
F = BD + ACD + BD
G = AC + ABD + ACD (18 inputs, 7 게이트 )
( 예제 3.40 계속 )