Fork/join
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/09 07:27 UTC 版)
「Verilog」の記事における「Fork/join」の解説
fork/joinのペアは、Verilog内で並列処理を作るために使われる。fork/joinのペアの間にある文(またはブロック)は、実行フローでforkに到達したタイミングで同時に実行が開始され、forkとjoinの間で最も長い時間実行される文またはブロックの終了後、残りのコードの実行が再開する。 initial fork $write("A"); // 文字 A を出力する $write("B"); // 文字 B を出力する begin #1; // 1 単位時間待つ $write("C");// 文字 C を出力する end join 上のように書いた場合、出力は"ABC"または"BAC"のいずれにもなる可能性がある。最初の$writeと2番目の$writeのシミュレーションの実行順序は、シミュレータの実装に依存するためである。シミュレータによっては、意図的に順序をランダム化していることもある。そのため、偶然競合状態が起きたり、意図的な非決定的な振る舞いをする場合がある。 VHDLは、Verilogとは違い、複数のプロセスを動的に生成することはできない。
※この「Fork/join」の解説は、「Verilog」の解説の一部です。
「Fork/join」を含む「Verilog」の記事については、「Verilog」の概要を参照ください。
- Fork/joinのページへのリンク