0

SystemC では、sc_trace 関数を介してシグナル (またはメンバーなど) をトレースできます。結果は、他のプログラムで使用できる VCD ファイルになります。ただし、これらのシグナルの命名はかなり恣意的なものであり、関数はダンプされるシグナルの名前として任意の文字列 (変数自体に関連付ける必要はありません) を受け入れます。

問題は、sc_interface オブジェクトから SystemC API を介して名前として使用される文字列へのマッピングをどうにかして取得できるかということです。他の方法で多くのデータをログに記録していますが、取得した値を何らかの方法で VCD データに接続できると便利です。ダンプされた値とランダムな文字列識別子。

4

1 に答える 1

1

あなたの質問を正確に理解しているかどうかはわかりませんが... SystemCは例えば違いを生みます。信号シミュレーション名と c++ インスタンス名。シミュレーション名は、オブジェクトのコンストラクター パラメーター リストで指定されます。構築中にオブジェクトの命名を省略しない限り、vcd ファイルに表示される名前はほとんど任意です。一方、名前を省略すると、代替コンストラクターによって名前が生成されます。混乱を避けるために、サンプル コードを提供することもできます。

    sc_signal()
: sc_prim_channel( sc_gen_unique_name( "signal" ) ),
  m_change_event_p( 0 ), m_cur_val( T() ), 
  m_delta( ~sc_dt::UINT64_ONE ), m_new_val( T() ), m_output( 0 ), 
  m_writer( 0 ) 
{}

explicit sc_signal( const char* name_ )
: sc_prim_channel( name_ ),
  m_change_event_p( 0 ), m_cur_val( T() ), 
  m_delta( ~sc_dt::UINT64_ONE ), m_new_val( T() ), m_output( 0 ), 
  m_writer( 0 ) 
{}

後者のコンストラクターを使用したい

于 2012-09-25T15:30:46.113 に答える