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é)束,仿真隨之停止。
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
Verilog
+關(guān)注
關(guān)注
30文章
1374瀏覽量
114522 -
System
+關(guān)注
關(guān)注
0文章
166瀏覽量
38669 -
進(jìn)程
+關(guān)注
關(guān)注
0文章
211瀏覽量
14532
原文標(biāo)題:SystemVerilog中的fork-join_any
文章出處:【微信號:芯片驗(yàn)證工程師,微信公眾號:芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
SystemVerilog中的Virtual Methods
SystemVerilog中多態(tài)能夠工作的前提是父類中的方法被聲明為virtual的。
發(fā)表于 11-28 11:12
?1134次閱讀
Parallel (Fork-Join) Block is not supported
各位大神,嘗試編譯了一小段模塊,結(jié)果說是不支持并行(fork——join)塊,這個(gè)是要升級quartusII嗎?求問,謝謝!Error (10129): Verilog HDL
發(fā)表于 01-25 19:05
begin ...... end 與 fork ...... join 語句的 區(qū)別 ------ 轉(zhuǎn)載
的執(zhí)行時(shí)間為5d。 (2)fork……join,用來組合需要并行執(zhí)行的語句,被稱為并行塊。例如:parameter d = 50; reg[7:0] r; fork //由一系列延遲產(chǎn)生的波形 # d r
發(fā)表于 06-02 21:31
Fork/Join的框架機(jī)制詳解
一、Fork/Join框架 Java提供Fork/Join框架用于并行執(zhí)行任務(wù),核心的思想就是將一個(gè)大任務(wù)切分成多個(gè)小任務(wù),然后匯總每個(gè)小任務(wù)的執(zhí)行結(jié)果得到這個(gè)大任務(wù)的最終結(jié)果。
發(fā)表于 01-05 17:51
最常見的fork用法是什么
接口語法用來創(chuàng)造一個(gè)子進(jìn)程在子進(jìn)程中,成功的fork調(diào)用會(huì)返回 0。在父進(jìn)程中fork返回子進(jìn)程的 pid。如果出現(xiàn)錯(cuò)誤,fork返回一個(gè)負(fù)
發(fā)表于 12-15 07:38
如何利用system verilog的fork join_none實(shí)現(xiàn)信號打拍操作呢
利用system verilog的fork join_none,能夠?qū)崿F(xiàn)打拍操作。從而不需要寫其他的邏輯來實(shí)現(xiàn)打拍操作。下面,介紹下,如何實(shí)現(xiàn)。有3個(gè)信號,a,b,c,現(xiàn)在需要實(shí)現(xiàn),b是a的打拍,c
發(fā)表于 04-02 17:25
聊一聊如何在仿真中如何“多進(jìn)程”時(shí)間管理
的進(jìn)程執(zhí)行完畢后退出fork-join_none:所有的進(jìn)程只要有一個(gè)執(zhí)行結(jié)束即退出fork-join_any: 不等待任何一個(gè)進(jìn)程執(zhí)行完畢即退出。但凡熟悉Verilog、SystemVerilog
發(fā)表于 06-29 16:11
Fork/Join框架的軟件重構(gòu)及性能分析
框架進(jìn)行重構(gòu),并以senes程序?yàn)槔?,詳?xì)地說明了重構(gòu)的過程。在實(shí)驗(yàn)中,首先,測試了每個(gè)程序在不同閾值下使用Fork/Join框架分別遞歸1、2、3次執(zhí)行程序的時(shí)間,進(jìn)而選擇相對較好的閾值;然后
發(fā)表于 12-29 10:06
?0次下載
SystemVerilog中對于process的多種控制方式
Block,也就是語句塊,SystemVerilog提供了兩種類型的語句塊,分別是begin…end為代表的順序語句塊,還有以fork…join為代表的并發(fā)語句塊。
淺析標(biāo)準(zhǔn)的Verilog對語句有兩種分組方式
標(biāo)準(zhǔn)的Verilog對語句有兩種分組方式——使用begin…end或fork…join,begin…end中的語句以順序方式執(zhí)行,而fork…joi
SystemVerilog中的fork-join
在fork-join語句塊中,每個(gè)語句都是并發(fā)進(jìn)程。在這個(gè)語句塊中,父進(jìn)程一直被阻塞,直到所有由“fork-join”產(chǎn)生的子進(jìn)程都執(zhí)行完。
SystemVerilog中的fork-join_none
fork-join_none和fork-join、fork-join_any的區(qū)別一樣在于進(jìn)程退出機(jī)制以及對于父進(jìn)程的影響。
如何優(yōu)化MySQL中的join語句
在mysql中,join 主要有Nested Loop、Hash Join、Merge Join 這三種方式,我們今天來看一下最普遍 Nested Loop 循環(huán)連接方式,主要包括三種
Linux中可怕的fork炸彈介紹
Linux中的Fork炸彈(Fork Bomb)是一種拒絕服務(wù)攻擊的形式,它利用了操作系統(tǒng)中的“fork()”系統(tǒng)調(diào)用。
SystemVerilog中的fork-join_any
評論