#HDLBits程序提问 ,不知道哪里编写出了问题,求解答!
所做题位置:Verilog language-Modules:Hierarchy-Carry-select adder
题目描述:
所写程序:
module top_module(
input [31:0] a,
input [31:0] b,
output [31:0] sum
);
wire cout1,cout2;
wire [15:0]sum1;
wire [15:0]sum2;
//wire [15:0]sum3
add16 u1(
.a(a[15:0]),.b(b[15:0]),.cin(1'b0),.sum(sum[15:0]),.cout(cout1)
);
add16 u2(
.a(a[31:16]),.b(b[31:16]),.cin(1'b0),.sum(sum1),.cout(cout2)
);
add16 u3(
.a(a[31:16]),.b(b[31:16]),.cin(cout2),.sum(sum2),.cout()
);
always@(*)begin
case(cout1)
1'b0:begin sum[31:16]=sum1; end
1'b1:begin sum[31:16]=sum2; end
endcase
end
endmodule
输出结果与答案对比:
不知道为什么后面两个输出不对,很疑惑。