
Feedback ? Send it to admin@fullchipdesign.com or join me at fullchip@gmail.com
// Test Bench for half-
module tb_fulladder();
reg r_in_x;
reg r_in_y;
reg r_carry_in;
wire out_sum;
wire out_sum_fa;
wire out_carry;
wire out_carry_fa;
reg w_enable;
wire w_output_x;
initial begin
$display("-
$monitor("in_x = %b, in_y = %b, out_sum = %b, out_carry = %b", r_in_x, r_in_y, out_sum, out_carry);
$display("-
$monitor("in_x = %b, in_y = %b, carry_in = %b, out_sum_fa = %b, out_carry_fa = %b", r_in_x, r_in_y, r_carry_in, out_sum_fa, out_carry_fa);
$display("-
$monitor("input_x = %b, enable = %b, output_x = %b", r_in_x, w_enable, w_output_x);
// Generation of stimulus
r_in_x = 0; r_in_y = 0; r_carry_in = 0; w_enable= 0; # 10 r_carry_in= 1;
# 10 r_in_x = 0; # 10 r_in_y = 1; # 10 r_carry_in = 0; # 10 r_carry_in = 1;
# 10 r_in_x = 1; # 10 r_in_y = 0; # 10 w_enable = 1; # 10 r_carry_in = 0;
# 10 r_carry_in = 1; # 10 r_in_x = 1; # 10 r_in_y = 1; # 10 r_carry_in = 0;
# 10 r_carry_in = 1; # 10 r_in_x = 0; # 10 r_in_y = 1; # 10 r_carry_in = 0;
# 10 r_carry_in = 1; # 10 w_enable = 1;
End
// Half-
half_adder u_half_adder
(.in_x(r_in_x), .in_y(r_in_y),
.out_sum(out_sum),
.out_carry(out_carry));
// Full-
full_adder u_fulladder
( .in_x (r_in_x),
.in_y (r_in_y),
.carry_in (r_carry_in),
.sum_out (out_sum_fa),
.carry_out(out_carry_fa));
// Tri-
tristate_buffer u_tristate_buffer
( .input_x (r_in_x),
.enable (w_enable),
.output_x (w_output_x));
endmodule