Получение имен для отслеживаемых сигналов 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 )
{}
Вы хотите использовать последний конструктор