电子书:《模拟对话》,共50卷,数百篇精品文章,下载即奖励400信元!
返回列表 发帖

[求助] 求助:sequence如何使用monitor中的变量

[求助] 求助:sequence如何使用monitor中的变量

大家好,请教一下sequence如何使用monitor中的变量的问题。
如图,sequence_0想根据DUT返回的不同情况,发送不同的sequence。DUT返回的ret由monitor_1监视。在monirot_1中有一个变量是cnt,请问在sequence_0中如何拿到cnt?谢谢。



seq.JPG

纯属个人想法:
第一种,在env中将out_agent中的monitor_1 uvm_config_db::set() 到in_agent中的sequencer_0,然后sequence_0中通过uvm_config_db::get()到monitor_1的句柄,通过这个句柄访问变量cnt。
第二种,如果有virtual sequencer,则可以将out_agent中的monitor_1 uvm_config_db::set() 到virtual sequencer中,然后sequence_0中通过uvm_config_db::get()到virtual sequencer中monitor_1的句柄,通过这个句柄访问变量cnt。
第三种,如果只有变量cnt而且功能纯粹,是否可以考虑将这个变量cnt放置在in_agent的monitor中,这样结构会方便一点。

但是总感觉这三种方法都不好,导致结构混乱,复用性变差。

TOP

可以试试response,monitor检测信号传给driver,driver给sequence以反馈。

TOP

看了2楼和3楼的回答,觉着有问题;

我的做法,使用TLM传递:
1. 在moniter_1中增加一个analysis_port,把cnt 广播出去;
2. 在sequencer_0中增加一个imp,接收步骤1中广播的cnt;
3. sequence中可以直接通过sequencer_0中的port得到cnt的值;

TOP

返回列表

站长推荐 关闭


2018 ADI 最火爆的六本电子书合订本!下载即奖励400信元!

2018 ADI 最火爆的六本电子书合订本!下载即奖励400信元!


查看