회로설계 공부/기초 디지털회로

[기초 논리 회로] 진리표를 활용한 논리 회로 구현과 카르노맵(Karnaugh-Map)에 대해 알아보자

회공디 2022. 3. 6. 21:43

우리는 논리 회로를 통해 원하는 동작을 구현하려고 한다.

가장 쉽게 활용할 수 있는 방법은 내가 원하는 결과의 진리표를 작성한 후 이를 풀어내는 과정이다.

 

 

진리표를 활용한 논리회로 구현

진리표를 활용해 논리회로를 구현하기 위해 2 변수 논리회로, 3변수 논리회로를 예시로 설명한다.

 

1) 2변수 진리표

아래 표는 내가 원하는 결과를 이끌어낼 진리표이다. A, B가 입력이고 F가 출력이다.

임의의 2변수 진리표

 

위의 진리표를 확인하면 F=A'B'+AB'+AB의 논리식으로 나타낼 수 있다.

이 논리식을 간소화하기 위해 식을 정리하면 F=A'B'+A(B'+B) = A'B' + A의 논리식으로 정리할 수 있다.

 

 

2) 3 변수 진리표

아래 표는 내가 원하는 결과를 이끌어낼 진리표이다. A, B가 입력이고 F가 출력이다.

임의의 3변수 진리표

 

위의 진리표를 확인하면 F=A'B'C+A'BC+AB'C+ABC'+ABC의 논리식으로 나타낼 수 있다.

이 논리식을 간소화하기 위해 식을 정리하면 F=A'B'C + AB'C + A'BC + ABC + ABC' = (A'+A) B'C + (A'+A) BC + ABC' = B'C + BC + ABC' = (B'+B) C + ABC' = C + ABC'의 논리식으로 정리할 수 있다.

 

이렇게 진리표를 활용하면 우리가 원하는 논리회로를 쉽게 구현할 수 있다. 그러나 이때 우리가 구현해낸 논리식이 과연 가장 최소화된 식이라고 얘기할 수 있을까? 위에서 진행한 것처럼 부울 대수의 정리와 법칙을 적용하여 최소화할 수 있지만 직접 간략화하기 때문에 숙련도가 부족하다면 가장 최소화된 식이라고 장담하기는 힘들다. 카르노 맵을 이용하면 더 직관적이고 간단하게 논리식을 간소화할 수 있다.

 

 

카르노맵을 활용한 논리회로 구현

카르노 맵을 이용 하여 논리회로를 구현하기 위해 위에서 사용했던 예시들을 사용하자.

카르노 맵을 작성할 때는 진리표와 마찬가지로 입력에 대한 각각의 출력 F를 적으면 된다.

 

1) 2 변수 카르노 맵

위에서 사용한 진리표에 대한 카르노 맵은 다음과 같이 작성할 수 있다.

임의의 2변수 진리표

 

임의의 2변수 카르노맵

 

위의 카르노 맵에서 인접한 F가 1인 것들을 묶어낸다. 인접한 1 끼리 직사각형 형태로 2n개씩 묶어내야 한다.

인접한 1을 가진 항끼리 묶어낸 모습

빨간색으로 묶은 부분을 간략화하면 A'B'+AB' = (A'+A) B' = B'이다.

보라색으로 묶은 부분을 간략화하면 AB'+AB = A(B'+B) = A이다.

결론적으로 위의 결과를 사용해 식을 간략화하면 F=A+B'이 된다.

처음에 진리표를 사용했던 결과와 비교해보자.

같은 진리표에 대한 논리식의 차이

 

두 방법을 활용했을 때 결과가 다르게 나온다. 이는 진리표에서 우리가 미처 간략화하지 못한 부분이 있다는 뜻이다.

다음은 3 변수 카르노 맵에 대해서 알아보자.

 

 

2) 3변수 카르노맵

위에서 사용한 진리표에 대한 카르노 맵은 다음과 같이 작성할 수 있다.

임의의 3변수 진리표

 

임의의 3변수 카르노 맵

 

이번 3 변수 카르노 맵은 위에서 사용했던 2 변수와 마찬가지 형태이다. 다만 주의 깊게 보아야 할 점은 BC로 적혀있는 입력항이 00,01,11,10으로 쓰여있다는 것이다. 이는 인접항을 묶어주기 편리하게 하기 위해서이다. BC항이 01,10으로 인접하여 적혀있다면 공통항이 없어 불편하기 때문이다.

빨간색으로 묶은 부분을 간략화하면 ABC+ABC' = AB(C+C') = AB이다.

보라색으로 묶은 부분을 간략화하면 A'B'C+AB'C+A'BC+ABC = (A'+A) B'C+(A'+A) BC = B'C + BC = (B'+B) C = C이다.

결론적으로 위의 결과를 사용해 식을 간략화하면 F=AB+C이 된다.

처음에 진리표를 사용했던 결과와 비교해보자.

같은 진리표에 대한 논리식의 차이

 

이렇게 기본적인 논리회로, 복잡하지 않은 논리회로를 구성할 때는 카르노 맵을 사용하는 편이 논리회로 간략화에 많은 도움이 된다.

반응형