Adder100i
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. To encourage you to actually instantiate full adders, also output the carry-out from each full adder in the ripple-carry adder. cout[99] is the final carry-out from the last full adder, and is the carry-out you usually see.
Module Declaration
module top_module(
input [99:0] a, b,
input cin,
output [99:0] cout,
output [99:0] sum );
Hint…
There are many full adders to instantiate. An instance array or generate statement would help here.
Write your solution here
My solution
module top_module(
input [99:0] a, b,
input cin,
output [99:0] cout,
output [99:0] sum );
integer i;
always @(*) begin
cout[0]=a[0]&b[0] | a[0]&cin |cin&b[0];
for(i=1;i<100;i++) begin
cout[i]=cout[i-1]&a[i] | cout[i-1]&b[i] | a[i]&b[i];
end
sum=a+b+cin;
end
endmodule