【uvm】怎么在sequence中调用agent中的函数以及如何快速实验你的想法?

本文介绍了在UVM中如何在sequence中优雅地调用agent中的函数,通过p_sequencer机制和get_parent()实现。文章提供了一个最小化的验证平台,包括sequence、agent、测试平台和顶层模块,展示了如何建立并验证该方法。
摘要由CSDN通过智能技术生成

https://mp.weixin.qq.com/s/_r5nW-tiMFBlEG3Tp8HvmQ

通过本篇文章主要想送给广大验证初学者和爱好者2件礼物:“一条鱼”和“一只鱼竿”。希望大家连吃带拿,开开心心地。

“一条鱼”就是题目中的那个问题本身:“UVM中怎么在sequence中调用agent中的函数”。这个问题很多同学猛的听到可能还是会有一些懵,反应不出一个优雅的解决方法。

“一只鱼竿”就是当你遇到这样一个问题的时候,怎么快速写一段代码验证你的想法是不是可以实现,也就是Jerry今天带你解决这个问题的过程。

众所周知,在UVM中一个标准的agent里面例化着driver、monitor、sequencer组件,发激励时通过“游离”在agent中的sequence产生transaction,借助sequencer给driver进而发出激励。

但是“游离”在agent中的sequence怎么访问agent中的函数呢?

有人说可以使用config_db机制:在某个地方如env中把agent set出去,然后在sequence中用config_db机制的get拿到agent的资源,进一步在sequence中调用agent中的函数。

这样确实可以实现功能,但是不太优雅,他需要借助除了sequence本身的“外力”, 需要在别处多写几行代码来set agent。

当然了,对于这种函数调用需求我们其实还可以通过之前讲的单例模式(IC验证er一起学点设计模式(1)—单例模式),做成全局组件来实现,本文就不提了,大家自己探索。

那怎么做才能比较优雅

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值