SystemVerilog忽略未使用的端口

时间:2018-08-09 16:00:12

标签: system-verilog

我有一个在其他模块中多次实例化的模块。该模块的两个输入很少使用,为避免代码膨胀,我不想在每个实例中都将它们连接起来。有没有办法标记这两个端口到编译器以指示它们可以保持未连接状态?

例如

module mymod(input logic foo, unused1, unused2, output logic out);
//...
endmodule


module top(...);
//...
mymod(.foo(1'b0));
endmodule

由于端口不匹配错误而无法编译。如何更改代码,以便unused1unused2不需要连接?

1 个答案:

答案 0 :(得分:2)

是的,您可以为未连接的端口指定默认值(请参阅1800-2017 LRM中的23.2.2.4默认端口值)

module mymod(input logic foo, unused1='0, unused2='0, output logic out);
//...
endmodule

另一种选择是在实例化时显式保留这些端口的未连接状态。

mymod(.foo(1'b0), .unused1(), .unused2() );

但是,无论哪种情况,您的工具对于未连接的端口可能都有特定的要求,您必须按照他们的要求处理。