¿Cómo hacer que los subcircuitos LTSpice estén disponibles globalmente?

El bloque de jerarquía LTSpice no se puede encontrar si no está en el directorio de trabajo actual.

Estoy usando este tutorial para crear subcircuitos en LTSpice:

http://www.audio-perfection.com/spice-ltspice/hierarchical-blocks-in-ltspice.html

Todo está bien, excepto que el subcircuito que hago no se puede usar globalmente. Cada vez que tengo un nuevo diseño, debo copiar mis subcircuitos en el directorio en el que reside mi diseño de nivel superior.

Incluso moví mi subcircuito (ambos archivos .asc y .asy) a una carpeta debajo, E:\Program Files (x86)\LTC\LTspiceIV\lib\sympero LTSpice no puede encontrarlo. Sospecho que debe haber una directiva que incluya una carpeta en la ruta de búsqueda global (o ruta de búsqueda de nivel superior), pero no puedo ubicar la opción.

Le agradecería que me dijera cómo hacer que los subcircuitos LTSpice estén disponibles a nivel mundial.


Actualizar:

Este es mi inverter_035_1.asc:

Version 4
SHEET 1 880 680
WIRE 208 -96 208 -160
WIRE 272 -96 208 -96
WIRE 208 -80 208 -96
WIRE 160 -32 80 -32
WIRE 272 -32 272 -96
WIRE 272 -32 208 -32
WIRE 80 32 80 -32
WIRE 80 32 -16 32
WIRE 208 32 208 16
WIRE 448 32 208 32
WIRE 208 48 208 32
WIRE 80 96 80 32
WIRE 160 96 80 96
WIRE 400 96 208 96
WIRE 208 176 208 144
WIRE 400 176 400 96
WIRE 400 176 208 176
WIRE 208 240 208 176
FLAG 448 32 out
IOPIN 448 32 Out
FLAG 208 -160 VDD
IOPIN 208 -160 BiDir
FLAG 208 240 GND
IOPIN 208 240 BiDir
FLAG -16 32 in
IOPIN -16 32 In
SYMBOL nmos_035 160 48 R0
SYMATTR InstName M1
SYMATTR Prefix X
SYMATTR Value2 W=1u L=0.35u
SYMATTR SpiceLine ""
SYMBOL pmos_035 160 -80 R0
SYMATTR InstName M2
SYMATTR Value2 W=3u L=0.35u
SYMATTR Prefix X
SYMATTR SpiceLine ""

Y este es mi inverter_035_1.asy:

Version 4
SymbolType BLOCK
LINE Normal -16 32 -16 -32
LINE Normal 33 0 -16 32
LINE Normal -16 -32 33 0
LINE Normal 64 0 44 0
LINE Normal 0 -48 0 -21
LINE Normal 0 48 0 22
LINE Normal -16 0 -48 0
CIRCLE Normal 44 5 33 -5
PIN -48 0 NONE 8
PINATTR PinName in
PINATTR SpiceOrder 1
PIN 64 0 NONE 8
PINATTR PinName out
PINATTR SpiceOrder 2
PIN 0 -48 NONE 8
PINATTR PinName VDD
PINATTR SpiceOrder 3
PIN 0 48 NONE 8
PINATTR PinName GND
PINATTR SpiceOrder 4

Ambos archivos residen en una subcarpeta en E:\Program Files (x86)\LTC\LTspiceIV\lib\sym\

Si no obtiene una buena respuesta aquí, intente esto
wow tienen un grupo de yahoo?! Ok lo haré, gracias por avisarme.
Si publica el archivo asc, es posible que pueda convertirlo por usted.
Publiqué ambos archivos.
Esto tendrá que esperar hasta la mañana ahora, lo haré entonces.

Respuestas (3)

Primero, hágase un directorio de usuarios bajo 'sym':

Nuevo directorio

Antes de agregar nada (ya lo hice, pero llegaremos a eso).

Inicie LTSpice, inicie un nuevo esquema y luego seleccione agregar componente:

Obtengo esta vista con mi directorio de piezas mostrado:

Mi directorio ahora visible en LTSpice

Cierre LTSpice por ahora.

Para un opamp (que es lo que hice aquí), copie el archivo OPAMP2.sym del directorio sym\Opamps a su directorio y cámbiele el nombre con el nombre que desee (que es lo que hice en la primera imagen).

Ahora obtenga el archivo del subcircuito y guárdelo en el directorio lib\sub:

Modelo agregado al subdirectorio

Ahora abra el archivo asy en su directorio de usuario en un editor de texto:

Aquí está parte del archivo:

SYMATTR Value ADA4666
SYMATTR Prefix X
SYMATTR Description Micropower Rail to Rail amplifier
SYMATTR SpiceModel ADA4666.cir

Si no hay líneas SYMATTR, agréguelas:

Version 4
SymbolType CELL
LINE Normal -32 32 32 64
LINE Normal -32 96 32 64
LINE Normal -32 32 -32 96
LINE Normal -28 48 -20 48
LINE Normal -28 80 -20 80
LINE Normal -24 84 -24 76
LINE Normal 0 32 0 48
LINE Normal 0 96 0 80
LINE Normal 4 44 12 44
LINE Normal 8 40 8 48
LINE Normal 4 84 12 84
WINDOW 0 16 32 Left 2
WINDOW 3 16 96 Left 2
SYMATTR Value ADA4666
SYMATTR Prefix X
SYMATTR Description Micropower Rail to Rail amplifier
SYMATTR SpiceModel ADA4666.cir
PIN -32 80 NONE 0
PINATTR PinName In+
PINATTR SpiceOrder 1
PIN -32 48 NONE 0
PINATTR PinName In-
PINATTR SpiceOrder 2
PIN 0 32 NONE 0
PINATTR PinName V+
PINATTR SpiceOrder 3
PIN 0 96 NONE 0
PINATTR PinName V-
PINATTR SpiceOrder 4
PIN 32 64 NONE 0
PINATTR PinName OUT
PINATTR SpiceOrder 5

Agregue cualquier línea SYMATTR inmediatamente antes de las declaraciones PIN y PINATTR.

Cambié los valores de SYMATTR para dar un nombre de visualización correcto (Valor), el campo Descripción de lo que muestra LTSpice en la ventana de selección y SpiceModel al modelo que agregué en la subcarpeta.

Aquí lo tienes:

Nuevo amplificador con descripción.

Luego lo coloco:

ADA4666 colocado

Haga clic derecho en la parte y obtendrá esto:

Atributos ADA4666

Esto ahora se puede utilizar en cualquier esquema.

Pasé por esto cuando agregué la biblioteca magnética de Wurth hace un tiempo.

Las claves son:

  1. Poner el subcircuito en la subcarpeta

  2. Coloque el archivo de símbolos en un directorio de su elección

  3. Asegúrese de que las instrucciones SYMMATR apunten correctamente al subcircuito y edite el nombre y la descripción para obtener una representación precisa de lo que es.

Tenga en cuenta que el subcircuito debe estar completo por derecho propio.

En tu caso, estás intentando crear un bloque jerárquico ; hay una excelente descripción en el enlace.

Como los enlaces mueren, este es el procedimiento:

Cree el esquema que desea usar como un bloque jerárquico y guárdelo con un nombre

Ahora etiquete todas las redes que deben tener visibilidad externa y guarde nuevamente.

Cree un nuevo símbolo. Los pines de este símbolo deben tener el mismo nombre que las etiquetas que adjuntó.

Guarde este símbolo como (los nombres deben ser los mismos para el esquema y el símbolo).

Si su esquema tiene subcircuitos o modelos externos, use la directiva .include usando los nombres de ruta completos en el esquema antes de guardar (para que no tengan que estar en un directorio de trabajo).

Ahora debería poder instanciar su bloque jerárquico.

Gracias por la explicación paso a paso. No tengo un archivo .cir. Lo que tengo es un archivo .asc (solo un esquema creado en LTSpice) que describe el circuito y un archivo .asy. Cuando abro mi archivo .asy no puedo ubicar ninguna línea que comience con "SYMATTR"
Si no hay líneas SYMATTR, agréguelas. He ampliado la lista anterior para mostrar dónde están.

Muy bien, ¡encontré una solución por mi cuenta que funciona!

1) Diseñe su circuito en LTSpice y nombre todas las redes que se conectarán al mundo exterior. Guarde el circuito en formato .asc en una subcarpeta en E:\Program Files (x86)\LTC\LTspiceIV\lib\sym. Como esto:

Inversor sencillo

2) Antes de salir del editor de esquemas, vaya a Ver - SPICE Netlist. Copie y pegue la lista de conexiones en un archivo lib, digamos 'mysubcir.lib'. Agregue una línea arriba de la lista de conexiones pegada para definir un subcircuito como este:

mysubcir.lib:

.subckt inverter_035_1 in out VDD GND   * Add this line, inverter_035_1 must match the .asy filename 
* E:\Program Files (x86)\LTC\LTspiceIV\lib\sym\5827\inverter_035_1.asc
XM1 out in 0 0 NM W=1u L=0.35u
XM2 out in VDD VDD PM W=3u L=0.35u
.end inverter_035_1    * you need to add this also

3) Vaya a Archivo - Nuevo símbolo y diseñe su símbolo. Coloque los pines con los mismos nombres de red en su esquema, en este caso tenemos cuatro pines: "in out VGD GND". Y luego guarde el archivo .asy en la misma carpeta en la que guardó el archivo .asc. Como esto:

símbolo del inversor

Ahora su nuevo subcircuito está disponible globalmente. Solo necesita agregar ".lib mysubcir.lib" a su esquema superior.

El único problema con este enfoque es que cada vez que actualiza el archivo .asc, debe exportar la lista de conexiones y copiarla/pegarla nuevamente en el archivo .lib. Cualquier otra solución que evite este doble retrabajo es muy bienvenida.

Debe agregar la dirección de la carpeta lib relativa a la subcarpeta de LTspice en el archivo de símbolos: Cambie SymbolType BLOCK a SymbolType CELL Antes de la primera asignación de PIN, coloque los siguientes atributos de símbolo o SYMATTR Prefix X o SYMATTR SpiceModel o SYMATTR Description o SYMATTR ModelFile <dirección de carpeta modelo relativa a la subcarpeta de LTspice Ejemplo de dirección de carpeta: MySubFolder\VLimiter.lib

  • Si se deben pasar parámetros al modelo, se debe agregar la siguiente línea o SYMATTR SpiceLine Vlim=2.8 Rlim=6.67 Iunit=248u