13 / 36 · 개념
반가산기와 전가산기
합과 자리올림을 따로 계산하고 연결합니다.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
학습 목표
- 합과 자리올림의 폭을 구분합니다.
- 전가산기를 연결하는 원리를 설명합니다.
1+1은 두 비트의 결과입니다.
반가산기는 a와 b를 더해 sum=a^b, carry=a&b를 만듭니다. 입력 1과 1의 합은 이진수 10이므로 sum=0, carry=1입니다.
전가산기는 이전 자리에서 온 cin까지 더합니다. sum=a^b^cin이고 cout=(a&b)|(a&cin)|(b&cin)입니다. 세 입력 중 둘 이상이 1이면 자리올림이 생깁니다.
assign sum = a ^ b ^ cin;
assign cout = (a & b) | (a & cin) | (b & cin);입력을 바꿔 확인하기
자리올림을 다음 비트로 연결합니다.
여러 전가산기를 연결하면 비트 0의 cout이 비트 1의 cin이 됩니다. 최상위 자리올림까지 저장하려면 N비트 입력 둘에 대해 N+1비트 결과가 필요합니다.
폭을 분명히 하려면 assign total = {1'b0, a} + {1'b0, b};처럼 두 입력을 먼저 확장하세요. 자리올림이 차례로 전달되는 구조에는 실제 지연이 있으며 이 수식만으로 속도를 검증할 수 없습니다.
직접 생각해 보기
a=1, b=0, cin=1의 sum과 cout은 무엇인가요?
해설 보기
합은 2이므로 이진수 10, sum=0, cout=1입니다.
✓ 학습 완료