fork-join_any和fork-join有所不同,fork-join_any的父進(jìn)程一直阻塞,直到任何一個(gè)并行的子進(jìn)程結(jié)束。
需要注意的是,當(dāng)其中任何一個(gè)子進(jìn)程和父進(jìn)程結(jié)束后,剩余未結(jié)束的子進(jìn)程不會(huì)停止,而是會(huì)一直執(zhí)行下去,直到仿真停止。
module forkJoin; int a, b, c, d; initial begin fork : forkBlock begin //frst process #50 a = 5; $display($stime,,,"a = %0d",a); end begin //second process #100 b = 10; $display($stime,,,"b = %0d",b); end begin //third process #100 c = 20; $display($stime,,,"c = %0d",c); end begin //fourth process #40 d = 15; $display($stime,,,"d = %0d",d); end join_any $display($stime,,, "out of the loop"); end endmodule
仿真log:
40 d = 15 40 out of the loop V C S S i m u l a t i o n R e p o r t
上面的fork-join-any示例中有4個(gè)子進(jìn)程,分別在時(shí)間40,50,100,100執(zhí)行。隨著進(jìn)程4結(jié)束,父進(jìn)程也會(huì)結(jié)束,仿真隨之停止。
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1365瀏覽量
111790 -
System
+關(guān)注
關(guān)注
0文章
166瀏覽量
37562 -
進(jìn)程
+關(guān)注
關(guān)注
0文章
206瀏覽量
14211
原文標(biāo)題:SystemVerilog中的fork-join_any
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
SystemVerilog中的Virtual Methods
Parallel (Fork-Join) Block is not supported
begin ...... end 與 fork ...... join 語(yǔ)句的 區(qū)別 ------ 轉(zhuǎn)載
Fork/Join的框架機(jī)制詳解
最常見(jiàn)的fork用法是什么
如何利用system verilog的fork join_none實(shí)現(xiàn)信號(hào)打拍操作呢
聊一聊如何在仿真中如何“多進(jìn)程”時(shí)間管理
Fork/Join框架的軟件重構(gòu)及性能分析
SystemVerilog中對(duì)于process的多種控制方式
淺析標(biāo)準(zhǔn)的Verilog對(duì)語(yǔ)句有兩種分組方式

SystemVerilog中的Shallow Copy
SystemVerilog中的fork-join
SystemVerilog中的fork-join_none
如何優(yōu)化MySQL中的join語(yǔ)句

Linux中可怕的fork炸彈介紹

評(píng)論