文章目录
- 1.router_io.sv(接口文件)
- 2.packet.sv(数据包)
- 3.packet_da_3.sv(数据约束包)
- 4.packet_seq_lib_pkg.sv(基于packet包的sequence库(空的库))
- 5.packet_sequence.sv(生产数据,导入packet_seq_lib库)
- 6.reset_sequence.sv(重置sequence,使用不同的数据包)
- 7.driver.sv(按照router协议驱动数据)
- 8.iMonitor.sv(采集激励数据)
- 9.oMonitor.sv(采集响应数据)
- 10.input_agent_sv(封装seqr、drv、mon,并实例化连接)
- 11.output_agent.sv(封装mon、并实例化连接)
- 12.reset_agent.sv(重置agent,重置seqr、drv、mon)
- 13.scoreboard.sv(实现自动比对)
- 14.ms_scoreboard.sv(比较器comparator实现自动比对)
- 15.router_env.sv(实例化子组件,并建立子组件agent与scb的连接)
- 16.test_collection.sv(测试用例)
- 17.router_test_top.sv(顶层物理接口例化)
- 18.test.sv(主代码,启动UVM平台)
- 19.Makefile(make编译)
- 20.打印结果
实例六相对于实例五有了以下改进:
- 创建了一个空的序列库(packet_seq_lib),它应该继承自基类库(uvm_sequence_library),空的序列库应该进行两次注册,并通过init_sequence_library()方法使登记的序列生成一个库序列。
- 在env中将packet_seq_lib序列库设置为default_sequence;
- 在基础用例中使用方法add_typewide_sequence(),将packet_sequence加入packet_seq_lib序列库中;
- 在基础用例中使用增补uvm_sequence_library_cfg配置类来对sequence library进行配置,并在用例中声明了句柄seq_cfg,配置序列库;
1.router_io.sv(接口文件)
`ifndef ROUTER_IO_SV
`define ROUTER_IO_SV
interface router_io(input bit clk