Добавление заголовочных файлов в Verilog

Я хотел добавить заголовочный файл в свой проект Verilog. Это должно быть очень легко сделать. Однако, оказывается, это не тривиально. Это мой заголовочный файл. Допустим, имя файла — параметры.vh

`ifndef _parameters_vh_
`define _parameters_vh_
parameter Tm = 2;
parameter Tn = 2;
`endif

Затем я включаю его в верхний модуль

`include "parameters.vh"

Но он не может быть синтезирован. Это сообщение об ошибке:

Ошибка Verilog HDL в parameters.vh(3): объявление глобальных объектов является функцией SystemVerilog. Мне интересно, может ли кто-нибудь помочь мне здесь.


person MTMD    schedule 12.12.2015    source источник


Ответы (2)


В Quartus-II вы можете включить функции SystemVerilog через меню «Назначения» -> «Настройки» -> «Ввод Verilog HDL».

В противном случае вам придется переместить включение файла параметров в определение модуля, как здесь:

module top (x,y);
`include "parameters.vh"
   input x;
   output y;
   assign y = x;
endmodule // top
person Martin Zabel    schedule 12.12.2015
comment
Хотя в SystemVerilog это разрешено, никогда не рекомендуется размещать глобальные определения вне модуля. Гораздо лучше поместить их в пакет и импортировать пакет. - person dave_59; 12.12.2015

это не проблема systemverilog, просто подумайте о том, что делает препроцессор, когда находит вашу включаемую строку. у вас не может быть параметров вне модулей, это не имеет смысла.

person Sam    schedule 15.12.2015