使用`include 从外部文件导入值
Importing values from external file using `include
我想在外部文件中定义一组全局参数值并将它们导入到 Verilog(而非 SystemVerilog)文件中。我怎样才能做到这一点?我知道这可以在 VHDL 中使用 pkg 来完成,我期待类似的东西。
我正在尝试这个:
对于主模块:
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
文件:
`define WIDTH = 12;
请在此处纠正我,因为此代码无效。
您的代码中存在一些语法错误。您将 define
宏语法与 parameter
语法混淆了。我假设你想要宏。这些更改将修复错误。
对于文件 file.vh
,使用:
`define WIDTH 12
对于模块,使用:
`include "file.vh"
module temp (
input [`WIDTH:0] data_in,
output reg [`WIDTH:0] data_out,
input clk
);
always @(posedge clk) begin
data_out <= data_in;
end
endmodule
define
宏使用简单的文本替换。您只想用数字 12
替换 WIDTH
文本;您不想使用 =
或 ;
.
在模块中使用宏时,需要在前面加上反引号:
`WIDTH
我想在外部文件中定义一组全局参数值并将它们导入到 Verilog(而非 SystemVerilog)文件中。我怎样才能做到这一点?我知道这可以在 VHDL 中使用 pkg 来完成,我期待类似的东西。
我正在尝试这个:
对于主模块:
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
文件:
`define WIDTH = 12;
请在此处纠正我,因为此代码无效。
您的代码中存在一些语法错误。您将 define
宏语法与 parameter
语法混淆了。我假设你想要宏。这些更改将修复错误。
对于文件 file.vh
,使用:
`define WIDTH 12
对于模块,使用:
`include "file.vh"
module temp (
input [`WIDTH:0] data_in,
output reg [`WIDTH:0] data_out,
input clk
);
always @(posedge clk) begin
data_out <= data_in;
end
endmodule
define
宏使用简单的文本替换。您只想用数字 12
替换 WIDTH
文本;您不想使用 =
或 ;
.
在模块中使用宏时,需要在前面加上反引号:
`WIDTH