4 Bitgenadder
4 Bitgenadder
RTL Code:
module gen4adder(
a_in,
b_in,
c_in,
sum,
carry
);
parameter width = 4;
input [width-1:0] a_in, b_in;
input c_in;
output [width-1:0] sum;
output carry;
wire [width:0] c_sig;
genvar i;
generate
for (i = 0; i < width; i = i + 1)
begin : add_gen
full_adder_1 UUT(a_in[i], b_in[i], c_sig[i], sum[i],
c_sig[i+1]);
end
endgenerate
endmodule
Testbench Code:
module tb_gen4adder();
reg [3:0] a_in, b_in;
reg c_in;
wire [3:0] sum;
wire carry;
gen4adder UUT (
.a_in(a_in),
.b_in(b_in),
.c_in(c_in),
.sum(sum),
.carry(carry)
);
initial begin
a_in = 4'b0000;
b_in = 4'b0000;
c_in = 1'b0;
end
endmodule
Utilization Summary:
RTL Schematric:
Synthesis Schematic:
Simulation Waveform: