1. 문제 및 설명
- 리플 캐리 가산기의 단점 중 하나는 캐리 전파 지연입니다. 첫 번째 단계의 가산기는 캐리 입력으로부터 캐리 출력을 계산하기까지 시간이 오래걸리고, 두 번째 단계 가산기는 첫번째 단계가 끝날 때까지 캐리 출력을 계산할 수 없습니다.이 때문에 전체 가산기가 느려 집니다.
- 이를 개선한 방식이 캘리 셀렉트 방식이며, 두 번째 단계의 결과 중 맞는 값만 빠르게 선택하기 위해서 MUX를 사용합니다.
- <module add16 ( input [15:0] a, input [15:0] b, input cin, output [15:0] sum, output cout);> 이 제공될 때 이 모듈을 세 번 인스턴스화 하여 아래 모듈을 설계하세요.

2. 모듈 정의
module top_module(
input [31:0] a,
input [31:0] b,
output [31:0] sum
);
3. 답
module top_module(
input [31:0] a,
input [31:0] b,
output [31:0] sum
);
wire cout, trash;
wire [31:16] temp0, temp1;
add16 i0 ( a[15:0], b[15:0], 1'b0, sum[15:0], cout);
add16 i1 ( a[31:16], b[31:16], 1'b0, temp0[31:16], trash);
add16 i2 ( a[31:16], b[31:16], 1'b1, temp1[31:16], trash);
assign sum[31:16] = cout?temp1[31:16]:temp0[31:16];
endmodule'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Alwaysblock1 (0) | 2025.11.18 |
|---|---|
| [HDLBits] Module addsub (0) | 2025.11.18 |
| [HDLBits] Module fadd (0) | 2025.11.18 |
| [HDLBits] Module add (0) | 2025.11.02 |
| [HDLBits] Module shift8 (0) | 2025.11.02 |