我在测试(uvm_test)中将默认序列设置为:uvm_config_db#(uvm_object_wrapper):: set(this,“ sve.vs.main_phase”,“ default_sequence”,main_vseq_c :: type_id :: get());

不幸的是,test_env中还有另一个序列,也在main_phase上被激活。 称为“ seq_seq_c”

如何在序列之间进行同步? 我可以使用“ main_vseq_c”中的事件来触发“ seq_seq_c”吗? 我可以,该如何执行呢?

#1楼 票数:0

您可以创建uvm_event uvm_event的名称是唯一的,您可以使用uvm_event_pool获取具有相同名称的uvm_event的实例。 如果名称不存在的uvm_event,则第一次调用get()时,uvm_event_pool将创建一个。

主序列和另一个序列都将获得一个具有相同名称的uvm_event 主序列调用.wait_trigger()和其他序列调用.trigger()的的uvm_event

  ask by yogevdamary translate from so

未解决问题?本站智能推荐:

2回复

如何从另一个序列访问randomizedsequence_item?

我有一个测试台,其中有两个序列:sequenceA和sequenceB及其相应的序列项(sqitemA和sqitemB)。 将sequenceA输入到我的DUT中并随机生成sqitemA的值。 现在,我需要访问sqItemA中这些生成的随机字段中的一些,以便为我的sequenceB创建一个
1回复

覆盖测试中的序列成员

这是我的简单代码段 该序列仅生成随机地址并发送给驱动程序。 我想从测试中控制参数no_txn。 我可以使用序列的层次结构来执行此操作,但是是否有基于UVM的工厂方法来覆盖它?
2回复

如何监视测试/序列的DUT输出?

我是UVM的初学者。 到目前为止,我已经能够为我的DUT创建以下环境。 具有监视器,驱动程序和来自我的DUT的所有输入输出接口的序列的代理。 顶级UVM环境。 将有效数据发送到DUT的序列。 我尚未实施计分板。 我在理解如何处理以下情况时遇到了一些麻烦: 对于tb-dut接口
1回复

在一个界面中驱动两个不同的序列项

假设我只有一个接口和序列项的多个定义: 在测试期间,这些项目可以通过该接口动态传输出去。 实现驱动程序/顺控程序的正确方法是什么? 一个司机够吗? 或者需要多个司机? 似乎由于序列项的多个定义,我需要多个驱动程序和顺控程序。 但这并不好,因为我无法控制/仲裁传输。 这里有类
1回复

Specmane:序列会驱动其BFM,并且其MAIN在测试中未定义

我正在构建UART验证环境。 我有2个sequencees: 用于驱动DUT UART配置vr_ad_sequence 用于将帧驱动到DUT UART Rx- uart_sequence 这两个序列,它们的驱动程序和BFM都可以正常工作。 但是,当我创建一个仅使用配置序列的简
1回复

如何在AXI协议中更改uvm测试台或序列以等待下一个事务之前的写响应

我已经开发了实现AXI协议的uvm驱动程序,它具有两个队列,用于收集写入和读取事务。 一旦驱动程序从定序器接收到事务,事务就会被推送到读取队列或写入队列,并且读取和写入通道会驱动每个AXI通道上的相应事务。 驱动程序不会等待写入响应,然后发出AXI指定的下一次读取或写入。 现在,我想更改行
1回复

将字段从一个类复制到另一个内部序列项

我的序列项中有两个类句柄。 其中一个类包含另一个类的句柄。 伪代码如下所示: 所以,当我随机化时 我希望a_handle的field_1和field_2值与seq_item中的'a'相同。 我尝试在seq_item的post_randomize中克隆($ cast(b.a_handl
1回复

序列和序列项之间有什么区别?

主要区别是什么? 我应该选择何时使用序列以及何时使用序列项?