给出以下模块声明:
module ( myinterface.mymodport mybus, ... );
并假设myinterface
有参数,如何指定它们?
接口实例化仅在测试平台中发生,但是现在我要合成DUT,因此TB消失了。
答案 0 :(得分:3)
这是SystemVerilog LRM中的一个疏忽。没有语法为模块头中的接口指定必需的参数集。
您可能会检查综合工具,以查看它们是否提供任何方式为顶级综合实例指定参数替代。
答案 1 :(得分:0)
在实例化接口时指定参数;您未在模块的端口列表中指定它。给定
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