SystemVerilog игнорировать неиспользуемые порты

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

например.

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


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

не будет компилироваться из-за ошибок несоответствия портов. Как я могу изменить код так unused1 а также unused2 не нужно быть подключенным?

1 ответ

Да, вы можете указать значение по умолчанию для неподключенного порта (см. 23.2.2.4 Значения порта по умолчанию в 1800-2017 LRM)

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

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

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

Но в любом случае ваш инструмент может иметь особые требования к неподключенным портам, с которыми вам придется иметь дело, когда вас об этом попросят.

Другие вопросы по тегам