Поддержка SystemVerilog от icarus (компилятор iverilog)

Я использую iverilog на Mac, и у меня проблемы с компиляцией некоторых кодов, которые включают блоки Always_ff и Always_comb. ModelSim компилирует эти коды без каких-либо проблем. Можно ли настроить iverilog так, чтобы он поддерживал блоки Always_ff и Always_comb, или они просто не поддерживаются компилятором???

Заранее спасибо!

1 ответ

Решение

always_comb, always_latch а также always_ff Вот некоторые из ключевых слов, которые были введены в SystemVerilog IEEE Std 1800-2012. Они не являются частью Verilog IEEE Std 1364-2005, который поддерживает компилятор Icarus Verilog.

Я не знаю ни о каких бесплатных симуляторах SystemVerilog. Однако вы всегда можете смоделировать и синтезировать дизайн SystemVerilog с помощью EDA Playground.

Ответ AndresM не совсем точен. Icarus verilog по умолчанию использует IEEE Std 1364-2005, и это лучший поддерживаемый стандарт, но его можно изменить с помощью-gпереключатель. Отman iverilog:

-g1995| -g2001 |-g2001-noconfig|-g2005|-g2005-sv|-g2009|-g2012

Выберите создание языка Verilog для поддержки в компиляторе. Это выбирает между IEEE1364-1995, IEEE1364-2001, IEEE1364-2005, IEEE1800-2005, IEEE1800-2009 или IEEE1800-2012. Icarus Verilog в настоящее время по умолчанию использует язык поколения IEEE1364-2005. Этот флаг используется для ограничения языка набором ключевых слов / функций, это позволяет моделировать старый код Verilog, который может использовать новые ключевые слова, и для совместимости с другими инструментами. Большая часть функций поколений IEEE1800 в настоящее время не поддерживается. Поколения IEEE1800 действительно анализируют все ключевые слова, поэтому их можно использовать для проверки того, что совместимый с IEEE1364 код Verilog не использует какие-либо новые ключевые слова IEEE1800.

В самом деле, он говорит вам об этом при попытке использовать распакованные массивы в портах:

ошибка: порты не могут быть распакованы массивами. Попробуйте включить поддержку SystemVerilog.

Другие вопросы по тегам