Create a 100-bit binary ripple-carry adder by instantiating 100 full adders. The adder adds two 100-bit numbers and a carry-in to produce a 100-bit sum and carry out.
I.
module top_module(
input [99:0] a, b,
input cin,
output [99:0] cout,
output [99:0] sum );
integer i;
always @ (*) begin
for(i = 0; i < 100; i = i + 1) begin
if(i == 0)
{cout[i],sum[i]} = a[i] + b[i] + cin;
else
{cout[i],sum[i]} = a[i] + b[i] + cout[i-1];
end
end
endmodule
II.
module top_module(
input [99:0] a,b,
input cin,
output [99:0] cout,
output [99:0] sum
);
generate
genvar i;
for(i = 0; i < 100; i = i + 1) begin:addr100
if(i == 0)
assign {cout[i],sum[i]} = a[i] + b[i] + cin;
//Error: {cout[i],sum[i]} = a[i] + b[i] + cin;
else
assign {cout[i],sum[i]} = a[i] + b[i] + cout[i-1];
//Error: {cout[i],sum[i]} = a[i] + b[i] + cout[i-1];
end
endgenerate
endmodule