Перейти к содержанию
    

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, OparinVD said:

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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? Одно является логическим развитием другого или они всё-таки для разных задач?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, OparinVD said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, OparinVD said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, OparinVD said:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Nick_K said:

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

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

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

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

12 hours ago, Nick_K said:

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, OparinVD said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 minutes ago, Nick_K said:

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

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

Just now, OparinVD said:

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

DPI, PLI, matlab-cosimulation, Verilator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

13 minutes ago, des00 said:

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

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

 

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

 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

19 minutes ago, OparinVD said:

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

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

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

 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...