Si tengo la siguiente definición de módulo verilog:
module foo (
input a,
output b
);
assign b = !a;
endmodule
Y luego lo instalo dentro de otro módulo como tal
module bar (
input c,
output d
);
foo foo0 (
.a(c),
.b(!d) //note the not operator
);
endmodule
Observé la definición de sintaxis EBNF para Verilog y mostró expresiones como argumentos válidos para la asignación de puertos.
¿Hará esto lo que quiero (es decir, actuará como un passthrough, dando salida a c)? ¿O verilog no permite operadores distintos a la concatenación para la asignación de puertos?
Me doy cuenta de que este ejemplo está diseñado, pero mi proyecto tiene una cantidad decente de código, por lo que no quise subir / explicar todo a menos que sea necesario.