Как я могу импортировать параметры из внешнего файла с помощью `include? - PullRequest
0 голосов
/ 01 августа 2020

Я хочу импортировать набор значений параметра из внешнего файла в мои исходные файлы 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;

Пожалуйста, поправьте меня здесь, так как этот код не рабочий.

Ответы [ 2 ]

3 голосов
/ 01 августа 2020

Параметры объявлены либо в теле модуля, либо в отдельной части заголовка:

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.

0 голосов
/ 01 августа 2020

Со стилем объявления порта 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

В этом случае вы можете использовать параметры statemens через точку с запятой во включаемом файле.

С v2k- стиль объявления портов, как в вашем примере, вы должны использовать синтаксис объявления #(...) для объявления параметров перед портами. Вы по-прежнему можете использовать синтаксис `include в круглых скобках в качестве примера int @ Unn:

module temp #(`include "file.vh") (...);

Требует, чтобы ваши параметры были разделены запятыми.

...