module top_module(
input [399:0] a, b,
input cin,
output cout,
output [399:0] sum );
wire [99:0] temp;
bcd_fadd add0(a[3:0],b[3:0],cin,temp[0],sum[3:0]);
genvar i;
generate
for(i=4;i<400;i=i+4) begin: add45
bcd_fadd add1(a[i+3:i],b[i+3:i],temp[(i>>2)-1],temp[i>>2],sum[i+3:i]);
end
endgenerate
assign cout = temp[99];
endmodule