实际出错场景:近期想在testbeach的激励端完成不同激励同时发包的场景,尝试数次发现没有成功,debug之后发现是受到了fork join的影响;
(1)知识背景:
转自文章systemverilog在for循环中使用fork_join和fork_join_none的区别_XtremeDV-CSDN博客
(2)我的场景部分,两个独立地激励都是for循环里面加了fork join,导致第二个for循环一直没能开始发包,仿真就结束了,改成fork join_none之后,就可以了;
(3)总结来说,fork join等效于all,需要等到里面所有的语句执行完毕才能进行其他线程;fork join_any是说里面任意一个线程结束即可;fork join_none是不需要等到里面线程结束即可;