UVM的driver为什么只发一个sequence就直接狗官你的统治结束了了

你的位置:
UVM中如何根据DUT的状态来发送不同的sequence
在UVM验证中,如何根据DUT的某些信号状态来发送不同的sequence,从而发送不同的data items。在《A Practical Guide to Adopting the Universal Verification Methodology(UVM)》中5.3.1节提到reactive generation - the contents of the data items can be influenced by the state of the DUT.但是没有提到怎么实现。你的位置:
请问UVM中sequence 和 sequencer有什么区别?
正在学习UVM,被sequence和sequencer这两个概念搞晕了
& & 希望大牛能讲解或总结一下,谢谢:)目前我判断应该是sequence和sequencer没有关联上,因为driver没有收到transaction,但是下面这句
uvm_config_db#(uvm_object_wrapper)::set(this,&t_env.ahb_mseqr.main_phase&,
& && && && && && && && && &&default_sequence&, ahb_master_sequence::type_id::get());
应该就是关联sequencer和sequence吧?说实话这个是从uvm自带的那个ubus的例子抄来的,我也没看明白,例子里面sequencer是直接用的uvm_sequence定义的instance,也就是说sequencer的成员里面显然不包含sequence,仿真结果打印的topology也印证了这一点,那么例子里是怎么关联上的呢?而且从这个build_phase看,先设置了seqr.seq.num_trans的值,然后才关联seqr和seq?
从来就没有什么财神爷
要创造无尽的财富
只有靠我们自己
UID128116&帖子73&精华0&积分14249&资产14249 信元&发贴收入410 信元&推广收入0 信元&附件收入116 信元&下载支出987 信元&阅读权限70&在线时间889 小时&注册时间&最后登录&
t_env是不是应该在build_phase里用create出来啊?
UID53123&帖子74&精华0&积分3&资产3 信元&发贴收入795 信元&推广收入0 信元&附件收入0 信元&下载支出930 信元&阅读权限10&在线时间47 小时&注册时间&最后登录&
本帖最后由 fighter212 于
21:43 编辑
stephen_0921
谢谢这位朋友,我按你说的做了,把new里面去掉,改在build_phase里面用create创建,但是还是不行,log可以看到UVM_INFO ../tb/ahb_master_sequence.sv(15) @ 0: uvm_test_top.t_env.ahb_mseqr@@ahb_master_sequence [No transaction fed:] uvm_te st_top.t_env.ahb_mseqr.ahb_master_sequence use default num_trans
UVM_INFO @ 0: uvm_test_top.t_env.ahb_mseqr@@ahb_master_sequence [uvm_test_top.t_env.ahb_mseqr.ahb_master_sequence] Start tran sfering...
这个是不是说ahb_mseqr已经有ahb_master_sequence这个成员了啊,但是ahb_master_sequence是类,不是实例,怎么回事呢?ubus的demo仿真log也是一样的结果,但是就可以正常产生数据并发送到driver,有人仔细研究过这个demo吗?
我改在env类里面定义一个sequence成员ahb_mseq,然后在env的run_phase中用这个ahb_mseq.start(ahb_mseqr, null)
,driver就可以从sequencer收到数据了,但参数num_trans还是无法传递。
UID806351&帖子30&精华0&积分0&资产0 信元&发贴收入145 信元&推广收入0 信元&附件收入0 信元&下载支出225 信元&阅读权限10&在线时间11 小时&注册时间&最后登录&
目前我判断应该是sequence和sequencer没有关联上,因为driver没有收到transaction,但是下面这句
uvm_con ...
fighter212 发表于
& & 这个set 就指定sqr里面default sequence 为ahb_master_sequence&&不代表这个sqr里面有ahb_master_sequence ,只是让sqr执行default sequence时候 执行的ahb_master_sequence&&.而你set num_trans 到sqr里面的ahb_master_sequence,实际上sqr里面没有ahb_master_sequence这个member ,所以get不到
UID797872&帖子172&精华1&积分7852&资产7852 信元&发贴收入1070 信元&推广收入0 信元&附件收入554 信元&下载支出4982 信元&阅读权限50&在线时间1127 小时&注册时间&最后登录&
<td class="t_msgfont" id="postmessage_. 在sequencer里面定义一个num_trans
2. 在env::build_phase里面改为uvm_config_db#(int)::set(this, &t_env.ahb_mseqr&,&num_trans&,2);
3. 在sequence里面将
if(!(uvm_config_db#(int)::get(null,get_full_name(),&num_trans&, num_trans)));
& && && &`uvm_info(&No transaction fed:&,{get_full_name(), & use default num_trans&}, UVM_LOW);
变成num_trans=m_sequencer.num_
--good luck
UID53123&帖子74&精华0&积分3&资产3 信元&发贴收入795 信元&推广收入0 信元&附件收入0 信元&下载支出930 信元&阅读权限10&在线时间47 小时&注册时间&最后登录&
感谢各位朋友热情帮忙,昨晚在试的时候把那个main_phase改成run_phase就可以了,循环的次数随着我设置的值在增加,但是sequence里面仍然打印出了&no transaction fed...&的信息。暂时还不知道为什么。另外demo里面用main_phase却又可以
从来就没有什么财神爷
要创造无尽的财富
只有靠我们自己
UID53123&帖子74&精华0&积分3&资产3 信元&发贴收入795 信元&推广收入0 信元&附件收入0 信元&下载支出930 信元&阅读权限10&在线时间47 小时&注册时间&最后登录&
犯了个低级错误,打印出了&no transaction fed...&的信息是因为if语句后面多了个分号:(
从来就没有什么财神爷
要创造无尽的财富
只有靠我们自己
UID466150&帖子1083&精华0&积分17793&资产17793 信元&发贴收入5605 信元&推广收入0 信元&附件收入0 信元&下载支出17863 信元&阅读权限70&在线时间912 小时&注册时间&最后登录&
哈哈,我说呢,如果你打开transaction的打印,估计就知道有没有set/get成功了吧
[通过 QQ、MSN 分享给朋友]
TI信号链专区正式上线,欢迎访问!&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 假期结束了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信