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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2420|回复: 4

[求助] env的run_phase中加入打印信息能正常打印,发现当启动sequence时就卡死了

[复制链接]
发表于 2014-7-20 17:32:52 | 显示全部楼层 |阅读模式

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

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

x
在UVM搭建验证环境。现在遇到一个问题,环境跑起来之后,就卡在开始的零时刻,env的run_phase中加入打印信息能正常打印,agent中的run_phase也能正常打印,driver中的run_phase没有运行,通过调试,发现当启动sequence时就卡死了。sequence中的body不会被执行到。调试了好几天,纠结啊 。。。
发表于 2014-7-20 22:17:34 | 显示全部楼层
raise_objection/drop_objection 加在哪里?
发表于 2014-7-21 08:09:51 | 显示全部楼层
能否把一部分代码贴上来,方便讨论。
 楼主| 发表于 2014-7-21 13:08:32 | 显示全部楼层
raise_objection和drop_objection 是放在env 中的。

class  my_env   extends  uvm_env;
`uvm_component_utils(my_env)
virtual   dfe_if   dfe_bfm;
dfe_agent   agent1;
function  new(string name,uvm_component parent=null);
super.new(name,parent);
endfunction

function  void build_phase(uvm_phase phase);
super.build_phase(phase);
if(!uvm_config_db#(virtual dfe_if)::get(this,"","dfe_bfm",dfe_bfm))
`uvm_fatal("env","BFM not set")
uvm_config_db#(virtual dfe_if)::set(this,"agent1","bfm",dfe_bfm)
endfunction

task  run_phase(uvm_phase phase);
my_sequence  seq;
seuper.run_phase(phase);
seq=my_sequence::tpyeid::create("seq");
seq.addr_low=1;
seq.addr_high='h100;
seq.length=10000;
phase.raise_objection(this);
fork
seq.start(agent1.sequencer);
join
phase.drop_objection(this);
endtask

endclass
 楼主| 发表于 2014-7-21 17:03:54 | 显示全部楼层
这个问题我解决掉了,我在monitor中忘记加时序的工作了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 01:26 , Processed in 0.022651 second(s), 10 queries , Gzip On, Redis On.

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