使用`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