Comments 14
Добрый день! Недавно пытался сделать что-то похожее для VHDL и уперся в то, что в отличии от Verilog'a важен порядок компиляции файлов. Серьезные IDE справляются с этим играючи, но «выковырять» от туда, как они это делают — не вышло. В связи с этим вопрос — нет ли каких-то наработок подобного для VHDL?
Пы.Сы.Если честно, то получилось добраться до порядка файлов в компиляции через non-project mode Vivado, но это слишком уж костыльный вариант. Если при этом в проекте есть криптованные ядра, то наличие порядка файлов уже становится мало, а генерить скрипты для симуляции Vivado в этом режиме не может. Создавать каждый раз проект — то же не слишком удобно.
Пы.Сы.Если честно, то получилось добраться до порядка файлов в компиляции через non-project mode Vivado, но это слишком уж костыльный вариант. Если при этом в проекте есть криптованные ядра, то наличие порядка файлов уже становится мало, а генерить скрипты для симуляции Vivado в этом режиме не может. Создавать каждый раз проект — то же не слишком удобно.
+2
Приветствую!
С VHDL никогда не работал, так что ничего конкретного подсказать, к сожалению, не смогу. Есть мысль попробовать запустить симуляцию вашего проекта, используя NativeLink квартуса и посмотреть, какой скрипт он сгенерит, затем попробовать проанализировать его) Что касается наличия чип-зависимых IP, тут уже нужны библиотеки производителя, их надо использовать при указании библиотек в ModelSim.
Удачи!
С VHDL никогда не работал, так что ничего конкретного подсказать, к сожалению, не смогу. Есть мысль попробовать запустить симуляцию вашего проекта, используя NativeLink квартуса и посмотреть, какой скрипт он сгенерит, затем попробовать проанализировать его) Что касается наличия чип-зависимых IP, тут уже нужны библиотеки производителя, их надо использовать при указании библиотек в ModelSim.
Удачи!
0
А вы попробуйте для начала в ModelSim создать проект, добавить в него все необходимые файлы, а потом запустите Auto-Generating Compile Order. На основе расставленной очередности делайте базовый сценарий. Проектом можно больше не пользоваться, а организовывать все на tcl, sh или что вам нравиться. Входе работы делаем редакцию ручками это уже не так сложно.
+1
некоторые IDE умеют автоматически компилировать исходники (синтезируемое описание) для симуляции. HDL Designer точно умеет сам все скомпилить для модельсима, остается только файлы тестбенча скомпилить, которых обычно намного меньше и не стоит больших трудов их в скрипт добавить. вроде вивада тоже умеет, но могу ошибаться, давно с ней не работал
0
Похожий подход к отладке видел вот здесь :
— .bat создает и удаляет каталог для всего хлама, связанного с симуляцией;
— .tcl — оперирует компиляцией, сигналами и отладкой
Я у себя добавляю только формирование строки vlog по частям (чтобы не в одну линию).
Достаточно удобно, когда руками (в интерфейсе) делать влом, а с make-файлами связываться еще не хочется.
— .bat создает и удаляет каталог для всего хлама, связанного с симуляцией;
— .tcl — оперирует компиляцией, сигналами и отладкой
Я у себя добавляю только формирование строки vlog по частям (чтобы не в одну линию).
Достаточно удобно, когда руками (в интерфейсе) делать влом, а с make-файлами связываться еще не хочется.
+1
Мне посоветовали добавить опрос, прикрепил его, проголосуйте, пожалуйста) Если будут голоса за линукс, надо будет дополнить статью инструкциями, как то же самое делать в линуксе
0
на самом деле скриптинг запуска тестбенчей намного более мощная штука. можно при запуске устанавливать параметры в зависимости от который будет исполняться конкретный тест (набор тестов) из всего тестового окружения путем изменения в верхнем уровне тестбенча значений переменных, на основании выбранного теста можно выбирать различные времянки предварительно подготовленные (кстати, намного удобнее держать скрипт создания времянки в отдельном файле, особенно если много сигналов выведено), можно отключать некоторые элементы DUT, особенно если тестируемый модуль имеет множество блоков, что может ускорить симуляцию в некоторых случаях значительно)
+1
Подробней про команды ModelSim Command Reference Manual и User’s Manual.
0
1. Добавим, что можно не только .do, но и .tcl
2. Вы напрасно затеваете папку rtl_work. Многие разработчики пользуются дефолтной папкой/библиотекой work и они вас не сразу поймут.
Строчки:
можно заменить на:
3. Кроме того удалять библиотеку не обязательно, можно создавать новую поверх старой. Он конечно напишет предупреждение что библиотека уже есть, но ничего плохого не случится.
4. Зачем брать имена компилируемых файлов в фигурные скобки? Если это coding style, то вы не сможете подставить переменную в путь файла. Например {$dir/your_file.sv} не сработает.
5. -L нужен при линковке сторонних (кроме work) библиотек. work линкуется по умолчанию.
6. В vlog -work work совершенно излишне. Это делается по умолчанию.
2. Вы напрасно затеваете папку rtl_work. Многие разработчики пользуются дефолтной папкой/библиотекой work и они вас не сразу поймут.
Строчки:
vlib rtl_work
vmap work rtl_work
можно заменить на:
vlib work
3. Кроме того удалять библиотеку не обязательно, можно создавать новую поверх старой. Он конечно напишет предупреждение что библиотека уже есть, но ничего плохого не случится.
4. Зачем брать имена компилируемых файлов в фигурные скобки? Если это coding style, то вы не сможете подставить переменную в путь файла. Например {$dir/your_file.sv} не сработает.
5. -L нужен при линковке сторонних (кроме work) библиотек. work линкуется по умолчанию.
6. В vlog -work work совершенно излишне. Это делается по умолчанию.
+1
Sign up to leave a comment.
Написание и запуск скрипта для симуляции Verilog-кода в ModelSim