Интерфейс SystemVerilog - передача параметров после объявления модуля - PullRequest
0 голосов
/ 27 февраля 2019

Учитывая следующее объявление модуля:

module ( myinterface.mymodport mybus, ... );

И предполагая, что myinterface имеет параметры, как их указать?

Создание экземпляра интерфейса происходит только в тестовом стенде, но теперьЯ хочу синтезировать DUT, чтобы туберкулез исчез.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это недосмотр в SystemVerilog LRM.Нет синтаксиса для указания необходимого набора параметров для интерфейса в заголовке модуля.

Вы можете проверить свой инструмент синтеза, чтобы увидеть, предоставляют ли они какой-либо способ указания переопределений параметров для экземпляра синтеза верхнего уровня.

0 голосов
/ 27 февраля 2019

Вы указываете параметр при создании экземпляра интерфейса;Вы не указываете это в списке портов модуля.Учитывая

interface myinterface #(parameter DATA_SIZE = 0);
...

Все, что вам нужно, это

module mymodule (myinterface.mymodport mybus);
...

, потому что где-то еще у вас есть

myinterface #(.DATA_SIZE(64)) i();

interface myinterface #(parameter DATA_SIZE = 0);
  logic [DATA_SIZE-1:0]  AWID;
  logic [31:0] AWADDR;
  modport mymodport (input AWID, AWADDR);
endinterface

module mymodule (myinterface.mymodport mybus);
  initial
    $display("mymodule");
endmodule

module top;
  myinterface #(.DATA_SIZE(64)) i();
  mymodule m (.mybus(i));
endmodule

https://www.edaplayground.com/x/528x

...