SystemVerilog:final(シミュレーション終了時に実行)

SystemVerilogでは、$finishが呼ばれた際(シミュレーション終了時)に
呼ばれるプロセスが追加されています。
SystemCでいうところの「end_of_simulation()」かと。
initial と対で、「final」らしいです。

○サンプルコード
 1|module testbench;
 2|
 3|  initial begin
 4|    time svtime = 0;
 5|    for(int i=0; i<10; i++) begin
 6|      svtime += i<<1;
 7|      #svtime;
 8|      #(i<<1);
 9|    end
10|    $finish(1);
11|  end
12|
13|  final begin
14|    $display("*********************************");
15|    $display("*** End of Simulation INFO    ***");
16|    $display("*** Simulation Time = %4t ps ***", $time);
17|    $display("*********************************");
18|  end
19|
20|endmodule:testbench

○実行結果
# vsim -L work -do {run -all; quit} -c testbench 
# Loading sv_std.std
# Loading work.testbench
# run -all
# ** Note: $finish : sample.sv(10)
# Time: 420 ps Iteration: 0 Instance: /testbench
# *********************************
# *** End of Simulation INFO ***
# *** Simulation Time = 420 ps ***
# *********************************

というような感じです。
今回は、適当にシミュレーション時間を動かして、
終了した時間を表示させてみました。
シミュレーション終了時の状態を見る際には便利かと思います。
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数