LINUX.ORG.RU
ФорумTalks

verilog, systemverilog и icarus verylog

 ,


2

2

Всех приветствую.

Решил тут со скуки и небольшого профицита времени удариться в hdl. Давно лежит книжка про это дело (Панчул присоветовал, если что. У кого тут от него полыхает?)

Ну и вот. Читаю вдумчиво и пытаюсь повторить примеры из книги. Для компиляции и симуляции выбрал icarus. Маленький, свободный. Для визуализации gtkwave. Решил пока монструозные идешки не качать.

По умолчанию в моей слаке ставится Икарус 0.9.7. В нем как-то ничего не заработало. Написал Панчулу. Он говорит, в свободных поддержки систем верилога вообще нет. И предложил тренироваться на веб-сайте. Потом я немного нагуглил версию Икаруса 0.10.3, выкатил и у меня практически без проблем все собралось.

Ну а теперь вопрос знатокам верилога, системверилога и Икаруса. Какие есть ограничения по поддержке разных версий языков и Икаруса? Каких приятных штучек буду лишён в процессе познания? И вообще, чем отличается верилог от системверилога?

★★★★★

Стандарт верилога, особенно SystemVerilog’а делали укуренные в хлам чуваки. (На вскидку: https://ncrmnt.org/2017/06/17/the-painfull-verilog-preprocessor-pitfall/ )

SystemVerilog - читали стандарт С++ чтобы сделать также, ниасилили.

Даже у проприетарных инструментов поддержка языка очень и очень разная, падают на самых неожиданных местах, икарус не худший в этом плане. Киллер фича коммерческих тулов - инструменты для отладки, скорость моделирования больших проектов, sсhematic tracer, и т.п.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

Да, помню эту твою статейку.

В трех словах сравни икарус и верилатор? Судя по статье, верилатор подскажет в случае шитхепенс. С другой стороны икарус 0.10.3 может тоже уже не промолчит. Но в остальном как они?

yax123 ★★★★★
() автор топика
Ответ на: комментарий от yax123

Это немного разные вещи. Емнип из verilator’а ты не получишь vcd, и тебе надо с расчетом на него писать rtl (некоторые конструкции будут его замедлять и он кидает ворнинги). Его киллер-фича - он тебе транслирует твой дизайн в C++, который ты можешь встроить в свое приложение, например, гуй с мордочкой.

Я ни один из них ни для чего серьезнее пары-тройки флип-флопов не юзал, ибо на работе сижу в обнимку с глючным и косячным cadence xcellium.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от yax123

Приглашается Puzan для своего веского слова.

По поводу икаруса? Поддержка системверилога у него на зачаточном уровне, и насколько я знаю, расширять её не очень спешат. Да и в общем не очень-то и надо (хотя, можно было бы добавить наконец always_ff и always_comb). Для тренировок хватит с головой, и для серьёзных вещей тоже достаточно, при том что синтезируемое подмножество системверилога не сильно больше верилога (хотя, есть полезные вещи, типа интерфейсов). А если захочется в системверилог, в классы всякие, в ассерты, то всегда можно взять «условное бесплатную» версию modelsim.

Puzan ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.