Получение имен для отслеживаемых сигналов VCD в SystemC

SystemC позволяет отслеживать сигналы (или элементы и т. Д.) С помощью функции sc_trace, в результате получается файл VCD, который можно использовать в других программах. Именование этих сигналов довольно произвольно, хотя функция принимает любую строку (которая не должна относиться к самой переменной) в качестве имени для сигнала, который должен быть сброшен.

Вопрос в том, могу ли я как-то получить отображение объектов sc_interface на строку, которая используется в качестве их имени через SystemC API? Я записываю много данных другими способами, и было бы неплохо иметь возможность каким-то образом связать полученные значения с данными VCD, и я не могу придумать, как это сделать, если у меня есть только сбрасываемые значения и случайный строковый идентификатор.

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 ) 
{}

Вы хотите использовать последний конструктор

Другие вопросы по тегам