在Verilog中添加头文件

在Verilog中添加头文件,verilog,system-verilog,intel-fpga,Verilog,System Verilog,Intel Fpga,我想在我的Verilog项目中添加一个头文件。这应该是一件很容易做到的事情。然而,事实证明这并不是微不足道的。这是我的头文件。假设文件名为parameters.vh `ifndef _parameters_vh_ `define _parameters_vh_ parameter Tm = 2; parameter Tn = 2; `endif 然后我将其包含到顶部模块中 `include "parameters.vh" 但它不能被合成。这是错误消息: Verilog HDL在paramet

我想在我的Verilog项目中添加一个头文件。这应该是一件很容易做到的事情。然而,事实证明这并不是微不足道的。这是我的头文件。假设文件名为parameters.vh

`ifndef _parameters_vh_
`define _parameters_vh_
parameter Tm = 2;
parameter Tn = 2;
`endif
然后我将其包含到顶部模块中

`include "parameters.vh"
但它不能被合成。这是错误消息:

Verilog HDL在parameters.vh(3)处出错:声明全局对象是SystemVerilog的一项功能。
我想知道是否有人能帮我。

在Quartus II中,您可以通过菜单分配->设置->Verilog HDL输入启用SystemVerilog功能

否则,必须在模块定义中移动参数文件的包含,如下所示:

module top (x,y);
`include "parameters.vh"
   input x;
   output y;
   assign y = x;
endmodule // top

这不是systemverilog问题,只要想想预处理器在找到包含行时正在做什么。你不能在模块之外有参数,这是没有意义的

尽管在SystemVerilog中是合法的,但将全局定义放在模块之外从来都不是一个好主意。最好将它们放在一个包中并导入该包。