본문 바로가기

Verilog/HDLbits

[HDLBits] Module addsub

1. 문제 및 설명

  • 리플 캐리 가산기의 단점 중 하나는 캐리 전파 지연입니다. 첫 번째 단계의 가산기는 캐리 입력으로부터 캐리 출력을 계산하기까지 시간이 오래걸리고, 두 번째 단계 가산기는 첫번째 단계가 끝날 때까지 캐리 출력을 계산할 수 없습니다.이 때문에 전체 가산기가 느려 집니다.
  • 아래 그림과 같은 가감기 회로를 구성하세요.
  • <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,
    input sub,
    output [31:0] sum
);

 

 

 

3. 답

module top_module(
    input [31:0] a,
    input [31:0] b,
    input sub,
    output [31:0] sum
);
    wire cout, trash;
    wire [31:0] sub_b;
    add16 i0 ( a[15:0], sub_b[15:0], sub, sum[15:0], cout);
    add16 i1 ( a[31:16], sub_b[31:16], cout, sum[31:16], trash);
    
    assign sub_b[31:0] = b[31:0]^{32{sub}};
    
endmodule
 

'Verilog > HDLbits' 카테고리의 다른 글

[HDLBits] Alwaysblock2  (0) 2025.11.18
[HDLBits] Alwaysblock1  (0) 2025.11.18
[HDLBits] Module cseladd  (0) 2025.11.18
[HDLBits] Module fadd  (0) 2025.11.18
[HDLBits] Module add  (0) 2025.11.02