BEHAVIORAL DESCRIPTION
module ripple_carry_adder4 (
input [3:0] A, B,
input Cin,
output [3:0] Sum,
output Cout
);
reg [3:0] Sum;
reg Cout;
always @(A or B or Cin)
begin
{Cout, Sum} = A + B + Cin;
end
endmodule
Test Bench:--
module tb_ripple_carry_adder4;
reg [3:0] A, B;
reg Cin;
wire [3:0] Sum;
wire Cout;
ripple_carry_adder4 uut (
.A(A),
.B(B),
.Cin(Cin),
.Sum(Sum),
.Cout(Cout)
);
initial
begin
A = 4'b0001; B = 4'b0010; Cin = 0;
#10;
A = 4'b0101; B = 4'b0011; Cin = 0;
#10;
A = 4'b1111; B = 4'b0001; Cin = 0;
#10;
A = 4'b1010; B = 4'b0101; Cin = 1;
#10;
A = 4'b1111; B = 4'b1111; Cin = 1;
#10;
$finish;
end
endmodule
OUTPUT