在UVM中,什么是p_sequencer和m_sequencer?

UVM sequences是从uvm_sequence_item扩展的,它们在仿真过程中动态创建并分配内存,不参与uvm_component的层次结构。sequences通过sequencer与driver交互,传递激励给DUT。m_sequencer是默认的uvm_sequencer_base句柄,而p_sequencer是转换后的实际sequencer,允许sequence通过它访问测试平台的组件,如在示例中访问clock monitor。
摘要由CSDN通过智能技术生成

在 UVM方法学中,UVM sequences 是寿命有限的对象 。

UVM sequences从uvm_sequence_item基类扩展得到,uvm_sequence_item进一步从uvm_object基类扩展得到。

UVM sequences不是在仿真的开始,而是在仿真的过程中生成并分配内存的,也没有类似uvm_component的层次结构。

随着仿真的进行,将创建一个或多个UVM sequences ,并在sequencer上启动这些序列。sequencer-driver之间的接口 将一个或多个sequences 作为激励发送给DUT。一旦sequences 发送完成,对应的内存将得到释放。

往往我们在书写测试用例或者sequences的时候会有查询验证平台组件uvm_component的需求,比如env/driver/monitor。

由于sequences不是测试平台层次结构的一部分,实现这种需求就比较困难 。sequences唯一可以访问的句柄是它当前运行的sequencer 。因此,sequences需要通过sequencer 访问测试平台中层次结构。

这就是m_sequencer/p_sequencer概念的用处。

m_sequencer是uvm_sequencer_base类型的句柄,默认情况下在每个sequence中都可用。连接到driver 的真正的sequencer 是从uvm_sequencer_base类派生出来的,其 被参数化为用于与driver 通信的sequence item类型。

因此要访问正在运行sequence 的真实sequencer ,我们需要将m_sequencer类型转化为真实sequencer ,通常称为p_sequencer。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值