Entendiendo Verilog Netlist

1

Esta podría ser una pregunta difícil de entender. Estoy tratando de entender un netlist de verilog para un sumador de 1 bit y hacer un esquema de él. Pero como soy muy nuevo en Verilog, puedo entender algunos comandos básicos. Preferí leyendo esto , pero no me ayudó.Abajo está el netlist requerido

module test(in1, in2, out);
input in1;
input in2;
output [1:0] out;

wire  synth_net;
wire  synth_net_0;
wire  synth_net_1;
wire  synth_net_2;

wire  synth_net_3;
wire  synth_net_4;
ADD2 synth_ADD(.in1({synth_net, in1}), .
    in2({synth_net_0, in2}), .cin(synth_net_1), .out({synth_net_3, synth_net_4})
    , .cout(synth_net_2));
GND synth_GND(.out(synth_net));
GND synth_GND_0(.out(
    synth_net_0));
GND synth_GND_1(.out(synth_net_1));
BUF synth_BUF(.in(
    synth_net_3), .out(out[1]));
BUF synth_BUF_0(.in(synth_net_4), .out(out[0])
    );
endmodule

La declaración de la variable del pozo es comprensible. Pero no puedo entender

ADD2 synth_ADD(.in1({synth_net, in1}), .
        in2({synth_net_0, in2}), .cin(synth_net_1), .out({synth_net_3, synth_net_4})
    
pregunta shailendra

1 respuesta

2

Su netlist ha creado celdas de enlace, efectivamente un buen 0 o 1 eléctrico.

Se han creado utilizando celdas GND y conducen sus cables de forma similar a synth_net.

{a,b} es un operador de concatenación si un & b son 1 bit cada uno, tendrá un valor de 2 bits que se parece a ab.

Por lo tanto, {synth_net, in1} es efectivamente in1 con un 0 (GND) agregado a la MSB.

El artículo al que se vinculó solo parecía mostrar conexiones ordenadas de la lista de puertos, prefiero usar la conexión nombrada como la que tiene en su lista de redes.

ADD2 synth_ADD(
  .in1( {synth_net, in1}  ), 
  .in2( {synth_net_0, in2}),
  .cin( synth_net_1       ),
  .out( {synth_net_3, synth_net_4})
);

Lo anterior es una instancia de ADD2, esta instancia se llama synth_ADD. synth_ADD tiene puertos in1, in2, cin y out. Observando la instanciación, podemos ver que in1 está siendo impulsado por {synth_net, in1} .

    
respondido por el pre_randomize

Lea otras preguntas en las etiquetas