реклама на сайте
подробности

 
 
> Cимуляция Vivado XSIM c inremental compilation, Ну ооочень долго
Vengin
сообщение May 24 2018, 11:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Всем доброго дня. Хотел бы услышать мнения о «практичности» функциональной симуляции в Vivado с помощью встроенного симулятора XSIM.
Немного предыстории. Работаю с FPGA уже больше 10 лет, в основном XIilnx/Altera. Обычно непосредственно написание кода происходит во внешних редакторах (скажем SlickEdit), симуляция в Active-HDL (ооочень редко ModelSim), а непосредственно сборка/отладка уже в родных IDE Quartus/Xilinx ISE(Vivado). Пока работать с симулятором удобнее чем Active-HDL не приходилось. Пару рас пытался "пересаживаться" на ModelSim, но как-то не срасталось (ИМХО с ним нормально работаnь только скриптами).

Вот сейчас появилась необходимость достаточно тесно работать с Vivado 2017.4 и симулировать SoC проекты (частично и/или полностью).
Наличие встроенного XSIM вроде как должно помогать достаточно удобно симулировать всю "встроенную" инфраструктуру Xilinx-а, т.е. многочисленные IP cores (открытые и шифрованные), AXI интерфейсы и т.п. Для каждого IP Core можно сгенерить Example Design, с готовым рабочим тестбенчем (иногда и несколько тестбенчей, для разных вариантов). При этом поддерживается смешанная симуляция (т.е. и VHDL, Verilog, SystemVerilog). И вроде как нет необходимости заморачиваться со сторонними симуляторами (ModelSim, и т.п.), генерить симуляционные библиотеки и подгонять скрипты.
Казалось бы всё здорово. Но что-то в XSIM запуск симуляции (даже для небольших проектов) занимает весьма существенное количество времени, т.к. происходит полная компиляция. Не совсем понятно, как эффективно заниматься симуляционным дебагом, т.е. вносить небольшие изменения в код и перезапускать симуляцию для анализа изменений. Вроде как начиная с версии Vivado 2016.3 имеется опция incremental compilation, которая должна упростить жизнь, т.е. при перезапуске симуляции отслеживать и перекомпиливать только измененные компоненты. Но на практике эффект не особо заметен. Даже с включенной опцией "incremental compilation" в консоли видно, что перекомпиливается вроде как всё (начиная с IEEE библиотек), хоть и появляются --incr флаги. В итоге задержка итерации перезапуска симуляции вместо пары секунд может занимать минуты и более, что совершенно непрактично.
На форумах Xilinx-а нашёл пару веток, где народ жалуется на подобное, но чётких ответов как-то нет.

Так вот хотел бы спросить у людей, кто как на практике вообще решает вопросы такие проблемы.
1) Пользуется ли кто вообще встроенным в Vivado XSIM, и при этом симуляция занимает «вменяемое» количество времени? Может можно как-то настроить XSIM или весь Vivado проект (использовать некое подобие partitions или OOC для симуляции, как-то оптимизировать tcl скриптами, …)?
2) Что насчёт сторонних симуляторов (где можно более менее полноценно дежрать целый проект и производить инкрементальную компиляцию)?
Изначально хотел продолжать использовать Active-HDL. Но, к примеру, у меня даже не получилось скомпилить симуляционные библиотеки, т.к. для Vivado 2017.4 требуется вроде Active-HDL >=10.4, а у меня 9.1. Худо бедно вручную удалось скомпилить некоторые библиотеки но лишь частично. Тем не менее для симуляции это не всегда помогает, особенно когда смешанная симуляция, да и не поддерживаются многие SystemVerilog специфичные вещи.

Сообщение отредактировал Vengin - May 24 2018, 11:19
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RobFPGA
сообщение May 24 2018, 12:47
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(Vengin @ May 24 2018, 14:11) *
Всем доброго дня. Хотел бы услышать мнения о «практичности» функциональной симуляции в Vivado с помощью встроенного симулятора XSIM.
Увы - этот инструмент пока еще молод и зелен. Для мелочи его как то хватает а для большой работы увы неудобен. Но иногда выбирать не приходится - что есть тем и пользуешься.

Цитата(Vengin @ May 24 2018, 14:11) *
... симуляция в Active-HDL (ооочень редко ModelSim), а непосредственно сборка/отладка уже в родных IDE Quartus/Xilinx ISE(Vivado). Пока работать с симулятором удобнее чем Active-HDL не приходилось. Пару рас пытался "пересаживаться" на ModelSim, но как-то не срасталось (ИМХО с ним нормально работаnь только скриптами).
Так и есть скриптами - но когда привыкаешь то назад уже и не хочется - сам долгое время работал в Aldec но проекты росли и начиная с какого то размера стало удобнее работать в Aldec скриптами sm.gif. Ну а потом уже на ModelSim переключится было просто и естественно.

Цитата(Vengin @ May 24 2018, 14:11) *
Вот сейчас появилась необходимость достаточно тесно работать с Vivado 2017.4
...
Наличие встроенного XSIM вроде как должно помогать достаточно удобно симулировать всю "встроенную"
...
Казалось бы всё здорово. Но что-то в XSIM запуск симуляции (даже для небольших проектов) занимает весьма существенное количество времени, т.к. происходит полная компиляция.
...
Да это беда и быстрого решения этой медленной беды в ближайшее время мне кажется не будет.

Цитата(Vengin @ May 24 2018, 14:11) *
Так вот хотел бы спросить у людей, кто как на практике вообще решает вопросы такие проблемы.
1) Пользуется ли кто вообще встроенным в Vivado XSIM, и при этом симуляция занимает «вменяемое» количество времени? Может можно как-то настроить XSIM или весь Vivado проект (использовать некое подобие partitions или OOC для симуляции, как-то оптимизировать tcl скриптами, …)?
Можно попробовать на простых примерах сделать компиляцию и запуск xsim без GUI чисто скриптами (xvlog,xvhdl -> xelab -> xsim). И посмотреть что там отжирает больше всего времени. В Vivado многое делается не оптимально еще на этапе IDE. Многое делается спекулятивно (философия лучше перебдеть) - часто одни и те же библиотечные исходники компилируются по нескольку раз. Так как на них есть зависимости в разных корках.

Цитата(Vengin @ May 24 2018, 14:11) *
2) Что насчёт сторонних симуляторов (где можно более менее полноценно дежрать целый проект и производить инкрементальную компиляцию)?
Изначально хотел продолжать использовать Active-HDL. Но, к примеру, у меня даже не получилось скомпилить симуляционные библиотеки, т.к. для Vivado 2017.4 требуется вроде Active-HDL >=10.4, а у меня 9.1.
Увы старыми версиями симов не получится работать - вроде начиная с Vivado 2017 Xilinx поменяли ключи шифрования исходников для симуляции соответственно старые версии симов не могут их компилировать.

А так да - я все симулирую в ModelSim причем скриптами для запуска из Vivado не пользуюсь - своими парсю скрипты генерируемые Vivado для корок и BD что позволяет мне выбирать что и когда и куда компилировать. A Sublime и ModelSim делает процесс "симуляционного дебага" гладким и шелковистым sm.gif

Успехов! Rob.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 21:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016