1 源码下载地址:
https://download.csdn.net/download/times_poem/10659354
书籍推荐:芯片验证漫游指南
2 整个实验文件划分为以下模块,以便分析。
3 代码分析
公用文件层
3.1 router_io.sv
default input #1ns output #1ns;
p175 采样偏移量,输出偏移量。
通过interface实现时钟同步。
interface router_io(input bit clock);
logic reset_n;
logic [15:0] din;
logic [15:0] frame_n;
logic [15:0] valid_n;
logic [15:0] dout;
logic [15:0] valido_n;
logic [15:0] busy_n;
logic [15:0] frameo_n;
clocking cb @(posedge clock);
default input #1ns output #1ns;
output reset_n;
output din;
output frame_n;
output valid_n;
input dout;
input valido_n;
input frameo_n;
input busy_n;
endclocking: cb
modport TB(clocking cb, output reset_n);
endinterface: router_io
3.2 Packet.sv
按照rtl数据传输类型,定义packet的数据。
compare 用于scoreboard.sv
display 用于打印当前packet的数据信息
copy 用于Receiver.sv
`ifndef INC_PACKET_SV
`define INC_PACKET_SV
class Packet;
rand bit[3:0] sa, da; // random port selection
rand logic[7:0] payload[$]; // random payload array
string name; // unique identifier
con