fork-join_none和fork-join、fork-join_any的區(qū)別一樣在于進程退出機制以及對于父進程的影響。
fork-join_none不會占用任何父進程的時間,即不會影響父進程。
基于這個特性,如果你希望啟動一個并行的進程,而又不需要等待它結(jié)束就可以使用fork-join_none
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_none $display($stime,,, "out of the loop"); #100; end endmodule
仿真log:
0 out of the loop 40 d = 15 50 a = 5 100 b = 10 100 c = 20 V C S S i m u l a t i o n R e p o r t
在上面的例子中,通過fork-join_none啟動4個進程,然而從仿真log中可以看到父進程沒有被阻塞,在時刻0就打印了“out of the loop” 。
原審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1333瀏覽量
109713 -
System
+關(guān)注
關(guān)注
0文章
163瀏覽量
36744 -
進程
+關(guān)注
關(guān)注
0文章
197瀏覽量
13928
原文標題:SystemVerilog中的fork-join_none
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論