题目比较简单,这是单纯为了消除delay而设计的一种加法器的结构
module top_module(
input [31:0] a,
input [31:0] b,
output [31:0] sum
);
wire cout1,cout2,cout3;
wire [15:0] sum1,sum2,sum3,sum4;
//module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );
add16 u_add16_low(a[15:0],b[15:0],0,sum1,cout1);
add16 u_add16_upp1(a[31:16],b[31:16],0,sum2,cout2);
add16 u_add16_upp2(a[31:16],b[31:16],1,sum3,cout3);
assign sum4 = (cout1 == 0)?sum2:sum3;
assign sum = {sum4,sum1};
endmodule