2015-04-16 5 views
0

Я пытаюсь объявить динамический массив в источнике SystemVerilog, но получаю сообщение об ошибке, как:Как объявить динамические массивы в системе Verilog

Динамический диапазон разрешается только в SystemVerilog.

Инструмент, который я использую, это ModelSim. Кусок кода выглядит так:

module sv1; 

    reg [7:0] memory []; // 8 bit memory with 16 entries 

endmodule 

Возможные проблемы?

ответ

1

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

Вы можете попробовать код SystemVerilog в http://edaplayground.com

+0

Даже я пробовал это с vivado 14.2. Я получаю такую ​​же ошибку. Существует ли какая-либо декларация библиотеки для этого? –

+2

Инструменты, которые поддерживают SystemVerilog, обычно требуют расширения '.sv' или требуют передать аргумент, такой как' -sv', чтобы указать, что источником является SV, а не Verilog. – dwikle

1

Большинство инструментов лечения исходных файлов в командной строке или в списке проектов, как Verilog, если не дать файлу *.sv расширение, чтобы иметь их признаны SystemVerilog. Причина в том, что есть еще целый ряд инструментов, которые не поддерживают SystemVerilog, и вы должны явно просить об этом.

Существует также переключатель ModelSim -sv, который обрабатывает все файлы как SystemVerilog, но вы можете столкнуться с проблемами компиляции, если ваш старый код Verilog использует зарезервированные ключевые слова SystemVerilog, такие как bit.

+0

действительно я использовал расширение как .sv, я получаю эту ошибку, которая говорит, что Vivado Synthesis игнорирует спецификацию библиотеки для файлов Verilog или SystemVerilog. [C: /Users/Prasad/Desktop/vivado/system/proj1/proj1.srcs/sources_1/new/main.sv] –

+0

У меня есть xil_defaultlib (1) в другом разделе. Требуется ли какое-либо другое вмешательство? –

+0

Это совершенно другой вопрос. –

Смежные вопросы