조합논리회로
는 NOT, AND, OR
의 세 가지 기본 논리회로의 조합으로 구성된 논리회로이며, 입력신호, 논리게이트, 출력신호로 구성됩니다.
2진 데이터를 입력받아서 원하는 2진 출력 데이터를 얻습니다.
가산기 adder
는 조합논리회로에서 가장 기본적인 장치입니다.
반가산기 half-adder
는 한자리 2진수 2개를 입력받아 합 S
와 캐리 C
를 계산하는 조합논리회로입니다. 반가산기에서 캐리 C
는 입력 A, B가 모두 1인 경우에만 1이되고 합 S
는 입력 A, B 둘 중 하나만 1인 경우에 1이 됩니다.
다음은 반가산기의 진리표와 구조입니다.
입력 A | 입력 B | S | C |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
반가산기는 2진수 한자릿수 덧셈을 수행하므로 아랫자리에서 올라온 캐리를 고려하여 계산할 수가 없습니다. 이러한 문제를 해결하고자 아랫자리의 캐리를 고려해 만든 조합논리회로가 전가산기 full-adder
입니다.
전가산기
는 입력 A, B 그리고 아랫자리에서 올라온 캐리 C-in을 포함한 한 자릿수 2진수 3개를 조합하는 회로입니다.
다음은 반가산기의 진리표와 구조입니다.
입력 A | 입력 B | C-in | S | C-out |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
회로를 보면 알 수 있지만, 전가산기는 반가산지 2개와 OR 게이트 하나로 구성할 수 있습니다.
전가산기를 병렬로 연결하면 2비트 이상의 계산을 하는 가산기를 만들 수 있으며 이를 병렬가산기
라고 합니다. 병렬 가산기에서 최하위 비트가 받는 캐리의 값은 0으로 고정합니다.
이때 병렬가산기의 입력 B들을 부호와 XOR 연산
을 하여 입력으로 사용하면 덧셈과 뺄셈이 모두 가능한 병렬감가산기
가 됩니다.
비교기 comparator
는 두 2진수 값의 크기를 비교하는 회로입니다.
1비트 비교기의 회로와 진리표는 다음과 같습니다.
입력 A | 입력 B | 출력 E (A = B) | 출력 G (A > B) | 출력 S (A < B) |
---|---|---|---|---|
0 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 |
2비트 비교기의 회로와 진리표는 다음과 같습니다.
이미지 출처
https://www.geeksforgeeks.org/digital-logic/magnitude-comparator-in-digital-logic/
A1 | A0 | B1 | B0 | A<B | A=B | A>B |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 1 | 0 |