우리는 논리 회로를 통해 원하는 동작을 구현하려고 한다.
가장 쉽게 활용할 수 있는 방법은 내가 원하는 결과의 진리표를 작성한 후 이를 풀어내는 과정이다.
진리표를 활용한 논리회로 구현
진리표를 활용해 논리회로를 구현하기 위해 2 변수 논리회로, 3변수 논리회로를 예시로 설명한다.
1) 2변수 진리표
아래 표는 내가 원하는 결과를 이끌어낼 진리표이다. A, B가 입력이고 F가 출력이다.
위의 진리표를 확인하면 F=A'B'+AB'+AB의 논리식으로 나타낼 수 있다.
이 논리식을 간소화하기 위해 식을 정리하면 F=A'B'+A(B'+B) = A'B' + A의 논리식으로 정리할 수 있다.
2) 3 변수 진리표
아래 표는 내가 원하는 결과를 이끌어낼 진리표이다. A, B가 입력이고 F가 출력이다.
위의 진리표를 확인하면 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 변수 카르노 맵
위에서 사용한 진리표에 대한 카르노 맵은 다음과 같이 작성할 수 있다.
위의 카르노 맵에서 인접한 F가 1인 것들을 묶어낸다. 인접한 1 끼리 직사각형 형태로 2n개씩 묶어내야 한다.
빨간색으로 묶은 부분을 간략화하면 A'B'+AB' = (A'+A) B' = B'이다.
보라색으로 묶은 부분을 간략화하면 AB'+AB = A(B'+B) = A이다.
결론적으로 위의 결과를 사용해 식을 간략화하면 F=A+B'이 된다.
처음에 진리표를 사용했던 결과와 비교해보자.
두 방법을 활용했을 때 결과가 다르게 나온다. 이는 진리표에서 우리가 미처 간략화하지 못한 부분이 있다는 뜻이다.
다음은 3 변수 카르노 맵에 대해서 알아보자.
2) 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이 된다.
처음에 진리표를 사용했던 결과와 비교해보자.
이렇게 기본적인 논리회로, 복잡하지 않은 논리회로를 구성할 때는 카르노 맵을 사용하는 편이 논리회로 간략화에 많은 도움이 된다.
'회로설계 공부 > 기초 디지털회로' 카테고리의 다른 글
[기초 논리 회로] 부울 대수의 정리와 법칙에 대해 알아보자. (0) | 2022.03.05 |
---|---|
[기초 논리 회로] 논리 연산자에 대하여 알아보자 (0) | 2022.03.04 |