SystemC: Как я могу отслеживать все сигналы в иерархии модулей?

Я хочу проследить все сигналы в моем дизайне до файла VCD. Можно ли автоматизировать этот процесс? Я не хочу добавлять каждый сигнал для трассировки вручную (с помощью sc_trace (..))


person random    schedule 25.01.2017    source источник
comment
Процесс вполне можно автоматизировать. Большинство инструментов поставщиков EDA уже предоставляют такие решения. Одна вещь, которую я делаю, это пишу методы трассировки во всех доступных модулях, которые я написал, и вызываю метод трассировки из самой верхней иерархии. Вы можете увидеть попытку здесь, а не одну из моя самая красивая реликвия кодирования.   -  person AmeyaVS    schedule 18.04.2017
comment
Я обнаружил, что правильным решением является использование сценариев lldb/gdb для поиска всех сигналов с использованием отладочной информации и добавления их в трассировку. Но у меня пока нет времени его реализовать.   -  person random    schedule 18.04.2017
comment
Я думаю, что поставщики EDA используют gdb.   -  person random    schedule 18.04.2017
comment
Я не думаю, что поставщики EDA будут использовать GDB из-за проблем с лицензированием, они очень строги в отношении своей устаревшей кодовой базы и магии проприетарного кода. Они могут использовать что-то подобное или просто вызывать sc_trace всякий раз, когда вы объявляете порт sc_in/out и связываете их, что легко выполнимо, если вы осмелитесь изменить реализацию OSCI SystemC.   -  person AmeyaVS    schedule 19.04.2017
comment
Современные коммерческие симуляторы поддерживают трассировку простых переменных C++ (не только sc_objects). Единственный способ извлечь их — использовать отладочную информацию и RTTI. И я не думаю, что поставщики EDA имеют достаточно ресурсов и опыта, чтобы написать клон gdb/lldb с нуля. Так что я на 99% уверен, что они реализуют трассировку с использованием сценариев GDB.   -  person random    schedule 19.04.2017
comment
В основном они извлекают указатели на все переменные в дизайне, используя отладочную информацию, а затем вызывают что-то похожее на sc_trace.   -  person random    schedule 19.04.2017
comment
Я не очень уверен в том, что они используют инструменты с открытым исходным кодом, поскольку все они любят изобретать велосипед снова и снова, вместо того, чтобы поддерживать/улучшать открытые инструменты и стандарты.   -  person AmeyaVS    schedule 20.04.2017


Ответы (1)


В итоге я реализовал скрипт для отладчика GDB, который автоматически отслеживает сигналы и другие элементы sc_module в дизайне.

Если кому-то будет полезно, вот исходники: https://github.com/ripopov/gdb_systemc_trace< /а>

person random    schedule 05.05.2017