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 ...