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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3655|回复: 11

[求助] raise_objection drop_objection UVM 求助

[复制链接]
发表于 2016-10-19 09:21:25 | 显示全部楼层 |阅读模式

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

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

x
看到一段代码,在case的run_phase里,

fork
phase.raise_objection(this);

begin
......
end

begin
........
end

phase.drop_objection(this)

join


在这段代码里用的是fork join,那不是应该raise和drop还有那些begin end块并行吗,这段代码为什么可以等begin end块都执行完成才drop?

按照我的理解,raise和drop不应该放在fork里
 楼主| 发表于 2016-10-19 22:53:12 | 显示全部楼层
???????????、、、
发表于 2016-10-20 15:56:19 | 显示全部楼层
raise objection和drop objection应该是串行的吧,写在fork join里有点问题
发表于 2016-10-22 16:28:16 | 显示全部楼层
虽然你用了fork join 但是这个两个objection函数真正执行的时候是有先后的,虽然同时启动了 但是drop objection没执行,run_phase里面其他进程运行完了 才运行这个drop objection
 楼主| 发表于 2016-10-22 16:40:32 | 显示全部楼层
回复 4# DS_LOGIC

为什么呢?是不是放在fork外面会更好
发表于 2016-10-22 21:56:32 | 显示全部楼层
回复 5# dyytx


  是的,放在外面看着会更好。没有raise_objection begin end不会被执行,等所以的begin end都结束了 才会调用drop_objection 这是phase的运行机制啊
 楼主| 发表于 2016-10-22 22:20:48 | 显示全部楼层
回复 6# DS_LOGIC

1.没有raise,begin块不会执行吗?2.既然是fork join,那raise和drop同时启动,drop在没有raise之前是不能drop,但是等到raise之后,不是drop就执行完了吗,drop也要等到begin块执行完才可以运行吗?
 楼主| 发表于 2016-10-22 22:27:19 | 显示全部楼层
回复 6# DS_LOGIC


   你的意思是没有如果在mainphase,都没有raise,就不会执行了吧,直接到下一个phase
发表于 2016-10-23 14:53:49 | 显示全部楼层
回复 8# dyytx


   raise 和 drop只是phase下的phase_down函数的两个子函数,内部是有联系的,不只是两个单纯的独立的两个函数
发表于 2016-10-24 10:04:40 | 显示全部楼层
一般来说 raise objection drop objection和uvm_do是绑定的,在sequence里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-14 15:57 , Processed in 0.022015 second(s), 7 queries , Gzip On, Redis On.

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