Jump to content

    
Sign in to follow this  
OparinVD

Симуляторы HDL, что для чего, что умеют

Recommended Posts

Соседняя тема про редакторы HDL подтолкнула меня к созданию подобной ветки про симуляторы.

Я хочу выбрать для себя средство отладки так, чтобы сразу всё стало качественно и по-взрослому :) Поставить всё, что есть на рынке, опробовать и выбрать физически не возможно, хотелось бы выбрать одно направление и развивать его. Из рекламных описаний ничего не поймешь, все без сомнения лидеры индустрии, и уж с ними процесс оладки точно сократится на 90%. С сайта Альдека, например, я так и не понял, чем классический ActiveHDL отличается от Rivera'ы. Собственно, вопрос можно распространить на все тулзы: что для чего предназначено? есть только вкус и цвет или есть некая узкая (или не очень узкая) специализация каждого инструмента?

По второму вопросу сначала повторюсь. Я с первого дня знакомства с ПЛИС работал с ActiveHDL. Мне функционала хватало, но я регулярно встречаю мнение, что он слабоват для верификации, и это наводит на мысли, что я что-то упускаю... Как я делаю: совсем простенькие низкоуровневые куски гоняю в интерактиве, для остального пишу тестбенч на SV. Где-то визуально анализирую результат, где-то пишу автоматическое сравнение с эталоном. Моделирует быстро, по крайней мере по сравнению с Vivado :) Отсюда вопрос: какими хотелками в области верификации полезно обзавестись разработчику? Какие фишки предлагают серьезные пакеты?

Share this post


Link to post
Share on other sites

изучите стандарт на SV, книги SV for design, SV for verification, UVM methodology manual от Яника Берджерона и вы сами сможете ответить на свой вопрос.

Share this post


Link to post
Share on other sites
1 hour ago, OparinVD said:

Собственно, вопрос можно распространить на все тулзы: что для чего предназначено?

Глобально ответ прост - удобство верификации и поддерживаемые функции/библиотеки/тулзы.

Серьёзные симуляторы предназначены не только погонять сигналы, но и для автоматизированного покрытия и верификации Вашего кода. И насколько удобно потом делать оценку покрытия.

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

Share this post


Link to post
Share on other sites
3 hours ago, des00 said:

изучите стандарт на SV, книги SV for design, SV for verification, UVM methodology manual

Спасибо, принял к сведению. Займусь, как только прожую тот кусок информации, который уже пришлось отхватить за последнее время :)

1 hour ago, Nick_K said:

Также гиганты индустрии могут предлагать как миксед-сигнал симуляцию, так и быструю бэк-аннотейтед симуляцию

На сегодня миксед-сигнал мне не нужен, на потребляемых ваттах мы не экономим. Бэк-аннотейтед для себя пока тоже не вижу. Я гоняю модель на чисто функциональном уровне, потом скармливаю проект Виваде, и, если тайм-анализ сказал Ок, то я этим удовлетворен. Code-coverage в ActiveHDL видел, но не пользовался, надо будет уделить ему время. SV модули у меня написаны на средне-колхозном уровне, Альдек их спокойно переваривает и без проблем разрешает напрямую кидать на диаграмму... Значит ли это, что на данном этапе своего развития мне нет смысла пересаживаться на что-то новое?

И еще вопрос: чем всё-таки отличаются ActiveHDL и Rivera? Одно является логическим развитием другого или они всё-таки для разных задач?

Share this post


Link to post
Share on other sites
14 minutes ago, OparinVD said:

И еще вопрос: чем всё-таки отличаются ActiveHDL и Rivera? Одно является логическим развитием другого или они всё-таки для разных задач?

Rivera - advanced verification, Aldec обрезан. Если ООП не используете, то не заметите разницы

Share this post


Link to post
Share on other sites

А ООП это что? Объектно-ориентированное проектирование?

Я почему в сторону Ривьеры смотрю, она вроде как под Линукс должна работать. Мне сейчас пришлось ActiveHDL на виртуальной машине запускать и через папку синхронизации давать исходники Виваде. Вроде не сказать, что сильное извращение, но если получится без него, то будет лучше :)

Share this post


Link to post
Share on other sites
33 minutes ago, OparinVD said:

А ООП это что? Объектно-ориентированное проектирование?

объектно ориентированное программирование, все для constraint based verification. но это вам в те 4 ре книги что я вам уже советовал. Движок альдека это обрезанная ривера.

Share this post


Link to post
Share on other sites
8 hours ago, OparinVD said:

Значит ли это, что на данном этапе своего развития мне нет смысла пересаживаться на что-то новое?

Как сказать. Если нет никаких планов подниматься на гигантские проекты, тогда можно остаться и так. Не примите за подтрунивает или сарказм.

Просто если в перспективе может маячить что-то серьёзное, то ИМХО (лично моё мнение!), лучше сразу начинать пользоваться этими тулами. Ибо потом переходить будет сложнее и могут возникнуть различные неприятности и т.п.

Share this post


Link to post
Share on other sites
9 hours ago, Nick_K said:

Не примите за подтрунивает или сарказм

Ни в коем случае :)

Если сравнивать с поделками из прошлой жизни, то мой текущий проект уже выглядит огромным :) И да, я уже столкнулся с болью от того, что мой Альдек не может моделировать криптованные корки новых Vivado. Пришлось вести две версии проекта: одну можно моделировать в Альдеке, вторую можно синтезировать и моделировать в Vivado, но это вызвано несовместимостью версий, как уже обсуждали весной, а не принципиальными ограничениями Альдека...

Из планов на обозримое будущее - довести текущий проект до полнофункционального состояния, не задерживаясь на оптимизации. Основная цель - найти все грабли на прикладном уровне, и понять, где нужны чугунные мосты, а где ими никто пользоваться не будет. А потом займусь причесыванием, и вот там уже, надеюсь, подключу в свой арсенал все фишки SV.

12 hours ago, Nick_K said:

лучше сразу начинать пользоваться этими тулами.

Можете на свой вкус порекомендовать, в сторону какого тулза смотреть?

Хотелок у меня не так уж много:

хочется, чтобы весь маршрут оставался в рамках одного пакета, чтобы Виваде отдать готовый проверенный кубик и запустить синтез;

очень хочется FSM-рисовалку, без них прямо жизни нет :)

желательна версия под Линукс

Share this post


Link to post
Share on other sites
6 minutes ago, OparinVD said:

Можете на свой вкус порекомендовать, в сторону какого тулза смотреть?

Когда я говорил про переход на серьёзные тулы, то имел ввиду систему для моделирования. А это бесспорно Моделсим или Квеста (Зависит от потребностей и возможности купить/"установить" :smile: ). Рисовалки нет, но со временем в ней необходимость отпадёт, так как на SV проще кейсом описать все состояния и не заморачиваться графикой. Для документации вроде тот же Моделсим может нарисовать сгенерированый FSM. И с прожёвыванием Вивадовских корок проблем нет, нужно только сгенерировать нужные либы.

Share this post


Link to post
Share on other sites

А.. понял. Значит мой следующий шаг - прикрутить Моделсим как основной симулятор в Виваде и научиться его готовить. 

Тогда последний вопрос из области симуляторов. В свое время я его отбросил, как нечто из области фантастики, но вдруг я ошибался... Вопрос такой: могут ли современные симуляторы взаимодействовать с внешним миром кроме как через файловую систему? А именно, можно ли организовать такой стенд, где тестер накидывает пакеты через изернет и получает интерактивно ответы, но обработка идет не железе, а в модели? Или оно не стоит потраченных сил?

Share this post


Link to post
Share on other sites
24 minutes ago, Nick_K said:

 А это бесспорно Моделсим или Квеста

моделсим обрезанная квеста, по возможностям на уровне альдека, а работает медленнее.

Just now, OparinVD said:

Тогда последний вопрос из области симуляторов. В свое время я его отбросил, как нечто из области фантастики, но вдруг я ошибался... Вопрос такой: могут ли современные симуляторы взаимодействовать с внешним миром кроме как через файловую систему? А именно, можно ли организовать такой стенд, где тестер накидывает пакеты через изернет и получает интерактивно ответы, но обработка идет не железе, а в модели? Или оно не стоит потраченных сил?

DPI, PLI, matlab-cosimulation, Verilator

Share this post


Link to post
Share on other sites

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

13 minutes ago, des00 said:

Тогда последний вопрос из области симуляторов. В свое время я его отбросил, как нечто из области фантастики, но вдруг я ошибался... Вопрос такой: могут ли современные симуляторы взаимодействовать с внешним миром кроме как через файловую систему? А именно, можно ли организовать такой стенд, где тестер накидывает пакеты через изернет и получает интерактивно ответы, но обработка идет не железе, а в модели? Или оно не стоит потраченных сил?

Все основные симуляторы поддерживают  один или несколько внешних интерфейсов  DPI, PLI/VPI  - через них вы можете расширить функционал симулятора своими  С/С++  библиотеками.  Через них  же  делаются стыковка с надстройками типа Matlab или cocоtb.   Да и часть функционала той же UVM тоже делается через DPI.

 

На github можете найти готовый DPI інтерфейс для  общения с сетью из сима.

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Ух! Это ж еще одно поле не паханное! Боюсь, что в ближайшее время для моей психики будет проще считать, что "доктор сказал, ты умрешь..." :)

Спасибо за науку, дальше тогда сам копать буду

Share this post


Link to post
Share on other sites

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

19 minutes ago, OparinVD said:

Ух! Это ж еще одно поле не паханное! Боюсь, что в ближайшее время для моей психики будет проще считать, что "доктор сказал, ты умрешь..." :)

Спасибо за науку, дальше тогда сам копать буду

Копайте, копайте   :moil:
В том же  Aldec  есть (во всяком случае были раньше)  готовые примеры  для работы с DPI/PLI  по которым  я когда-то учился  работать c этим функционалом. 

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this