поиск всех зависимостей в компиляции verilog

Я пытаюсь дешево и точно предсказать все зависимости SystemVerilog для потока сборки. Можно переоценить зависимости и найти несколько файлов Verilog, которые не являются зависимостями sv, но я не хочу пропустить какие-либо зависимости.

Действительно ли мне нужно разбирать Verilog, чтобы определить все его зависимости? Существуют макросы препроцессора с включением галочки, но эти макросы с включением, похоже, не загружают весь код, который в настоящее время компилируется. Есть переменная окружения SYSTEM\_VERILOG\_PATH. Нужно ли мне анализировать каждый файл SystemVerilog в этой переменной SYSTEM\_VERILOG\_PATH, чтобы определить, какие модули определены в каких файлах?


person Ross Rogers    schedule 08.09.2009    source источник


Ответы (3)


Один хороший способ (если это синтезируемый код) - использовать список файлов вашего инструмента синтеза (например, .qsf для Altera). Обычно это все, но если это не так, вы можете посмотреть в журнале сборки отсутствующие файлы, которые были найдены.

person Brian Carlton    schedule 10.09.2009
comment
Отличная идея - посмотрю наши сценарии синтеза. - person Ross Rogers; 15.09.2009

Из легко компилируемой среды можно выгрузить исходные файлы (например, Cadence

-- To list source files used by the snapshot 'worklib.top:snap'
% ncls -source -snapshot worklib.top:snap

)
но если вы начинаете с нуля, боюсь, нет простого решения. Я бы выбрал прагматичный вариант: иметь файл конфигурации со всеми каталогами, содержащими файлы .sv, а затем компилировать все в нем. Если ваш проект имеет правильную файловую структуру, вы также можете разбить ее на модули, предоставив файлы конфигурации для каждого основного блока.

Надеюсь, это поможет.

person user276847    schedule 19.02.2010

Я знаю, что у Questa есть опция командной строки, в которой он сгенерирует для вас make-файл со всеми зависимостями после того, как вы скомпилируете свой дизайн. Я не уверен, есть ли это в других симуляторах.

Другой вариант - просмотреть и выгрузить скомпилированную библиотеку в симуляторе. Вы, вероятно, не получите фактических имен файлов, из которых скомпилированы модули, но будет намного проще проанализировать все ваши файлы verilog на предмет имен модулей, которые отображаются в скомпилированной библиотеке.

person SDGator    schedule 24.10.2009