Поддержка 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.