컴퓨터구조

최소항과 최대항, 카르노맵(카노맵)

콘파냐 2015. 5. 22. 14:52

최소항(minterm)과 최대항(maxterm) 이란 디지탈 논리회로에서 맵 간략화를 위해 필요한 사항이다. 다시말해, 카노맵(또는 카르노맵) 이놈을 알기 위해서는 최소항, 최대항을 이해해야 한다.


최소항?, 최대항?.. 용어에 의미를 두고 해석을 하면 도통 감이 안 잡힌다. 원서 번역서를 읽으면 도통 무슨 말인지 모르게 써있는 경우가 꽤 있다. 그래서 경험을 비추어 이해하기 쉬운 방향으로 설명을 해보려 한다.

X와 Y 두 개의 입력이 있다고 하자. (이는 부울 함수의 X, Y 항이다.)

이 두개의 입력의 조합 방법은 2^2=4가지 경우다.

다음과 같다.(X' 는 X의 보수를 뜻한다.)

XY

X'Y

XY'

X'Y'

위 항들이 최소항이다.

논리 곱에 대한 조합 방법이라 생각하면 된다.

이는 디지털 논리 게이트에서 입력단에서 들어오는 신호가 X와 Y 두개이고 이를 조합해서 입력할 수 있는 신호의 조합을 나타낸 것이다.


그렇다면 최대항은?

논리 합에 대한 조합 방법이다.

X + Y

X' + Y

X + Y'

X' + Y'

마찬가지로 4가지 방법의 입력단의 신호 조합이 있고, 더 이상의 조합 방법이 없다.

위 항들은 최대항들을 나타낸다.

'최대항은 최소항에 대해서 보수관계를 지닌다'라고만 알아 놓고,

우선은 최소항에 대한 것만 생각하자.


여기서, 우리는 위 항들을 계산식이라고 생각하면 안된다. 이 부분에서 많이 혼동될 수 있다.

우리는 이를 입력단의 신호로 생각해야 한다.

XY 는 X=1, Y=1 의 신호를 나타내는 것이고

X'Y는 X=0, Y=1 의 신호

....

이 신호들의 조합은 차례대로 십진수의 1,2,3,4로 나타낼 수도 있다.




이런 식으로 어떤(분석하기 원하는)부울 함수에 대해서 조합 가능한 모든 신호를 대입한다.

그래서 최소항에 대한 값이 1인지 0인지 그 결과값을 진리표로 나타낸다. 물론, 결과값은 부울식에 따라서 다르게 된다. 그래서 여기서는 ?로 나타내었다.)

이 진리표를 토대로 맵에 그린 것이 카노 맵이다.

(X,Y 에 대한 부울식은 조합 가능 신호 4가지, X,Y,Z 인 경우 조합 가능 신호 2^3=8가지)

그리고 이런 입력 신호에 대한 결과 값을 토대로 카노맵을 그려 그 부울함수를 간략화 할 수 있는 것이다.

간략화 하는 방법은 여기서는 생략하고 다음에 카노맵에대한 

카노맵은 다음과 같은 녀석이다.

아래는 3개의 변수 X,Y,Z에 대한 카노맵이다.

카노맵카노맵

조금만 주의깊게 보면 X와 Y 그리고 Z의 신호에 대한 진리표를 맵으로 나타낸 것임을 알 수 있다.


대략 최소항이 왜 카르노맵과 연관되는지 알 수 있을 것이다.


카르노맵을 그릴 땐 순서를 주의해야한다.

YZ 의 경우 아래 그림 처럼 00->01->11->10 으로 0자리부터 순서대로 하나의 숫자만 변하도록 적는다.(예> 01->10은 두 자리가 모두 변한 것)

4개의 변수를 사용하여 카르노맵을 그릴 때도 이 법칙에 맞게 그린다.

그래서 실제 10진수에 대응되는 맵의 순서는 다음과 같다.

위 값들은 X,Y,Z에 대한 부울 함수식에 따라서 1또는 0의 값의 가지게 된다.

다시 정리해보면, 각 칸들은 최소항을 나타내고, 이 최소항들은 부울 함수 식에 따라서 각각 0 또는 1의 값을 갖게 되는 것이다.


다음은 어떤 부울 함수의 최소항에 대한 진리표다.


부울함수 F에 대한진리표부울함수 F에 대한진리표


원래의 부울함수는 F = X'Y'Z + X'YZ + XY'Z + XY'Z + XYZ 라고도 나타낼 수 있다.(동치)

이를 카르노맵 상에 나타내보자



위와 같은 모양이 된다.


각 구역은 위와 같이 나뉘어진다.

표시가 안된 부분은 X', Y' Z' 지역으로 보수 관계이다.

위 표에서 1이 표시된 구역은 Z 로 나타낼 수있다.

F=Z 가 된다.

이는 카르노맵의 간략화 방법이다.

원래의 부울함수가 어떤 모양이든 최소항의 진리표를 이용하여 F=Z로 간략화를 한 것이다.


최소항들을 묶어서 하나의 항으로 만드는 방법은 규칙이 있다.


서로 이웃한 항(대각선은 이웃이 아님)을 묶되, 묶는 수는 1,2,4,8 항을 묶을 수 있다.

1항묶음->3개문자로 표현

2항묶음->2개문자로 표현

4항묶음->1개문자로 표현

8항묶음->값 1

위 그림은 4개 문자이므로 1개의 문자 Z로 표현된다.

위 그림을 2개씩 4가지 방법으로도 묶어서 3항 또는 4항으로 표현할 수 있다. 이 또한 같은 함수가 된다. 하지만 논리 게이트 낭비로 효율성 면에서 떨어질 거다.

그래서 크게 묶어야 한다.


그리고 겹쳐서 묶어도 상관은 없다.

카노맵에 대한 자세한 설명은 다음 시간에....

반응형