Binary Multiplier는 이진수 두 개를 곱하는 조합 논리 회로(Combinational Logic Circuit) 다.
기본 개념은 우리가 아는 십진수 곱셈과 완전히 동일하다.
다만, 덧셈과 자리올림이 2진법(0,1) 로 처리된다는 점만 다르다.
즉,
이진 곱셈 = Partial Product(부분곱) 생성 + 이진 덧셈의 반복
이진 곱셈의 기본 원리
십진수 곱셈과 마찬가지로,
이진수에서도 각 자리의 곱을 계산하고,
자리 수에 따라 쉬프트(Shift)한 뒤 모두 더하면 된다.
| 곱셈 | 규칙결과 |
| 0 × 0 | 0 |
| 0 × 1 | 0 |
| 1 × 0 | 0 |
| 1 × 1 | 1 |
즉, 이진 곱셈은 AND 연산과 동일하다.
그래서 실제 회로에서도 AND 게이트로 부분곱을 만든다.
2비트 × 2비트 곱셈 예제
예를 들어,
이라면, 계산 과정은 다음과 같다.
즉, 2비트 × 2비트 → 최대 4비트 결과가 나온다.
일반화된 구조 (n × n 비트 곱셈)
두 n비트 이진수를 곱하면 결과는 2n비트가 된다.
곱셈의 핵심 단계는 다음과 같다:
- Partial Product(부분곱) 생성
- 곱셈 피연산자 A의 각 비트와
곱셈자 B의 각 비트를 AND 연산. - n×n개의 AND 게이트가 필요함.
- 곱셈 피연산자 A의 각 비트와
- Shift 연산
- B의 자리 수에 따라 각 부분곱을 왼쪽으로 쉬프트.
- 덧셈(Adder)
- 모든 부분곱을 더함 (반가산기, 전가산기 사용).
4비트 Binary Multiplier의 구조
예를 들어,
이라면,
부분곱(Partial Products)
각 B의 비트와 A를 AND한 결과 :
| B의 비트 | 부분곱 (AND 결과) | 쉬프트 위치 |
| B₀ | A3A2A1A0·B₀ | 0 |
| B₁ | A3A2A1A0·B₁ | 1 bit left |
| B₂ | A3A2A1A0·B₂ | 2 bits left |
| B₃ | A3A2A1A0·B₃ | 3 bits left |
이 네 줄의 부분곱을 더하면 최종 결과가 나온다.
즉,
회로 구성
일반적인 Binary Multiplier 회로는 다음 블록으로 구성된다.
- AND Array: A의 각 비트와 B의 각 비트를 AND → 부분곱 생성
- Adder Array: 각 부분곱을 더해서 최종 결과 도출
- 출력: 2n 비트 결과 (가장 상위 비트는 자리올림)
Binary Multiplier의 종류
(1) Array Multiplier (행렬 곱셈기)
가장 기본적인 구조.
부분곱을 모두 한 번에 생성하고 병렬로 더하는 방식.
구조가 단순하지만 게이트 수가 많음.
(2) Booth Multiplier (부스 곱셈기)
음수 표현이 가능한 2의 보수(Binary Complement) 기반 곱셈.
시프트와 덧셈/뺄셈을 조합해 곱셈 횟수를 줄임.
→ 속도와 효율이 좋음 (특히 부호 있는 수).
(3) Sequential Multiplier (순차 곱셈기)
부분곱을 한 번에 하나씩 계산하고 더하는 방식.
하드웨어는 간단하지만 시간이 오래 걸림.
→ 마이크로컨트롤러나 저전력 회로에서 자주 사용.
예시: 4비트 Array Multiplier의 계산 예
① 부분곱 생성
② 부분곱 더하기
결과: 11 × 13 = 143, 정확함.
Binary Multiplier의 장단점
| 구분 | 장점 | 단점 |
| Array Multiplier | 병렬 처리로 빠름 | 게이트 수 많음 |
| Sequential Multiplier | 하드웨어 간단 | 속도 느림 |
| Booth Multiplier | 음수 포함 가능, 효율적 | 설계 복잡 |
정리
| 항목 | 설명 |
| 기본 원리 | 부분곱 생성 후 이진 덧셈 |
| 핵심 연산 | AND, SHIFT, ADD |
| 출력 비트수 | 입력 비트의 합 (n + n → 2n) |
| 대표 구조 | Array, Booth, Sequential |
| 응용 분야 | CPU ALU, DSP, 신호처리, 그래픽 연산 등 |
Binary Multiplier는 두 이진수를 곱하기 위해
각 비트 간 AND 연산으로 부분곱을 만들고,
이를 시프트·덧셈하여 최종 곱을 구하는 조합 논리 회로이다.
'ELECTRONIC' 카테고리의 다른 글
| Sequential Circuit(순차 회로) (0) | 2017.07.05 |
|---|---|
| Decoder / Encoder (0) | 2017.07.05 |
| Decimal Adder(십진 가산기) (0) | 2017.07.05 |
| Quine–McCluskey Method (카르노 맵의 대안적 논리식 최소화 방법) (0) | 2017.07.05 |
| 카르노 맵(Karnaugh Map) (0) | 2017.07.05 |