在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8737|回复: 16

[求助] 请教个UVM中virtual sequence的问题

[复制链接]
发表于 2016-9-21 17:04:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 litterstrong 于 2016-9-21 17:06 编辑

virtual sequence中定义A,B 两个sequence,这两个sequence的body函数都有对应的pre_body和post_body在virtual sequence的body函数中通过`uvm_do_on的形式启动A,B sequence时,现象如下:
1)A,B 这两个sequence对应的body函数会被执行,而pre_body和post_body不会被执行;
2)virtual sequence的body函数对应的pre_body和post_body会执行。

如果采用手动的方式启动sequence,在virtual sequence的body函数中,先new A,B sequence,然后再通过seq.start启动sequence。A,B两个sequence的pre_body和post_body都能执行,在start后执行的。

麻烦各位同仁指导一二,为什么自动的方式(uvm_do_on)没法执行pre_body和post_body,是否需要特定的配置或语句? 多谢!
发表于 2016-9-21 21:12:44 | 显示全部楼层
看一下cookbook,里面有讲为什么。不建议使用uvm_do, pre_body, post_body。
发表于 2016-9-22 00:35:53 | 显示全部楼层
你去看一下uvm_do的macro的定义,里面有个开关,当使用uvm_do macro时,pre_body,post_body不会被调用,你可以想想为什么uvm默认会这样设置
 楼主| 发表于 2016-9-22 10:52:30 | 显示全部楼层
回复 2# fsgbeyond
回复 3# shaoqingtju

   多谢二位的耐心解答!原来一直走在不建议的路上...学习了,多谢!
 楼主| 发表于 2016-9-22 11:03:11 | 显示全部楼层
感谢两位的耐心解答!原来我一直走在不建议的路上...学习了,多谢!
发表于 2016-9-23 19:47:06 | 显示全部楼层
回复 3# shaoqingtju


  能解答下为什么默认设置是不执行pre_body和post_body吗?
发表于 2016-9-24 15:07:26 | 显示全部楼层
回复 6# lovehere33

uvm的一种推荐用法,是在pre_body和post_body中进行raise,drop objection的操作,pre_body和post_body只有在seq被set为default seq时才会执行,而在uvm_do macro中,当前seq是作为top seq中的一个sub seq或seq item进行调用的。理论上testbench的启动与关闭应该由top seq进行控制,并且尽可能只有一对raise和drop进行控制,防止过多的raise,drop引起不必要的问题,所以使用uvm_do时会屏蔽pre_body,post_body。如果想在seq body之前做一些事,可以重载pre_start,post_start task
发表于 2016-11-7 22:21:40 | 显示全部楼层
回复 7# shaoqingtju


   谢谢分享,学习了!
发表于 2016-11-14 09:58:12 | 显示全部楼层
7楼大牛,学习了
发表于 2016-11-16 10:07:03 | 显示全部楼层
学习了,多谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 19:42 , Processed in 0.028306 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表