You are on page 1of 2

module fa8bits_tb();

parameter WIDTH=7;

reg [WIDTH:0] tb_A;


reg [WIDTH:0] tb_B;
wire [WIDTH+1:0] tb_Sum;

integer miscompare;

fa8bits M1 (.A(tb_A),.B(tb_B),.Sum(tb_Sum));

task driver();
begin
tb_A = $random;
tb_B = $random;
//$display("@T=%d..[Driver].A=%d,B=%d",$time,tb_A,tb_B);
end
endtask

task monitor();
begin
if(tb_Sum==tb_A+tb_B) begin
// $display("@T=%d..[Mon].Pass A=%d,B=%d,Sum=%d",
$time,tb_A,tb_B,tb_Sum);
end
else begin
// $display("@T=%d..[Mon].Fail A=%d,B=%d,Sum=%d",
$time,tb_A,tb_B,tb_Sum);
miscompare=miscompare+1;
end
end
endtask

task final_result();
begin
if(miscompare==0) begin
$display("Well done!!!!!!!!!!!!!!!!!!!!!!");
end
else begin
$display("Error...Need to debug");
end
end
endtask

initial
begin

$display("Starting here");
miscompare = 0;
repeat(100)
begin
driver();
#4 monitor();
#6;
end

final_result();
$display("Ending here");
end

endmodule

/*
Function Task
1. Delays not allowed 1. Delays allowed.
2. Atleast 1 input 2. 0 inputs allowed.

*/

You might also like