반가산기와 전가산기
반가산기는 입력 비트 두 개를 더합니다. 전가산기는 여기에 아래 자리에서 올라온 올림수(Cin)까지 더합니다. 아래 회로는 반가산기 두 개와 OR 게이트로 전가산기를 구성한 예입니다.
반가산기 두 개와 OR 게이트로 구성한 전가산기
| A | B | Cin | S1 | C1 | C2 | Sum | Cout | 10진수 |
|---|
A, B, Cin 버튼을 누르면 각 입력이 0과 1 사이에서 바뀝니다. 값이 1인 배선은 주황색으로 표시되며, 진리표에서 현재 입력에 해당하는 행을 확인할 수 있습니다.
반가산기는 두 비트의 합과 올림수를 계산합니다
두 1비트 입력을 더한 결과를 2비트 이진수로 나타내면 0+0=00, 0+1=01, 1+0=01, 1+1=10입니다. 결과의 아랫자리 S는 두 입력이 다를 때만 1이므로 XOR로 계산합니다. 올림수 C는 두 입력이 모두 1일 때만 1이므로 AND로 계산합니다.
S = A ⊕ B
C = A · B
반가산기에는 아래 자리에서 올라오는 올림수를 받을 입력이 없습니다. 여러 자리의 덧셈 회로를 만들 때는 입력 올림수가 필요 없는 가장 낮은 자리에 반가산기를 사용할 수 있습니다.
전가산기는 아래 자리의 올림수도 함께 더합니다
전가산기는 A, B, Cin 세 입력을 더합니다. 이때 세 입력은 모두 같은 자리의 값을 나타냅니다. 먼저 반가산기 1이 A와 B를 더해 합 S1과 올림수 C1을 계산합니다. 이어서 반가산기 2가 S1과 Cin을 더해 최종 합 Sum과 올림수 C2를 계산합니다.
두 단계 중 어느 한쪽에서 올림이 생기면 다음 자리로 1을 넘겨야 합니다. 따라서 C1과 C2를 OR한 값이 최종 올림수 Cout입니다. C1이 1이면 S1은 0이므로 C2가 1이 될 수 없습니다. 두 올림수가 동시에 1이 되는 경우는 없습니다.
그림 속 각 반가산기에 적힌 A와 B는 해당 반가산기의 입력 단자 이름입니다. 반가산기 2의 A 단자에는 Cin이, B 단자에는 반가산기 1에서 계산한 S1이 연결되어 있습니다.