Verilog para condimentar usando v2s, especificando el orden del puerto en el comando v2s

0

Estaba tratando de convertir de netlist verilog a netlist de especias usando la opción v2s . ¿Puedo especificar el patrón en el que se ordenarán los puertos en mi netlist resultante?

Por ejemplo: si mi netlist verilog es esto:

F10L16B_NOR2X4 nor1 ( .o ( nor1_o ) , .i0 ( cnfg[0] ) , .i1 ( cnfg[1] ) , .VDD ( VDD ) , .VSS ( VSS ) );  

y quería una lista de redes de especias correspondiente en este orden de puerto:

Xnor1  VDD VSS cnfg[0] cnfg[1] nor1_o F10L16B_NOR2X4
    
pregunta Question Mark

1 respuesta

2

Ya que esta pregunta no ha recibido respuesta por un par de días, ahora estoy publicando la siguiente respuesta ligeramente fuera de tema con la esperanza de que sirva.

No sé sobre v2s (no tengo acceso a hsim), pero Yosys también se puede usar para convertir Verilog a especia.

No sugiero que uses Yosys (aunque me parecería increíble ya que soy el autor de Yosys), sugiero que los autores de v2s quizás tuvieron un enfoque similar al problema que tuve cuando escribí mi código. .

Yosys utiliza por defecto el orden alfabético de los puertos si no se proporciona un módulo de blackbox para la celda, pero utiliza el ordenamiento desde el módulo de blackbox si se encuentra uno.

Por lo tanto, dada la siguiente entrada (como test.v )

module test(VDD, VSS, cnfg, nor1_o);
  input VDD, VSS;
  input [1:0] cnfg;
  output nor1_o;
  F10L16B_NOR2X4 nor1 ( .o ( nor1_o ) , .i0 ( cnfg[0] ) , .i1 ( cnfg[1] ) ,
                        .VDD ( VDD ) , .VSS ( VSS ) );  
endmodule

(* blackbox *)
module F10L16B_NOR2X4(input VDD, VSS, i0, i1, output o);
endmodule

el comando yosys -p 'write_spice test.sp' test.v creará la siguiente salida (como test.sp ).

* SPICE netlist generated by Yosys 0.3.0+ (git sha1 3b52121)

.SUBCKT test VDD VSS cnfg[0] cnfg[1] nor1_o
X0 VDD VSS cnfg[0] cnfg[1] nor1_o F10L16B_NOR2X4
.ENDS test

************************
* end of SPICE netlist *
************************

(El atributo blackbox es una especialidad de Yosys. Para la mayoría de las herramientas, cada módulo vacío es un módulo de caja negra).

Para mí, esta parece ser la forma más natural de hacerlo. Tal vez tengas suerte y los autores de v2s sintieran lo mismo ...

    
respondido por el CliffordVienna

Lea otras preguntas en las etiquetas