omitiendo la declaración de señales locales

2

Tengo algunos códigos de systemverilog creados por otros colegas y ejecutados en hardware sin problema.

Puedo ver que hay algunas conexiones para dos módulos que no tienen una declaración de señal local como esta:

module module_top (
  input clk,
  input rst,
  output result
);

logic[255:0] data;  // connector for data
logic[4:0]   empty; // connector for empty
// there are no connectors for vld, sop and eop signals

module_to to (
.clk(clk),
.rst(rst),
.in_vld(vld),
.in_sop(sop),
.in_eop(eop),
.in_data(data),
.in_empty(empty),
);

module_from from (
.clk(clk),
.rst(rst),
.out_vld(vld),
.out_sop(sop),
.out_eop(eop),
.out_data(data),
.out_empty(empty),
);

endmodule

El código anterior se puede compilar sin errores y se ejecuta sin problemas en hardware.

Intenté eliminar la declaración de datos [255: 0]. No funciona en hardware. Por lo tanto, por favor aconseje la teoría detrás de esto.

    
pregunta Ken Tsang

1 respuesta

3

Verilog fue inventado para ingenieros perezosos a los que no les gusta escribir.

Verilog crea declaraciones netas implícitas de 1 bit en las conexiones de puerto si no las ha declarado explícitamente de antemano. Consulte la sección 6.10 Declaraciones implícitas en el LRM 1800-2017

Puede desactivar esta función utilizando la directiva de cumplimiento

'default_nettype none
    
respondido por el dave_59

Lea otras preguntas en las etiquetas