sv uvm中disable fork statement导致其余同名fork一起跳出循环解决方法

在seq中timeout看门狗处理的时候,如果fork : timeout 被同时执行了多次,在其中一次disable了后,所有正在循环的fork : timeout都会退出,如下代码。我们期望的是循环的三次fork : timeout各自跳出。

方法一:使用process进程控制。fork join中的每一个进程都声明一个process。当某一个跳出后,杀掉其余两个进程,可以看到结果了循环了三次,每次都从第一个begin...end跳出,避免了直接从第一个循环的begin..end跳出后杀掉所有循环的fork : timeout

方法二:把fork后面的statement名称去掉,最后直接用disable fork。这种方式可能会引入另一个问题,会把同层次之前提交过的fork...join_any一起杀掉。将其外面再套一层fork...join,可以避免这个问题,但是会显得代码冗余

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值