전가산기 구조와 다중 비트 이진 덧셈 회로

전가산기의 논리식, 구현 방식, 다중 비트 가산기 구조와 ALU·곱셈기·비교기 활용을 정리한다.

2026-08-14 · 최초 발행 2026-01-16

캐리 입력을 처리하는 1비트 덧셈 회로

전가산기(Full Adder)는 두 입력 비트와 하위 자릿수에서 전달된 캐리 입력을 함께 계산한다. 입력 A, B, Cin으로부터 합 비트 Sum과 상위 자릿수로 전달할 Cout을 만든다. 반가산기가 두 비트의 덧셈만 담당하는 것과 달리, 전가산기는 캐리를 이어받을 수 있어 다중 비트 가산기를 구성할 수 있다.

입출력의 역할은 다음과 같다.

  • A: 피가수(Augend)의 해당 비트
  • B: 가수(Addend)의 해당 비트
  • Cin: 하위 자릿수에서 넘어온 캐리 입력(Carry In)
  • Sum: 해당 자릿수의 합
  • Cout: 상위 자릿수로 전달하는 캐리 출력(Carry Out)

반가산기와 전가산기의 차이는 캐리 입력의 유무다.

구분 반가산기 전가산기
입력 수 2개 (A, B) 3개 (A, B, Cin)
출력 수 2개 (S, C) 2개 (Sum, Cout)
캐리 입력 없음 있음
다중 비트 가산 불가 가능
사용 위치 LSB(최하위 비트) 모든 비트 위치
전가산기AFABCinSumCout반가산기AHABSC

Sum과 Cout을 결정하는 조건

입력 조합에 따른 전가산기의 출력은 아래와 같다.

A B Cin Sum Cout
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

Sum이 1이 되는 항을 곱의 합(SOP) 형태로 쓰면 다음과 같다.

Sum = A'B'Cin + A'BCin' + AB'Cin' + ABCin

이를 정리하면 Sum은 세 입력의 XOR 결과가 된다.

Sum = A ⊕ B ⊕ Cin

Cout이 1이 되는 조건은 다음과 같이 표현할 수 있다.

Cout = A'BCin + AB'Cin + ABCin' + ABCin

간소화한 식은 다음과 같다.

Cout = AB + Cin(A ⊕ B) 또는 Cout = AB + BCin + ACin

따라서 Cout은 세 입력 가운데 두 개 이상이 1일 때 1이 되는 다수결 함수다.

Cout 논리A · BORA B· CinCoutSum 논리A B(A B) CinSum

반가산기를 조합해 만드는 전가산기

전가산기는 두 반가산기와 OR 게이트 하나로 구성할 수 있다. 첫 반가산기가 A와 B를 더해 S1, C1을 만들고, 다음 반가산기가 S1과 Cin을 더해 Sum, C2를 생성한다. 마지막으로 C1과 C2를 OR 연산해 Cout을 얻는다.

A반가산기 1BS1C1반가산기 2CinSumC2ORCout

이 구성에서 반가산기 1개는 XOR 1개와 AND 1개를 사용한다. 전가산기는 XOR 2개, AND 2개, OR 1개로 모두 5개 게이트가 필요하다.

NAND 게이트만으로도 전가산기를 구현할 수 있다. 최적화된 NAND 구현은 9개의 NAND 게이트로 구성할 수 있으며, CMOS 기술에서 NAND 게이트가 효율적이어서 실제 IC 설계에 많이 사용된다.

CMOS 전송 게이트(Transmission Gate)를 이용하는 방식도 있다. 트랜지스터 수와 전력 소모를 줄이고 전파 지연을 빠르게 할 수 있지만, 신호 레벨 저하 가능성과 버퍼 필요성을 함께 고려해야 한다.

캐리 전달 방식이 가산기 성격을 바꾼다

전가산기를 연결하면 n비트 가산기를 만들 수 있다. 단, 각 비트에서 나온 캐리를 어떤 방식으로 다음 연산에 반영하는지에 따라 속도와 회로 복잡도가 달라진다.

리플 캐리 연결

리플 캐리 가산기는 각 전가산기의 Cout을 다음 전가산기의 Cin으로 직렬 연결하는 가장 단순한 구조다. LSB의 Cin은 0이며, 뺄셈에서는 1이 될 수 있다. MSB의 Cout은 오버플로우 검출에 사용한다.

회로는 단순하지만 캐리 전파 지연이 누적된다. n비트 덧셈의 최악 지연은 n × (전가산기 지연)이다.

4비트 리플 캐리 가산기0FA0A0B0S0C1FA1A1B1S1C2FA2A2B2S2C3FA3A3B3S3Cout

캐리를 미리 계산하는 룩어헤드

캐리 룩어헤드 가산기(CLA)는 캐리를 병렬 계산해 전파 지연을 줄인다. 이 구조는 각 비트에서 캐리를 생성하는지와 캐리가 통과하는지를 다음처럼 정의한다.

  • 생성(Generate): G = AB
  • 전파(Propagate): P = A ⊕ B

캐리 방정식은 다음과 같다.

  • C1 = G0 + P0·C0
  • C2 = G1 + P1·G0 + P1·P0·C0
  • C3 = G2 + P2·G1 + P2·P1·G0 + P2·P1·P0·C0
  • C4 = G3 + P3·G2 + P3·P2·G1 + P3·P2·P1·G0 + P3·P2·P1·P0·C0

리플 캐리와 비교하면 지연은 O(n)에서 O(log n)으로 달라진다. 반면 룩어헤드 구조는 회로 복잡도, 면적, 전력이 더 높다.

구분 리플 캐리 캐리 룩어헤드
지연 O(n) O(log n)
회로 복잡도 낮음 높음
면적 작음
전력 낮음 높음
계산캐리 룩어헤드 로직A, B 입력G, P 생성캐리 룩어헤드 유닛C0C1, C2, C3, C4Sum = P Cin

캐리 후보를 병렬로 두는 선택 구조

캐리 선택 가산기는 Cin=0과 Cin=1의 결과를 모두 미리 계산하고, 하위 블록의 Cout이 도착하면 그에 맞는 결과를 선택한다. 상위 비트 블록을 중복 계산하는 구조라 중간 수준의 속도와 면적을 가지며, 모듈형 설계에 적합하다. 리플 캐리보다 빠르고 CLA보다 단순하다.

캐리를 전달하지 않고 저장하는 구조

캐리 저장 가산기는 세 개 이상의 수를 더할 때 캐리를 즉시 전파하지 않고 저장한다. 곱셈기의 부분 곱 누적, 다중 피연산자 덧셈, 디지털 신호 처리에서 활용된다.

ALU와 산술 회로에서의 활용

ALU에서는 Cin과 입력 B의 표현을 조절해 덧셈 외 연산에 전가산기 배열을 이용한다.

  • 덧셈: Cin = 0
  • 뺄셈: B의 2의 보수 + Cin = 1
  • 증가: A + 0 + Cin = 1
  • 감소: A + FFh + Cin = 0 (2의 보수 체계)

전가산기 로직은 산술 연산과 논리 연산을 통합한 ALU 설계에서도 재활용할 수 있다.

곱셈기에서는 부분 곱을 만든 뒤 전가산기 배열로 누적한다. 배열 곱셈기는 이 배열을 사용하며, 월리스 트리는 캐리 저장 가산기를 트리 구조로 배치해 부분 곱을 빠르게 누적한다.

비교기에서도 뺄셈 결과를 이용할 수 있다. A - B의 결과 부호와 오버플로우로 대소 관계를 판단하고, A ⊕ B의 모든 비트가 0인지 또는 뺄셈 결과가 0인지를 확인해 동등성을 검사한다.

전가산기 응용전가산기 배열덧셈/뺄셈ALU 산술부곱셈기부분곱 누적비교기크기/동등 비교주소 계산메모리 접근

지연, 면적, 전력을 다루는 설계 선택

전가산기에서 가장 긴 지연 경로는 Cin에서 Cout으로 이어지는 캐리 경로다. 캐리 경로 로직을 줄이고, XOR 구현을 빠르게 하며, 트랜지스터 사이징을 조정하는 방식으로 지연을 최적화할 수 있다.

면적을 줄일 때는 Sum과 Cout이 공유할 수 있는 중간 결과를 재사용한다. A ⊕ B 결과는 두 출력 계산에 모두 사용할 수 있다. CMOS의 미러 가산기는 면적 효율을 고려한 전가산기 구현으로, 약 28개의 트랜지스터로 구성 가능하다.

전력 측면에서는 경로 균형으로 글리치를 줄이고 클록 게이팅으로 불필요한 스위칭을 막는다. 문턱 전압 최적화와 다중 임계 전압 셀 사용은 저전압 동작을 위한 방법이다.

기능과 타이밍을 함께 확인한다

전가산기는 2^3 = 8개의 입력 조합을 모두 검사할 수 있으므로 기능을 완전 검증할 수 있다. 논리식 등가성을 수학적으로 증명하는 형식 검증도 설계 정확성을 보장하는 방법이다.

타이밍 검증에서는 정적 타이밍 분석으로 모든 경로의 지연이 요구 사항을 충족하는지 계산한다. 실제 게이트 지연을 포함한 시뮬레이션은 글리치와 레이스 조건을 검출하는 데 사용된다.

전가산기조합논리회로컴퓨터구조이진 덧셈ALU