在 Verilog 中添加头文件
Adding header files in Verilog
我想将头文件添加到我的 Verilog 项目中。这应该是一件很容易做到的事情。然而,事实证明这并非微不足道。这是我的头文件。假设文件名为 parameters.vh
`ifndef _parameters_vh_
`define _parameters_vh_
parameter Tm = 2;
parameter Tn = 2;
`endif
然后我把它包含到顶层模块
`include "parameters.vh"
但是无法合成。这是错误消息:
parameters.vh(3) 处的 Verilog HDL 错误:声明全局对象是 SystemVerilog 的一项功能。
我想知道是否有人可以帮助我。
在 Quartus-II 中,您可以通过菜单 Assignments -> Settings -> Verilog HDL Input 启用 SystemVerilog 功能。
否则,您必须将参数文件包含在模块定义中,如下所示:
module top (x,y);
`include "parameters.vh"
input x;
output y;
assign y = x;
endmodule // top
这不是 systemverilog 问题,只要想想预处理器在找到您的包含行时正在做什么。你不能在模块外有参数,没有意义。
我想将头文件添加到我的 Verilog 项目中。这应该是一件很容易做到的事情。然而,事实证明这并非微不足道。这是我的头文件。假设文件名为 parameters.vh
`ifndef _parameters_vh_
`define _parameters_vh_
parameter Tm = 2;
parameter Tn = 2;
`endif
然后我把它包含到顶层模块
`include "parameters.vh"
但是无法合成。这是错误消息:
parameters.vh(3) 处的 Verilog HDL 错误:声明全局对象是 SystemVerilog 的一项功能。 我想知道是否有人可以帮助我。
在 Quartus-II 中,您可以通过菜单 Assignments -> Settings -> Verilog HDL Input 启用 SystemVerilog 功能。
否则,您必须将参数文件包含在模块定义中,如下所示:
module top (x,y);
`include "parameters.vh"
input x;
output y;
assign y = x;
endmodule // top
这不是 systemverilog 问题,只要想想预处理器在找到您的包含行时正在做什么。你不能在模块外有参数,没有意义。