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() );
Но в любом случае ваш инструмент может иметь особые требования к неподключенным портам, с которыми вам придется иметь дело, когда вас об этом попросят.