디지털 회로

반가산기와 전가산기

반가산기는 입력 비트 두 개를 더합니다. 전가산기는 여기에 아래 자리에서 올라온 올림수(Cin)까지 더합니다. 아래 회로는 반가산기 두 개와 OR 게이트로 전가산기를 구성한 예입니다.

반가산기 두 개와 OR 게이트로 구성한 전가산기

반가산기 두 개로 만든 전가산기 반가산기 1이 A와 B를 더해 S1과 C1을 만들고, 반가산기 2가 Cin과 S1을 더해 Sum과 C2를 만들며, C1과 C2를 OR하여 Cout을 얻습니다. Cin=0 A=0 B=0 A B S CO 반가산기 1 0 + 0 = 0 A B S CO 반가산기 2 0 + 0 = 0 S1=0 C1=0 C2=0 Sum=0 OR Cout=0
1단계 · 반가산기 1 (A + B)
2단계 · 반가산기 2 (S1 + Cin)
결과 · Cout Sum
ABCinS1C1C2SumCout10진수

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이 연결되어 있습니다.