与前一题相似 3bit为一组
代码错误:
module top_module(
input [399:0] a, b,
input cin,
output cout,
output [399:0] sum );
wire carry[100:0];
assign carry[0] = cin;
genvar i ;
generate for(i=0;i<400;i=i+4)
begin:bcd_loop
bcd_fadd b(a[i+3:i],b[i+3:i],carry[i/4],carry[(i/4)+1],sum[i+3:i]);
end
endgenerate
assign cout = carry[100];
endmodule
运行结果
error(15610):
No output dependent on input pin "b[0]" File: /home/h/work/hdlbits.11045176/top_module.v Line: 2
没有输出依赖b[0]管脚;
别人运行正确的代码:
module top_module(
input [399:0] a, b,
input cin,
output cout,
output [399:0] sum );
wire [399:0] cout_tmp;
bcd_fadd fadd(.a(a[3:0]), .b(b[3:0]), .cin(cin), .cout(cout_tmp[0]), .sum(sum[3:0]));
assign cout = cout_tmp[396];
generate
genvar i;
for(i = 4; i < 400; i = i + 4) begin : add
bcd_fadd fadd(.a(a[i+3:i]), .b(b[i+3:i]), .cin(cout_tmp[i-4]), .cout(cout_tmp[i]), .sum(sum[i+3:i]));
end
endgenerate
endmodule
找不出哪错了