본문 바로가기

ELECTRONIC

Decimal Adder(십진 가산기)

반응형

Decimal Adder(십진 가산기)는 두 개의 십진수(Decimal number)를 BCD(Binary-Coded Decimal) 형태로 더하는 조합 논리 회로다.
즉, 각 자리의 10진 숫자를 4비트 이진수로 표현한 뒤, 이진 덧셈(Binary addition) 을 수행하고,
결과가 10(1010₂) 이상일 때 보정(Correction) 을 해주는 구조다.


BCD(8421) 코드란?

BCD(Binary-Coded Decimal)는 10진수 하나(0~9)를 4비트로 표현한 코드다.

10진수 BCD(8421)
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

기본 동작 원리

두 개의 BCD 숫자를 더할 때 다음과 같은 절차로 동작한다.

Step 1 — 이진 덧셈 수행

두 4비트 BCD 숫자(예: 0101 + 0111)를 이진 가산기(Full Adder) 로 더한다.

  0101 (5)
+0111 (7)
----------
  1100 (12)

→ 결과가 10 이상(1010₂ ~ 1111₂) 이므로, 이는 유효한 BCD 코드가 아니다.


Step 2 — 보정(Correction)

이진 결과가 10(1010₂) 이상이거나 올림수(Carry)가 발생한 경우,
BCD를 보정하기 위해 6(0110₂) 을 더해준다.

즉,

Corrected Sum = Binary Sum + 0110 (6)

예시 :

  1100 (12)
+0110 (6)
----------
1 0010

→ 결과: 0010 (2) + 자리올림 1
즉, 12(=1×10 + 2) 로 올바른 BCD 표현이 된다.


보정 조건 (Correction Condition)

다음 두 경우 중 하나라도 참이면 보정을 수행해야 한다.

  1. 이진 합이 10 이상 (S3S2S1S0 ≥ 1010₂)
  2. 올림수 C_out = 1 (4비트 가산기에서 자리올림 발생)

즉,

Correction = C_out + (S3·S2) + (S3·S1)

가 1이면, 0110을 더한다.


 Decimal Adder 회로 구성

Decimal Adder는 두 개의 주요 블록으로 구성된다.

┌────────────────────┐
  │ 4-bit Binary │
│ Adder │
│ (A + B + Cin) │
└────────────────────┘
┌────────────────────┐
│ Correction Logic │ ← (S3S2S1S0, C_out 입력)
│ 조건 충족 시 +6
└────────────────────┘
┌────────────────────┐
2nd 4-bit Adder │ ← (Sum + 0110)
└────────────────────┘
  • 첫 번째 가산기: 두 BCD 숫자를 이진으로 더함
  • 보정 로직: 10 이상이면 +6
  • 두 번째 가산기: 보정값을 더해 최종 BCD 출력

예제

예제 1

 
A = 0101 (5)
B = 0111 (7)

① 이진 덧셈 → 1100 (12)
② 보정 필요 (≥ 1010)
③ +0110 → 1 0010
④ 결과: 0001 0010 (12)


예제 2

 
A = 0010 (2)
B = 0100 (4)

① 이진 덧셈 → 0110 (6)
② 10 미만 → 보정 불필요
③ 결과: 0110 (6)


여러 자리(2-digit 이상) 덧셈

여러 자리의 십진수를 더하려면 각 자리마다 Decimal Adder를 직렬로 연결한다.
각 자리의 Carry-out다음 자리의 Carry-in으로 전달된다.

 
[LSB 자리][MSB 자리]

이 구조는 실제 BCD 계산기디지털 시계 등의 하드웨어에서 그대로 사용된다.


요약

항목 설명
입력 두 개의 BCD 숫자 (각 4비트)
출력 한 자리 BCD 합 + 자리올림
보정값 6(0110₂)
보정 조건 (S ≥ 1010) or (Carry = 1)
핵심 기능 이진 덧셈 후 BCD 범위 초과 시 자동 보정

Decimal Adder는 BCD 형태의 십진수를 더할 때,
이진 합이 10 이상이면 자동으로 6(0110₂)을 더해 올바른 BCD 결과를 생성하는 조합 논리 회로다.

 

반응형