一、验证框架
到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();