Нет, вы не должны ожидать, что Icarus Verilog будет поддерживать ключевое слово string
, которое было введено в IEEE Std 1800 для SystemVerilog.
Согласно веб-сайту Icarus :
Собственно компилятор предназначен для синтаксического анализа и разработки описаний проектов, написанных в соответствии со стандартом IEEE IEEE Std 1364-2005 . Это довольно большой и сложный стандарт, поэтому потребуется некоторое время, чтобы заполнить все темные переулки стандарта, но это цель.
IEEE Std 1800 не упоминается.
Вы можете посмотреть файл extensions.txt
с сайта github, в котором говорится:
Icarus Verilog поддерживает определенные расширения базового стандарта IEEE1364. Некоторые из них выбраны из расширенных вариантов языка, таких как SystemVerilog, ...
Но здесь нет упоминания о string
.
Я пробовал ваш код с опцией -g2012
на edaplayground , но я получаю ту же ошибку. Вы можете попробовать это на своей версии.