概述UVM中的build、configure和connect【uvm】

LINK

在UVM testbench开始发送激励之前,必须构建其组件层次结构以及验证组件之间的连接关系。

UVM testbench 的第一阶段(phase)是build phase,在此阶段自上而下地实例化组成验证环境层次结构中的各个uvm_component类。

Image

当在顶层的initial 语句块中调用run_test()方法时,就开始激活验证平台的构建,即从testcase开始依次调用各组件的build_phase。在执行test case的build phase期间,需要准备好testbench配置对象,并将virtual interface赋值给testbench中各个组件中的virtual interface句柄。

在下一级的层次结构(uvm_env)中,将根据从testcase获取的配置对象进一步地配置(uvm_agent)并可以根据实际情况进行更改。在build phase完成后,将开始connect phase确保完成所有组件之间的连接(自下而上)。等到所有的uvm_phase运行完成,会将控制权再给到test case。

简而言之,在发送测试激励之前需要完成验证组件的构建、配置和组件之间的连接。

Image

UVM testbench 的构建过程从test case开始,决定了构建怎样的验证平台:

  • 进行factory override,以便将配置对象或组件对象替换为为派生类型

UVM factory 允许一个UVM类在构建时被另一个派生类替换,必须在构建对象之前就指定factory override,因此需要在该组件上层的build phase进行指定。

  • 设置一个层次化的env配置对象,其中包含各种子组件所需的配置对象

每个验证组件如env或agent ,都应该有一个定义其结构和行为的配置对象。这些配置对象应该在build phase方法中创建,并根据测试用例的要求进行配置。如果验证子组件的配置比较复杂或者可能需要发生更改,那么值得添加一个 virtual function调用并在扩展的测试用例中重载

class spi_test_base extends uvm_test;
`uvm_component_utils(spi_test_base
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值