一、验证框架
到LAB3,加入一个收集机制,将从dut的输出,收集回来。

二、测试代码 test.sv
2.1 定义发送参数
比LAB2多了一个收集DUT输出用于比较的队列。
int run_for_n_packets; // number of packets to test
bit[3:0] sa; // source address
bit[3:0] da; // destination address
logic[7:0] payload[$]; // expected packet data array
logic[7:0] pkt2cmp_payload[$]; // actual packet data array
2.2 驱动代码
代码中重复2000:(1)生成数据,(2)发送接收数据;在结束后,调用 check() 对比。
initial begin
$vcdpluson;
run_for_n_packets = 2000;
reset();
repeat(run_for_n_packets) begin
gen();
fork
send();
recv();
join
check();
end
repeat(10) @(rtr_io.cb);
end

本文介绍了SV_LAB的第三个实验,重点在于验证框架的搭建和测试代码test.sv的详细步骤。主要内容包括定义发送参数、驱动代码、接收任务、时序接收以及比较函数和任务,旨在实现对DUT输出的收集和比较,确保验证的准确性。
最低0.47元/天 解锁文章
970





