Verilog: ¿es posible la conexión sin cables?

Lamento hacer esta pregunta, que creo que es muy básica, pero no puedo encontrar una respuesta. El siguiente ejemplo claramente funciona. Pero me gustaría omitir la declaración de los cables ay y by.

module sub(output reg y);
endmodule

module top(input wire sel,output wire x);
wire ay,by;


sub a(.y(ay));
sub b(.y(by));

assign x= sel ?ay:by;

endmodule

Los módulos tienen un nombre. ¿Es posible dirigirse directamente a sus puertos? en caso afirmativo, ¿cuál es la sintaxis correcta? Esto no funciona (en Quartus)

module sub(output reg y);
endmodule

module top(input wire sel,output wire x);


sub a();
sub b();

assign x= sel ?a.y:b.y;

endmodule

Respuestas (2)

No, no es posible hacer esto.

La module.wiresintaxis funciona en algunos sistemas, pero todas las herramientas de síntesis requerirán que utilice los puertos correctamente.

gracias. ¿Para qué se usan los nombres de instancia entonces? solo para informes?
Se utilizan siempre que necesite identificar una instancia en particular, como en las restricciones de SDC. También se utilizan al exportar a otros formatos de archivo.

Las declaraciones de cable se pueden omitir y, en la mayoría de los casos, se implicará un cable de 1 bit de ancho. Esto generalmente se considera una mala práctica, ya que terminará con desajustes de ancho si olvida declararlos más anchos que 1 bit.

module sub(output reg y);
endmodule

module top(input wire sel,output wire x);
//wire ay,by; No wire declaration

sub a(.y(ay)); //1 bit wide wire implied
sub b(.y(by));

assign x= sel ?ay:by;

endmodule

Las salidas no conectadas se optimizarán mediante síntesis.

gracias, sin embargo, mi propósito era omitir la conexión en la instanciación del módulo.
¿Por qué querrías hacer eso? de cualquier manera, no, no puede y conduciría a una práctica de programación realmente mala. Verilog describe el hardware y cómo se conecta.
por la misma razón que si tienes una estructura en c puedes acceder a sus miembros por structName.member
pero está describiendo hardware y conectividad, no solo funcionalidad. A menos que esté hablando de la verificación de un diseño, entonces tiene diferentes enfoques.