在SystemC中获取VCD跟踪信号的名称

时间:2012-06-20 14:47:33

标签: systemc

SystemC允许通过sc_trace函数跟踪信号(或成员等),结果是可以在其他程序中使用的VCD文件。这些信号的命名是相当随意的,函数接受任何字符串(不必与变量本身相关)作为要转储的信号的名称。

问题是:我可以通过SystemC API以某种方式获取从sc_interface对象到用作其名称的字符串的映射吗?我正在以其他方式记录大量数据,并且能够以某种方式将我检索到的值连接到VCD数据是很好的,如果我只有这样的话,我想不出办法做到这一点转储值和随机字符串标识符。

1 个答案:

答案 0 :(得分: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 ) 
{}

您想使用后一个构造函数