基于 UVM 的验证环境
UVM 验证环境源码在:..syn_fifo_projectsyn_fifo_uvm 文件夹下:
仿真环境为 Questa Sim。
asyn_fifo_in_pkg.sv 主要用来驱动和监测 asyn_fifo 的输入端口,包含以下组
件:
➢ my_transaction 类定义了在验证平台中传递信息的事务。它里面包含一
个 32bit 的动态数组;
➢ my_driver 类发送激励;
➢ in_moniotor 类在信号输入端口监测;
➢ my_sequencer 类是 UVM 搭建的验证平台中不可或缺的部件,负责中转
由 sequence 传来的 transaction。
➢ i_agt 类是一个容器 类,里面实例化了 my_driver、my_sequencer 和
in_monitor。
asyn_fifo_out_pkg.sv 主要用来监测 asyn_fifo 的输出端口,包含以下组件:
➢ out_monitor 类在信号输出端口监测。
➢ o_agt 类也是一个容器类,里面实例化了 out_monitor。
asyn_fifo_env_pkg.sv 是 uvm 测试平台的环境容器,包含以下组件:
➢ my_model 类是参考模型,此处的参考模型仅仅是把输入的数据复制一
遍然后输出。
➢ my_scoreboard 类是计分板,用于比较待测硬件的输出和参考模型的输
出是否一致。
➢ my_env 类是一个容器,它里面实例化了 i_agt、o_agt、my_model、
my_scoreboard 等部件。
asyn_fifo_test_case.sv 是测试激励,包含以下内容:
➢ case1_sequence 类是 testcase1 的激励序列,约束为发送 200 个 32bit 数据,
及向 fifo 中写 200 个数据,在 driver 中同时伴随读操作。
➢ base_test 类它里面实例化 my_env,同时也会规定信息打印的规则。
➢ my_case1 是测试用例,可以运行成功,获得覆盖率为 100%。