前言
fork-join_none是用于提起多线程的常用语句,而有时他不可避免的和循环语句一起使用例如repeat或是for循环。当循环语句和fork-join_none语句一起执行时,不合理的代码风格会造成不易察觉的问题。
fork-join_none的执行时间
- fork-join_none提起线程本身不会阻塞时间片前进;
- fork-join_none不会立即执行,而是暂时被挂起等待延时语句阻塞时间片时,再被执行;
关于时间片的问题,网上有很多说明,IEEE标准中也有详细的讲解,如果想粗略的了解下可以看下我之前的博客(https://blog.youkuaiyun.com/moon9999/article/details/102983963)。
关于上面的两点,我们拿一段代码举个例子:
begin
fork $display("dislpay fork1"); join_none
fork $display("dislpay fork2"); join_none
fork $display("dislpay fork3"); join_none
#10ns;
end
<