UVM 入门和进阶实验 0

本实验主要完成UVM的基本概念和仿真操作:

  • 懂得如何编译UVM代码
  • 理解SV和UVM之间的关系
  • 了解UVM验证顶层盒子与SV验证顶层盒子之间的联系
  • 掌握启动UVM验证的必要步骤

编译
编译文件uvm_compile.sv,待正常编译正常结束。在work库中仿真模块uvm_compile,在命令窗口敲入“run -all”,可以观察到仿真输出语句:

在验证顶层都将需要这两句话:

  import uvm_pkg::*;
  `include "uvm_macros.svh"

这两句话代表着从预编译的UVM库可以在Library view中观察到:
在这里插入图片描述
SV和UVM之间的关系
添加sv_class_inst.sv文件,编译,仿真,实际上这个实验是SV模块实验环节的抽象,它只是在顶层module容器中要例化软件验证环境的顶层,即SV class top。
仿真结果
由仿真结果可知代码执行顺序。
层级结构
接下来再添加加 uvm_class_inst.sv,编译仿真,从打印的信息来看,也是再模拟验证结构的传力,只不过这一次利用了UVM的类uvm_component来定义了top类,继而在创建了这个顶层的验证结构。
仿真结果

我们所谓的 UVM 验证环境指的首先是提供一个 UVM 的“容器”,即接下来所有的 UVM 对象都会放置在其中,这样也可以成为 UVM 的顶层,这就类似于之前 SV 模块实验中的顶层容器 test 一样。

UVM 验证顶层与 SV 验证顶层的对比
仿真结果
启动 UVM 验证的必要步骤

这个例子即 uvm_test_inst 显然与 uvm_class_inst 带给人的感官不同,如果问你哪个可以作为 UVM 验证顶层容器的话,你估计会选择 uvm test inst 吧。没错,我们之所以这样选择,是基于下面几处代码的不同以及它们所带来的影响所造成的:

  • 只有继承于 uvm test 的类,才有"资格”可以作为 UVM 验证环境的顶层。
  • 创建顶层验证环境, 有且只能依赖于 run_test( “UVM_TEST_NAME” )来传递,或者稍后可以学习到可以通过仿真参数传递,而不是通过构建函数new()来实验的。尽管 new()可以创建一个对象, 但是不能做与顶层验证环境相关的其它工作。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值