如何使用 `include 从外部文件导入参数?
How can I import parameters from external file using `include?
我想从外部文件导入一组 参数 值到我的 Verilog 源文件(不是 System Verilog)。
我正在尝试这个:
对于主模块:
module temp (
`include "file.vh"
input [WIDTH:0] data_in,
output reg [WIDTH:0] data_out,
input clk
);
always @(posedge clk) begin
data_out <= data_in;
end
endmodule
和一个 file.vh
文件:
parameter WIDTH = 12;
请在此处纠正我,因为此代码无效。
参数要么在模块 body 中声明,要么在 header:
的单独部分中声明
module temp(...);
`include "parameters.vh"
...
endmodule
parameters.vh:
parameter WIDTH = 12; // Use semicolons to terminate the lines
parameter ANOTHER = 4;
或者:
module temp #(`include "parameters.vh") (...);
...
endmodule
parameters.vh:
parameter WIDTH = 12, // Use commas on each line except the last one
parameter ANOTHER = 4
因为包含文件就像复制粘贴包含文件中的代码,您需要确保末尾的代码是有效的 Verilog。
使用 verilog95 端口声明样式,您可以使用以下内容:
module temp (data_in, data_out, clk);
`include "file.vh"
input [WIDTH:0] data_in;
output reg [WIDTH:0] data_out;
input clk;
...
endmodule
在这种情况下,您可以在包含文件中使用分号分隔的参数状态。
使用 v2k 样式的端口声明,如您的示例所示,您必须使用 #(...)
声明语法在端口之前声明参数。您仍然可以在括号中使用 `include
语法作为 int @Unn 的示例:
module temp #(`include "file.vh") (...);
要求您的参数以逗号分隔。
我想从外部文件导入一组 参数 值到我的 Verilog 源文件(不是 System Verilog)。 我正在尝试这个:
对于主模块:
module temp (
`include "file.vh"
input [WIDTH:0] data_in,
output reg [WIDTH:0] data_out,
input clk
);
always @(posedge clk) begin
data_out <= data_in;
end
endmodule
和一个 file.vh
文件:
parameter WIDTH = 12;
请在此处纠正我,因为此代码无效。
参数要么在模块 body 中声明,要么在 header:
的单独部分中声明module temp(...);
`include "parameters.vh"
...
endmodule
parameters.vh:
parameter WIDTH = 12; // Use semicolons to terminate the lines
parameter ANOTHER = 4;
或者:
module temp #(`include "parameters.vh") (...);
...
endmodule
parameters.vh:
parameter WIDTH = 12, // Use commas on each line except the last one
parameter ANOTHER = 4
因为包含文件就像复制粘贴包含文件中的代码,您需要确保末尾的代码是有效的 Verilog。
使用 verilog95 端口声明样式,您可以使用以下内容:
module temp (data_in, data_out, clk);
`include "file.vh"
input [WIDTH:0] data_in;
output reg [WIDTH:0] data_out;
input clk;
...
endmodule
在这种情况下,您可以在包含文件中使用分号分隔的参数状态。
使用 v2k 样式的端口声明,如您的示例所示,您必须使用 #(...)
声明语法在端口之前声明参数。您仍然可以在括号中使用 `include
语法作为 int @Unn 的示例:
module temp #(`include "file.vh") (...);
要求您的参数以逗号分隔。