fork-join_none和fork-join、fork-join_any的區別一樣在于進程退出機制以及對于父進程的影響。
fork-join_none不會占用任何父進程的時間,即不會影響父進程。
基于這個特性,如果你希望啟動一個并行的進程,而又不需要等待它結束就可以使用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
+關注
關注
28文章
1351瀏覽量
110397 -
System
+關注
關注
0文章
165瀏覽量
37078 -
進程
+關注
關注
0文章
204瀏覽量
13996
原文標題:SystemVerilog中的fork-join_none
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Parallel (Fork-Join) Block is not supported
各位大神,嘗試編譯了一小段模塊,結果說是不支持并行(fork——join)塊,這個是要升級quartusII嗎?求問,謝謝!Error (10129): Verilog HDL
發表于 01-25 19:05
begin ...... end 與 fork ...... join 語句的 區別 ------ 轉載
的執行時間為5d。 (2)fork……join,用來組合需要并行執行的語句,被稱為并行塊。例如:parameter d = 50; reg[7:0] r; fork //由一系列延遲產生的波形 # d r
發表于 06-02 21:31
Fork/Join的框架機制詳解
一、Fork/Join框架 Java提供Fork/Join框架用于并行執行任務,核心的思想就是將一個大任務切分成多個小任務,然后匯總每個小任務的執行結果得到這個大任務的最終結果。
發表于 01-05 17:51
如何利用system verilog的fork join_none實現信號打拍操作呢
利用system verilog的fork join_none,能夠實現打拍操作。從而不需要寫其他的邏輯來實現打拍操作。下面,介紹下,如何實現。有3個信號,a,b,c,現在需要實現,b是a的打拍,c
發表于 04-02 17:25
聊一聊如何在仿真中如何“多進程”時間管理
的進程執行完畢后退出fork-join_none:所有的進程只要有一個執行結束即退出fork-join_any: 不等待任何一個進程執行完畢即退出。但凡熟悉Verilog、SystemVerilog
發表于 06-29 16:11
Fork/Join框架的軟件重構及性能分析
框架進行重構,并以senes程序為例,詳細地說明了重構的過程。在實驗中,首先,測試了每個程序在不同閾值下使用Fork/Join框架分別遞歸1、2、3次執行程序的時間,進而選擇相對較好的閾值;然后
發表于 12-29 10:06
?0次下載
arm交叉編譯器gnueabi、none-eabi、arm-eabi等的區別
arm-none-eabi:這個是沒有操作系統的,自然不可能支持那些跟操作系統關系密切的函數,比如fork(2)。他使用的是newlib這個專用于嵌入式系統的C庫。
發表于 05-07 10:30
?1.5w次閱讀
SystemVerilog中對于process的多種控制方式
Block,也就是語句塊,SystemVerilog提供了兩種類型的語句塊,分別是begin…end為代表的順序語句塊,還有以fork…join為代表的并發語句塊。
SystemVerilog中的fork-join_any
fork-join_any和fork-join有所不同,fork-join_any的父進程一直阻塞,直到任何一個并行的子進程結束。
SystemVerilog中的fork-join
在fork-join語句塊中,每個語句都是并發進程。在這個語句塊中,父進程一直被阻塞,直到所有由“fork-join”產生的子進程都執行完。
如何優化MySQL中的join語句
在mysql中,join 主要有Nested Loop、Hash Join、Merge Join 這三種方式,我們今天來看一下最普遍 Nested Loop 循環連接方式,主要包括三種
評論