|
Cимуляция Vivado XSIM c inremental compilation, Ну ооочень долго |
|
|
|
May 24 2018, 11:11
|
Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Jun 2 2018, 11:43
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149

|
Немного оффтопик, но пока тема ещё свежая хочу уточнить 2 вещи связанные с ModelSim.
1) Может кто знает, где ModelSim хранит свои настройки GUI (шрифты, бэкграунды и т.п.), то что доступно по меню Tools -> Edit Preferences)? Предпочитаю переделывать цветовую схему под чёрный бэкграунд. Явной возможности Import/Export Preferences нет, а хочется иметь возможность переносимости настроек между разными версиями софта (сейчас в ModelSim SE-64 10.5). В папке самого ModelSim таких настроечных файлов найти не удалось (сделал полную копию и, после внесения изменений, сравнивал каталоги). В папке конкретного проекта (а вдруг?) тоже нет. Общий поиск по системным каталогам ничего не дал. Может в реестре где? UPD: сам спросил, сам ответил. Да в реестре: HKEY_USERS\<S-1-5-21-xxx>\Software\Model Technology Incorporated\ModelSim
2) Глюк масштабирования мышью в окне Wave. Когда в waveform пытаюсь делать Zoom с помощью мыши (Ctrl + колесо вверх/вниз), делается только Zoom In. Т.е. "Ctrl+колесо вверх" ="Ctrl+колесо вниз" = Zoom In (хотя что-то должно быть Zoom Out). ЕМНИП, в более ранних версиях ModelSim тоже была такая проблема. У меня одного такой глюк?
Сообщение отредактировал Vengin - Jun 2 2018, 12:05
|
|
|
|
|
Jun 2 2018, 15:30
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(Vengin @ Jun 2 2018, 14:43)  ... 1) Может кто знает, где ModelSim хранит свои настройки GUI (шрифты, бэкграунды и т.п.), то что доступно по меню Tools -> Edit Preferences)? Предпочитаю переделывать цветовую схему под чёрный бэкграунд. Явной возможности Import/Export Preferences нет, а хочется иметь возможность переносимости настроек между разными версиями софта (сейчас в ModelSim SE-64 10.5). Вы когда запускаете ModelSim посмотрите что пишется первой строчкой в консоле Код Reading ./в_недрах_системы/ModelSim10_4e/tcl/vsim/pref.tcl Можно по дефолту тут подкрутить или грузить свой похожий tcl с нужными настройками Цитата(Vengin @ Jun 2 2018, 14:43)  2) Глюк масштабирования мышью в окне Wave. Когда в waveform пытаюсь делать Zoom с помощью мыши (Ctrl + колесо вверх/вниз), делается только Zoom In. Т.е. "Ctrl+колесо вверх" ="Ctrl+колесо вниз" = Zoom In (хотя что-то должно быть Zoom Out). ЕМНИП, в более ранних версиях ModelSim тоже была такая проблема. У меня одного такой глюк? Направление зума зависит еще и от положения указателя мыши относитель но курсора. Удачи! Rob.
|
|
|
|
|
Jun 3 2018, 08:35
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149

|
Цитата(RobFPGA @ Jun 2 2018, 18:30)  Вы когда запускаете ModelSim посмотрите что пишется первой строчкой в консоле Код Reading ./в_недрах_системы/ModelSim10_4e/tcl/vsim/pref.tcl Можно по дефолту тут подкрутить или грузить свой похожий tcl с нужными настройками Как-то не всё получается настроить из pref.tcl. Например получилось настоить цвета "основных" окон (переменной PrefMain) - окна консоли, библиотек, проекта и т.п.. А вот поменять цвета текстового редактора переменной PrefSource так и не удалось. Цитата(RobFPGA @ Jun 2 2018, 18:30)  Направление зума зависит еще и от положения указателя мыши относитель но курсора. Однако. Какая-то корреляцию от положения указателя мыши и курсора вроде наблюдается, но понять логику мне честно говоря по прежнему не удалось. "Железно" Zoom In/Out удаётся получить только клавиатурой (ну или кнопки меню тулбаров). Да и то, понять где центр зума - загадка. Вообще конечно, GUI интерфейс моделсима живёт какой-то своей хаотичной жизнью. Тулбары прыгают как хотят, размеры и положения подокон то запоминаются то нет. Layout-ы вроде это контролируют, но тоже не совсем понятно как. Остаётся только верить, что со всременем удастся "приручить" большую часть скриптами, и что это не будет очень уж геморно. 2018-й год на дворе, а тут
|
|
|
|
Сообщений в этой теме
Vengin Cимуляция Vivado XSIM c inremental compilation May 24 2018, 11:11 RobFPGA Приветствую!
Цитата(Vengin @ May 24 2018... May 24 2018, 12:47 Vengin RobFPGA, спасибо за подробные разъяснения! Пож... May 26 2018, 11:49 RobFPGA Приветствую!
Цитата(Vengin @ May 26 2018,... May 26 2018, 13:01  Vengin Цитата(RobFPGA @ May 26 2018, 16:01) Все ... May 26 2018, 15:51   RobFPGA Приветствую!
Цитата(Vengin @ May 26 2018,... May 26 2018, 19:27    Vengin Цитата(RobFPGA @ May 26 2018, 22:27) если... May 31 2018, 09:08     RobFPGA Приветствую!
Цитата(Vengin @ May 31 2018,... May 31 2018, 10:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|