SystemC波形出力
- 波形表示ツール
- 波形表示ツール(GTKWave) for Linux,Cygwin
- 波形表示ツール(Wave VCD) for Windows
- 波形表示ツール(CvSDL) for Windows
波形出力の設定は、sc_mainとか、検証環境用のファイル内に記述する。
簡単なのはsc_main内に記述する方法。
TLMベースでは波形はほとんど見ないと思う。BCAのバス設計時は見ると思う。
簡単なのはsc_main内に記述する方法。
TLMベースでは波形はほとんど見ないと思う。BCAのバス設計時は見ると思う。
VCD波形ファイル出力
- sc_main記述例
#include <systemc.h>
#include "TOP.h"
int sc_main(int argc, char* argv[])
{
sc_clock CLK( "CLK", 10, SC_NS );
TOP *top = new TOP("TOP"); // モジュール実体化
#ifdef SYSC_DUMP_VCD_FILE
sc_trace_file *trace_f;
trace_f = sc_create_vcd_trace_file( "systemc" ); // 出力ファイル名を指定する(systemc.vcd)
//((vcd_trace_file*)trace_f)->sc_set_vcd_time_unit(-9); // ns(ナノ秒)単位
trace_f->set_time_unit( 1.0, SC_NS ); // timescale 1ns(ナノ秒)単位 (v2.2.0)
sc_trace( trace_f, CLK, "CLK" ); //CLKを波形ファイル出力として指定
sc_trace( trace_f, TOP->in_data, "TOP.in_data" ); //下位階層の信号を指定
// sc_trace ・・・
#endif // SYSC_DUMP_VCD_FILE
sc_start(); // シミュレーション開始
#ifdef SYSC_DUMP_VCD_FILE
sc_close_vcd_trace_file( trace_f );
#endif // SYSC_DUMP_VCD_FILE
return 0;
}
TOPモジュールの実体化(すべてのモデル実体化)のあとに設定する。
sc_start()実行よりも前に設定する。
波形出力できるのは、sc_in<>, sc_out<>, sc_signal<>で普通の変数は表示できない。
シミュレーション実行が終了すると、波形ファイル"systemc.vcd"が出力される。
波形出力の有無の切り替えを#ifdef ~#endifでできるようにすると検証しやすくなる。
Makefileのコンパイルオプションで"-DSYSC_DUMP_VCD_FILE"をつけると波形ファイルが出力される。
sc_start()実行よりも前に設定する。
波形出力できるのは、sc_in<>, sc_out<>, sc_signal<>で普通の変数は表示できない。
シミュレーション実行が終了すると、波形ファイル"systemc.vcd"が出力される。
波形出力の有無の切り替えを#ifdef ~#endifでできるようにすると検証しやすくなる。
Makefileのコンパイルオプションで"-DSYSC_DUMP_VCD_FILE"をつけると波形ファイルが出力される。
WIF波形出力
この波形ファイル形式はよく知らない。
とりあえずVCDと同じように設定すればよい。
以下の点が異なる。単純に"vcd"だったのを"wif"とすればよい。
とりあえずVCDと同じように設定すればよい。
以下の点が異なる。単純に"vcd"だったのを"wif"とすればよい。
sc_trace_file *trace_f;
trace_f = sc_create_wif_trace_file( "systemc" ); // 出力フェイル名を指定する
//((wif_trace_file*)trace_f)->sc_set_vcd_time_unit(-9); // ns(ナノ秒)単位
trace_f->set_time_unit( 1.0, SC_NS ); // 1ns(ナノ秒)単位 (v2.2.0)
・・・
sc_close_wif_trace_file(tf);