¿Cómo hacer que los sub-circuitos LTSpice estén disponibles globalmente?

3

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

Estoy usando este tutorial para crear sub-circuitos en LTSpice:

enlace

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 sub-circuitos al directorio donde reside mi diseño de nivel superior.

Incluso moví mi subcircuito (los archivos .asc y .asy) a una carpeta bajo E:\Program Files (x86)\LTC\LTspiceIV\lib\sym pero 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 encontrar la opción.

Aprecio que me diga cómo hacer que los subcircuitos LTSpice estén disponibles a nivel mundial.

Actualización:

Este es mi inversor_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 inversor_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 bajo E: \ Archivos de programa (x86) \ LTC \ LTspiceIV \ lib \ sym \

    
pregunta Ehsan

2 respuestas

1

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: \ Archivos de programa (x86) \ LTC \ LTspiceIV \ lib \ sym. Así:

2)Antesdeabandonareleditordeesquemas,vayaaVer-ListaderedesSPICE.Copieypegueelnetlistenunarchivolib,digamos'mysubcir.lib'.Agregueunalíneasobrelalistaderedespegadaparadefinirunsubcircuitocomoeste:

mysubcir.lib:

.subcktinverter_035_1inoutVDDGND*Addthisline,inverter_035_1mustmatchthe.asyfilename*E:\ProgramFiles(x86)\LTC\LTspiceIV\lib\sym27\inverter_035_1.ascXM1outin00NMW=1uL=0.35uXM2outinVDDVDDPMW=3uL=0.35u.endinverter_035_1*youneedtoaddthisalso

3)VayaaArchivo-Nuevosímboloydiseñesusímbolo.Coloquelospinesconlosmismosnombresderedensuesquema,enestecasotenemoscuatropines:"en la salida de VGD GND". Y luego guarde el archivo .asy en la misma carpeta que guardó el archivo .asc. Así:

Ahorasunuevosubcircuitoestádisponibleglobalmente.Solonecesitaagregar".lib mysubcir.lib" a su esquema superior.

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

    
respondido por el Ehsan
4

Primero, conviértete en un directorio de usuarios bajo 'sym':

Antesdeagregaralgo(yalohice,perollegaremosaeso).

InicieLTSpice,inicieunnuevoesquemayluegoseleccioneagregarcomponente:

Meapareceestavistaconmidirectoriodepiezas:

CerrarLTSpiceporahora.

Paraunopamp(queesloquehiceaquí),copieelarchivoOPAMP2.symdeldirectoriosym\Opampsasudirectorioyrenómbreloconelnombrequedesea(queesloquehiceenlaprimeraimagen).

Ahoraobtengaelarchivosubcircuitoyguárdeloeneldirectoriolib\sub:

Ahoraabraelarchivoasyensudirectoriodeusuarioenuneditordetexto:

Aquíespartedelarchivo:

SYMATTRValueADA4666SYMATTRPrefixXSYMATTRDescriptionMicropowerRailtoRailamplifierSYMATTRSpiceModelADA4666.cir

SinohaylíneasSYMATTR,agréguelas:

Version4SymbolTypeCELLLINENormal-32323264LINENormal-32963264LINENormal-3232-3296LINENormal-2848-2048LINENormal-2880-2080LINENormal-2484-2476LINENormal032048LINENormal096080LINENormal4441244LINENormal840848LINENormal4841284WINDOW01632Left2WINDOW31696Left2SYMATTRValueADA4666SYMATTRPrefixXSYMATTRDescriptionMicropowerRailtoRailamplifierSYMATTRSpiceModelADA4666.cirPIN-3280NONE0PINATTRPinNameIn+PINATTRSpiceOrder1PIN-3248NONE0PINATTRPinNameIn-PINATTRSpiceOrder2PIN032NONE0PINATTRPinNameV+PINATTRSpiceOrder3PIN096NONE0PINATTRPinNameV-PINATTRSpiceOrder4PIN3264NONE0PINATTRPinNameOUTPINATTRSpiceOrder5

AgreguecualquierlíneadeSYMATTRinmediatamenteantesdelasdeclaracionesPINyPINATTR.

CambiélosvaloresdeSYMATTRparadarunnombredevisualizacióncorrecto(Valor),elcampoDescripcióndeloqueLTSpicemuestraenlaventanadelselectoryelSpiceModelalmodeloqueagreguéenlasubcarpeta.

Aquíestá:

Luegolocoloco:

Hazclicderechoenlaparteyobtendrásesto:

Ahorasepuedeutilizarencualquieresquema.

PaséporestocuandoagreguéhaceuntiempolabibliotecademagnetismoWurth.

Lasclavesson:

  1. Coloqueelsubcircuitoenlasubcarpeta

  2. Coloqueelarchivodesímbolosenundirectoriodesuelección

  3. AsegúresedequelasdeclaracionesdeSYMMATRapuntenalsubcircuitocorrectamente,yediteelnombreyladescripciónparaobtenerunarepresentaciónprecisadeloquees.

Tengaencuentaqueelsubcircuitodebeestarcompletoporderechopropio.

Ensucaso,estáintentandocrearun bloque jerárquico ; Hay una excelente descripción en el enlace.

Como mueren los enlaces, aquí está el procedimiento:

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

Ahora etiquete todas las redes que deben tener visibilidad externa y guárdelas de nuevo.

Crea un nuevo símbolo. Los pines en este símbolo deben tienen 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 modelos o subcircuitos externos, use la directiva .include usando 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 crear una instancia de su bloque jerárquico.

    
respondido por el Peter Smith

Lea otras preguntas en las etiquetas