Tutorials
ENV
Env is a module which contains all the components of verification. A logic to increment the error counter.
Take a Driver instance and creat four reciever instancess. connect it to specific port.
Creat instance of scoreboard
Call then packet gen and drive task in driver
Creat a finish task which display the tesults of the test.
CODE:env.v
module sw_tb(clock,
packet_valid,
data ,
data_0 ,
data_1 ,
data_2 ,
data_3 ,
ready_0 ,
ready_1 ,
ready_2 ,
ready_3 ,
read_0 ,
read_1 ,
read_2 ,
read_3
);
input clock;
output packet_valid;
output [7:0] data;
input [7:0] data_0;
input [7:0] data_1;
input [7:0] data_2;
input [7:0] data_3;
input ready_0;
input ready_1;
input ready_2;
input ready_3;
output read_0;
output read_1;
output read_2;
output read_3;
reg pkt_status;
integer error_count=0;
event error;
//Incriment the error counter on error.
always@(error)
begin
#0 error_count=error_count+1;
$display(" ERROR RECIVED");
end
// Driver instance
driver dv(clock,packet_valid,data,busy);
// Make four reciever instancess. connect it to specific port.
receiver rec0(.clk(clock),.data(data_0), .ready(ready_0),
.read(read_0),
.port(0)
);
receiver rec1(.clk(clock),.data(data_1), .ready(ready_1),
.read(read_1),
.port(1)
);
receiver rec2(.clk(clock),.data(data_2), .ready(ready_2),
.read(read_2),
.port(2)
);
receiver rec3(.clk(clock),.data(data_3), .ready(ready_3),
.read(read_3),
.port(3)
);
// Creat instance of scoreboard
scoreboard sb();
// Call then packet gen and drive task in driver
initial
begin
#100;
dv.gen_and_drive(9);
#1000;
finish;
end
// finish task which display the tesults of the test.
task finish();
begin
if(error_count!=0)
$display("############# TEST FAILED ###############");
else
$display("############# TEST PASSED ###############");
$finish;
end
endtask
endmodule