地址读写hang住case中,怎样中断hang住的读写进程,继续测试后面地址(关于fork的应用)。

17 篇文章 6 订阅

比如我们测试某个地址读写的task如上,此task目的是测试是否对地址addr的读写,并不关心读写结果。如果读写的时候某个地址hang住,那么整个验证环境都会hang在这儿,后续地址不能测试到。

我们希望的是:在测试到某个地址到hang住时,就中断对此地址的读写进程,测试下一个地址。

可以改成这样的fork进程控制:

1.最外面这个fork可以不要

2.a0进程是测试对addr地址读写,和a1进程时并行的,因为a0是join_none。(这里addr不用automatic接收,因为多个地址并不并行测试的,是测完一个策测下一个)

3.a1进程是中有两个并行的子进程,a1是join_any的,所以只要两个子进程中某一个结束,就进入for循环测试下一个地址。

4.a1两个子进程,第一个进程是等待正常读写结束,event被触发,然后结束a1进程,测试下一个地址;第二个进程是没有等待event被触发,该地址读写会hang住,无法触发avent。然后等待读写超时,即超过正常读写时间,这里可以测试一些可以正常读写的地址所花费的时间,根据此时间来设置此阈值。如果等到读写超时,那么久结束a0和a1两个进程,然后测试下一个地址。(记住我这次遇到情况是总线直接hang住了,ready信号一直拉不起来,即使将进程kill掉重新去读下一个地址也是不起作用的,可能还需要重新rst一下)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值