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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖

[求助] 关于fork...join内使用了wait()的疑惑

[复制链接]
 楼主| 发表于 2024-4-8 17:29:46 | 显示全部楼层
本帖最后由 天蝎的尾巴i 于 2024-4-8 17:30 编辑


天蝎的尾巴i 发表于 2024-4-8 17:22
1.fork..join退出后子线程是停止的,fork-join_any是不停止的。disfork是回答另一个老哥的
2.成功信息和 ...


还有个问题就是这里打印语句用的$display和$error,可以把$error和其他地方的uvm_error打印出来,但是不知道为啥用uvm_info和uvm_error不打印任何错误消息。

只打印了info

只打印了info
 楼主| 发表于 2024-4-8 17:37:21 | 显示全部楼层


ICstudent 发表于 2024-4-8 17:32
forever内是可以执行for循环的,data_compare没执行有没有可能是你的lengthdata为0呢?在你的语句里面多 ...


ok,我试试
发表于 2024-4-8 17:46:11 | 显示全部楼层
我觉得是不是可以在 compare_transaction(); 后面加一个微小延时(#1ps;)?
发表于 2024-4-8 17:52:35 | 显示全部楼层


ppeezz 发表于 2024-4-8 17:46
我觉得是不是可以在 compare_transaction(); 后面加一个微小延时(#1ps;)?


他的task是在funcition内调用的,function内部不建议加延迟
发表于 2024-4-8 17:56:39 | 显示全部楼层


ICstudent 发表于 2024-4-8 17:52
他的task是在funcition内调用的,function内部不建议加延迟


我的意思是

forever  begin
     fork
        wait();
        wait();
     join
     disable fork;
     compare_transaction(exp_tr, obv_tr);
     #1ps;
end
 楼主| 发表于 2024-4-8 18:01:09 | 显示全部楼层


ICstudent 发表于 2024-4-8 17:32
forever内是可以执行for循环的,data_compare没执行有没有可能是你的lengthdata为0呢?在你的语句里面多 ...


老哥厉害,exp_tr的长度为0,所以for循环直接空了。
主要是我执行data_compare()之前比较了address,length,结果没报错,接下来还要搞清为啥uvm_error不报错。
总之谢谢老哥抽空解答
9.png
11.png
 楼主| 发表于 2024-4-8 18:04:31 | 显示全部楼层


ppeezz 发表于 2024-4-8 17:56
我的意思是

forever  begin


加延迟,加@时钟沿,我之前都试过
发表于 2024-4-8 19:36:59 | 显示全部楼层
有没有检查过expr.length_data?

length_data是什么类型,unsigned, signed, bit 还是其它类型?

用的哪家的simulator?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-18 20:39 , Processed in 0.019934 second(s), 6 queries , Gzip On, Redis On.

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