Models y SubCkt
Una cosa que le venía faltando a Oregano era la posibilidad de utilizar modelos complejos para la simulación, y que por suerte ya quedó en el pasado ;).
Hoy luego de mucho leer sobre Spice, NgSpice y GnuCap logré entender un poco como se usan los modelos (a través del comando .model) y los subcircuitos (a través del comando .subckt). Esto sumado a la magia del .include hacen posible, por ejemplo, utilizar un componente “Diode Bridge” en lugar de tener que poner cuatro diodos :-).
La historia empieza modificando el componente “Diode Bridge” de la biblioteca default para que en lugar de usar el template que no andaba utilice : X_@refdes %1 %2 %3 %4 @model, siendo Mode = DiodeBridge. El X_ le dice al backend que es una llamada a un subcircuito y @refdes es completado con el nombre elegido.
El siguiente paso es crear un archivo DiodeBridge.model en el directorio data/models que contenga la descripción del circuito. El resto de la mágia está ya en el código de generación de la netlist.
El objetivo ahora es tratar de extender más aún este nuevo feature y para eso voy a empezar con los ejemplos que encontró acá. Un punto importante y que yo realmente desconozco, es qué componentes son sumamente necesarios y deberían funcionar out-of-the-box. Si fuera por mí con resistencias ideales me sobra :P, por lo que escucho ofertas!. El screenshot obligado (perdón, la ventana de plot ocupa mucho lugar y me tapa el fondo :-))