Tutorial NGSPICE v13 2015
Transcript of Tutorial NGSPICE v13 2015
-
8/19/2019 Tutorial NGSPICE v13 2015
1/47
DISEÑO DE CIRCUITOS Y SISTEMAS INTEGRADOS
Máster en Ingeniería de Telecomunicación
Curso 2015/16
INTRODUCCIÓN A
-
8/19/2019 Tutorial NGSPICE v13 2015
2/47
2 Introducción a
ÍNDICE
1 INTRODUCCIÓN ....................................................................................................................... 4
1.1 Origen ............................................................................................................................. 4
1.2 ¿Qué es NGSPICE? .......................................................................................................... 4
1.3 ¿Dónde obtener el software e información sobre él? ................................................... 5
2 PRIMEROS PASOS CON NGSPICE ............................................................................................. 5
2.1 Línea de comandos ........................................................................................................ 6
2.2 Componentes básicos .................................................................................................... 7
2.3 Modos de ejecución ....................................................................................................... 7
2.3.1 Batch mode (procesamiento por lotes) ................................................................. 7
2.3.2 Interactive mode (interactive interpreter) ............................................................ 7
2.3.3 Control mode (Interactive mode with control file or control section) .................. 8
2.4 Descripción básica de un circuito en un fichero netlist ................................................. 8
2.5 Modelos ......................................................................................................................... 9
2.5.1 Modelo de diodo .................................................................................................. 10
2.5.2 Modelo BJT ........................................................................................................... 11
2.5.3 Modelo MOSFET .................................................................................................. 132.6 Comandos Básicos de Simulación ................................................................................ 14
3 INTERFAZ GRÁFICA DE USUARIO ........................................................................................... 15
4 BIBLIOTECA COMPARTIDA Y USO DINÁMICO ....................................................................... 18
4.1 Enlazar la librería compartida ...................................................................................... 18
4.2 API compartida ............................................................................................................. 18
4.3 Paralelismo ................................................................................................................... 18
5 ANÁLISIS BÁSICO ................................................................................................................... 19
5.1 Análisis AC .................................................................................................................... 19
5.2 Análisis de distorsión (.DISTO) ..................................................................................... 22
5.3 Análisis de punto de operación (.OP) .......................................................................... 25
5.4 Análisis de sensibilidad (.SENS) .................................................................................... 26
5.5 Análisis transitorio .TRAN ............................................................................................ 30
5.6 Análisis de función de transferencia (.DC) ................................................................... 31
5.7 Análisis de ruido (.NOISE)............................................................................................. 32
5.8 Análisis de ceros y polos (.PZ) ...................................................................................... 37
-
8/19/2019 Tutorial NGSPICE v13 2015
3/47
3 Introducción a
5.9 Análisis de función de transferencia (.TZ) .................................................................... 39
6 SUBCIRCUITOS ....................................................................................................................... 41
6.1 Definición de un subcircuito ........................................................................................ 41
6.2 Llamada a un subcircuito ............................................................................................. 42
6.3 EJEMPLO 1. Divisor resistivo ........................................................................................ 43
6.4 EJEMPLO 2: INVERSOR CMOS ...................................................................................... 44
6.5 Consideraciones ........................................................................................................... 45
7 REFERENCIAS ......................................................................................................................... 46
8 LISTA DE CAMBIOS................................................................................................................. 47
-
8/19/2019 Tutorial NGSPICE v13 2015
4/47
4 Introducción a
1 INTRODUCCIÓN
1.1 Origen
El proyecto Spice (Simulation Program with Integrated Circuit Emphasis) fuedesarrollado en el laboratorio de investigación electrónica (Electronics ResearchLaboratory) de la Universidad de California, Berkeley, por Larry Nagel bajo la direcciónde su asesor de investigación Donald Pederson en 1973 (SPICE1). Hasta ese momentovarios simuladores de circuitos eléctricos habían sido desarrollados por eldepartamento de defensa de los Estados Unidos pero no habían sido puestos adisposición del público. Cuando el profesor Pederson asumió la dirección dellaboratorio consiguió que el programa Spice fuera reescrito a partir de su antecesor, elcual era un programa con licencia privativa, para poder poner esta nueva versión delprograma bajo dominio público.
Debido a esta característica de código abierto, Spice fue ampliamente utilizadocomo base para el desarrollo de otros programas de simulación tanto en lasuniversidades como en la industria en general. Esto nos permite encontrar en elmercado un gran número de versiones derivadas del Spice original tanto libres comocomerciales. En la siguiente tabla recogemos algunas de las versiones disponiblesactualmente:
Versiones comerciales Versiones software libre PSpice/OrCAD
HSpice MicroCad Dr. Spice Proteus Intusoft Spice-It!
SIMetric Intro TopSPICE
ASCO tool GEDA
MacSpice NGspice Oregano
Qucs TclSpice
1.2 ¿Qué es NGSPICE?NGSpice es un simulador de circuitos. NGSpice se basa en tres componentes software de
código abierto: Spice3f5, Xspice y Cider1b1
SPICEes el origen de todos los simuladores de circuitos. Sus sucesores sonampliamente usados en la comunidad electrónica.
Xspice es una extensión de Spice3 que proporciona modelos de código de lenguaje Cadicionales para apoyar el modelado de comportamiento analógico y co-simulación de
componentes digitales, todo ello gracias a un modelo basado en eventos.
http://es.wikipedia.org/w/index.php?title=Electronics_Research_Laboratory&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Electronics_Research_Laboratory&action=edit&redlink=1http://es.wikipedia.org/wiki/Universidad_de_Californiahttp://es.wikipedia.org/wiki/Berkeley_(California)http://es.wikipedia.org/w/index.php?title=Larry_Nagel&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Donald_Pederson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Donald_Pederson&action=edit&redlink=1http://es.wikipedia.org/wiki/Estados_Unidoshttp://es.wikipedia.org/wiki/Software_propietariohttp://es.wikipedia.org/wiki/C%C3%B3digo_abiertohttp://es.wikipedia.org/wiki/C%C3%B3digo_abiertohttp://es.wikipedia.org/wiki/Software_propietariohttp://es.wikipedia.org/wiki/Estados_Unidoshttp://es.wikipedia.org/w/index.php?title=Donald_Pederson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Larry_Nagel&action=edit&redlink=1http://es.wikipedia.org/wiki/Berkeley_(California)http://es.wikipedia.org/wiki/Universidad_de_Californiahttp://es.wikipedia.org/w/index.php?title=Electronics_Research_Laboratory&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Electronics_Research_Laboratory&action=edit&redlink=1
-
8/19/2019 Tutorial NGSPICE v13 2015
5/47
5 Introducción a
Cider añade un simulador numérico a ngspice . Se acopla el simulador de nivel decircuito al simulador de dispositivo para proporcionar una mayor precisión de lasimulación (a expensas de un mayor tiempo de simulación).
Se puede entender a partir de su nombre como el Spice de Nueva Generación (Next
Generation Spice). El objetivo del proyecto NGSpice es el de proporcionar una herramientaque nos permita simular circuitos de una manera fiable, rápida y amigable. De la mismamanera que los proyectos sobre los que se basa, consiste en un simulador por línea decomandos. El software proporciona tanto el simulador como el front-end para el análisis yrepresentación de los resultados.
Actualmente el software permite realizar tres tipos de análisis: análisis no lineal DC,análisis no lineal transitorio y análisis lineal AC. Proporciona la posibilidad de incluir un grangrupo de elementos circuitales tales como resistencias, condensadores, bobinas, líneas detransmisión, diodos, transistores bjt, mosfets, mesfets, jfet, etc.
1.3 ¿Dónde obtener el software e información sobre él?Desde el siguiente enlace podemos acceder a la última versión disponible del software:
http://ngspice.sourceforge.net/ donde la versión disponible a fecha de realización del presentemanual corresponde a ngspice-26 (liberada el 12/01/2014 ).
Aquí encontraremos dos versiones distintas: la versión estable, pensada parausuarios finales y el repositorio de código (git) para poder contribuir a mejorar el
código. La versión estable puede descargarse de dos maneras distintas:
Descargar el código fuente para poder compilarlo uno mismo bajo variossistemas operativos, como GNU/Linux, MS Windows, Mac OS, BSD,Solaris, y tal vez algún otro más.
Descargar los archivos binarios distribuidos para MS Windows y Mac OSX.
Esta versión no contiene los últimos cambios ni las funcionalidades que están enfase de pruebas, ya que va destinada para usuarios finales que desean una versiónestable.
2 PRIMEROS PASOS CON NGSPICEPara trabajar con el simulador únicamente es necesario especificar nuestro circuito en un
fichero Netlist . Generalmente estos ficheros estarán organizados en diferentes partes. Laprimera línea siempre es ignorada por el simulador y puede ser usada para establecer el títulode la simulación. En el resto de líneas hay que respetar las diferentes convencionesestablecidas. Tendremos sentencias referidas a comandos que deben comenzar con un ‘.’(punto) y sentencias referidas a componentes que comenzarán con una letra que representa eltipo de componente (por ejemplo R para una resistencia). Cuando una de estas sentencias
http://ngspice.sourceforge.net/http://ngspice.sourceforge.net/http://ngspice.sourceforge.net/
-
8/19/2019 Tutorial NGSPICE v13 2015
6/47
6 Introducción a
continua en varias líneas se insertará un ‘+’ al principio de cada línea múltiple. Cada línea quecomience con ‘*’ será ignorada ya que es el símbolo para identificar comentarios.
2.1 Línea de comandos
Sintáxis:ngspice [-o logfile] [-r rawfile] [-b] [-i] [input file]ngnutmeg [] [datafile …]
-
8/19/2019 Tutorial NGSPICE v13 2015
7/47
7 Introducción a
2.2 Componentes básicosLa sintaxis para declarar cada uno de los componentes básicos en el fichero netlist es lasiguiente :
Resistencia: RXXXXXXX N1 N2 Ej.:RHOT n1 n2 10k TEMP=500 Condensador: CXXXXXXX N+ N- VALUE Bobina: LYYYYYYY N+ N- VALUE Diodo:DXXXXXXX N+ N- MNAME Transistor BJT:QXXXXXXX NC NB NE MNAME Transistor MOSFET:MXXXXXXX ND NG NS NB MNAME
+ Fuente de Tensión: VXXXXXXX N+ N-
+
Fuente de Corriente: IXXXXXXX N+ N- +
Se pueden generar diferentes señales de fuente con las siguientes funciones: Pulso: PULSE(V1 V2 ) Sinusoide: SIN(V0 VA FREQ ) Exponencial: EXP(V1 V2 ) Piece-Wise: PWL(T1 V1 )
2.3 Modos de ejecución
2.3.1 Batch mode (procesamiento por lotes)Este modo de ejecución se basa en la creación de ficheros de descripción de circuitos para serposteriormente ejecutados, mediante la opción [-b].
ngspice – b – r rawfile.raw circuitfile.cir
En el modo bach el análisis descrito por las líneas de control del archivo de entrada soninmediatamente ejecutadas. Si se activa la opción [-r] entonces todos los datos generados se
escriben en un archivo rawfile de ngspice. El archivo raw (datos en crudo) puede ser leídoposteriormente a través del modo interactivo de ngspice usando el comando “load”. Si por elcontrario no se especifica ningún archivo de tipo raw la salida se muestra en formato de líneade comandos y las tablas pueden ser impresas según los archivos de control .print, .plot y.four.
2.3.2 Interactive mode (interactive interpreter)El flujo de simulación en ngspice (entrada, simulación, salida) puede ser controlado porcomandos ‘.’ en el modo bach. Existe, sin embargo, una forma mucho más potent e de controldisponible en ngspice, tradicionalmente denominada “modo interactivo”.
-
8/19/2019 Tutorial NGSPICE v13 2015
8/47
-
8/19/2019 Tutorial NGSPICE v13 2015
9/47
9 Introducción a
Esta es la forma en la que spice interpretará y situará el componente para su posteriorsimulación. Esto se puede ver de manera más sencilla en el siguiente ejemplo de un circuito deun divisor resistivo.
Netlist
*Divisor de Tensión
V1 in 0 sin(0 1 1e3)R1 in out 50kR2 out 0 50k
.TRAN 10n 2m
.end
En el circuito anterior hay tres componentes (una fuente de tensión que llamamos V1 y2 resistencias R1 y R2. A cada entrada y salida de cada componente le asignamos un númerode nodo. Después se indican los valores y características de los componentes. Así tenemos elfichero que describe el circuito:
La primera línea describe fuente V1 que está incluida entre el nodo IN y el nodo0 – masa -. Se trata de una señal sinosuidal de 1 V de amplitud y 1 KHz. (ver
manual de ngspice, apartado 4.1.2). La segunda línea describe la resistencia R1, que está entre el nodo IN Y EL nodoOUT, con valor de 50K.
La tercera línea describe la resistencia R2, que está entre el nodo OUT y el nodo0 – masa- y tiene un valor de 50K.
El circuito ya está descrito para que SPICE lo interprete y se hagan posteriores análisis ysimulaciones. Así la cuarta línea efectúa un análisis transitorio del circuito. Estos análisis sedescriben en posteriores apartados
2.5 ModelosLa mayoría de los elementos circuitales solo requieren de unos pocos parámetros de
configuración. Sin embargo, algunos dispositivos como los semiconductores necesitan que seles sea especificado un gran número de ellos para definir correctamente su comportamiento.Por este motivo, se puede definir bajo un mismo nombre y modelo (.model) a un grupo dedispositivos mediante una línea adicional.
Modelo genérico: .model MNAME TYPE(PNAME1=PVAL1 PNAME2=PVAL2 ... )
-
8/19/2019 Tutorial NGSPICE v13 2015
10/47
10 Introducción a
2.5.1 Modelo de diodo.model MNAME D(PNAME1=PVAL1 PNAME2=PVAL2 ... )
PARÁMETROS DC
PARÁMETROS CAPACITIVOS
-
8/19/2019 Tutorial NGSPICE v13 2015
11/47
11 Introducción a
PARÁMETROS TÉRMICOS
PARÁMETROS RUIDO
Ejemplo: D1 1 2 Da1N4004 .model Da1N4004 D (IS=18.8n RS=0 BV=400 IBV=5.00u
+ CJO=30 M=0.333 N=2) Ejemplo: D1 1 2 D1N4148
.model D1N4148 D (IS=0.1PA, RS=16 CJO=2PF TT=12N BV=100+ IBV=0.1PA)
2.5.2 Modelo BJT.model MNAME NPN/PNP(PNAME1=PVAL1 PNAME2=PVAL2 ... )
-
8/19/2019 Tutorial NGSPICE v13 2015
12/47
12 Introducción a
Ejemplo: 1N2222A NPN Transistor
.model Q2N2222A NPN (IS=14.34F XTI=3 EG=1.11 VAF= 74.03+ BF=255.9 NE=1.307 ISE=14.34F IKF=.2847 XTB=1.5 BR=6.092+ NC=2 ISC=0 IKR=0 RC=1 CJC=7.306P MJC=.3416 VJC=.75+ FC=.5 CJE=22.01P MJE.377 VJE=.75 TR=46.91N TF=411.1P+ ITF=.6 VTF=1.7 XTF=3 RB=10)
Ejemplo: 2N696 NPN Transistor
.model Q2N696 NPN (IS=14.34F XTI=3 EG=1.11 VAF= 74.03+ BF=65.62 NE=1.208 ISE=19.48F IKF=.2385 XTB=1.5 BR=9.715 + NC=2 ISC=0IKR=0 RC=1 CJC=9.393P MJC=.3416 VJC=.75 FC=.5
-
8/19/2019 Tutorial NGSPICE v13 2015
13/47
13 Introducción a
+ CJE=22.01P MJE=.377 VJE=.75 TR=58.98N TF=408.8P ITF=.6+ VTF=1.7 XTF=3 RB = 10)
2.5.3 Modelo MOSFET.model MNAME NMOS/PMOS(PNAME1=PVAL1 PNAME2=PVAL2 ... )
-
8/19/2019 Tutorial NGSPICE v13 2015
14/47
14 Introducción a
Ejemplo: CMOSN ( NMOS)
.MODEL CMOSN NMOS LEVEL=3 PHI=0.600000 TOX=2.1200E-08+ XJ=0.200000U TPG=1 VTO=0.7860 DELTA=6.9670E-01+ LD=1.6470E-07 KP=9.6379E-05 UO=591.7 THETA=8.1220E-02+ RSH=8.5450E+01 GAMMA=0.5863 NSUB=2.7470E+16 NFS=1.98E+12
+ VMAX=1.7330E+05 ETA=4.3680E-02 KAPPA=1.3960E-01+ CGDO=4.0241E-10 CGSO=4.0241E-10 CGBO=3.6144E-10 CJ=3.8541E-04+ MJ=1.1854 CJSW=1.3940E-10 MJSW=0.125195 PB=0.800000
Ejemplo: CMOSP (PMOS)
.MODEL CMOSP PMOS LEVEL=3 PHI=0.600000 TOX=2.1200E-08+ XJ=0.200000U TPG=-1 VTO=-0.9056 DELTA=1.5200E+00 LD=2.2000E-08+ KP=2.9352E-05 UO=180.2 THETA=1.2480E-01 RSH=1.0470E+02+ GAMMA=0.4863 NSUB=1.8900E+16 NFS=3.46E+12 VMAX=3.7320E+05+ ETA=1.6410E-01 KAPPA=9.6940E+00 CGDO=5.3752E-11+ CGSO=5.3752E-11 CGBO=3.3650E-10 CJ=4.8447E-04 MJ=0.5027+ CJSW=1.6457E-10 MJSW=0.217168 PB=0.850000
2.6 Comandos Básicos de Simulación Condiciones iniciales (.IC): permite establecer las condiciones iniciales de un nodo o de
un circuito con memoria.
Uso: .ic V(NODNUM)=VAL V(NODNUM)=VAL ...
Análisis del estado estable (.OP) : encuentra las condiciones de estado estable entodos los dispositivos y nodos.
Uso: .op
Análisis de ganancia de pequeña señal (.TF) : proporciona la ganancia en estadoestable dadas una señal de entrada y una de salida.
Uso: .tf OUTVAR INSRC
Análisis de estado estable (.DC) : calcula las condiciones de los dispositivos y nodospara una serie de condiciones de entrada.
Uso: .dc SRCNAM VSTART VSTOP VINCR [SRC2 START2 STOP2 INCR2]
Análisis AC de pequeña señal (.AC): calcula como los dispositivos se comportan en eldominio frecuencial en un determinado estado estable.
Uso: .ac STYPE ND FSTART FSTOP
Análisis transitorio (.TRAN): monitoriza el estado de un circuito en el dominiotemporal para una determinada entrada.
-
8/19/2019 Tutorial NGSPICE v13 2015
15/47
15 Introducción a
Uso: .tran TSTEP TSTOP
Fin de la simulación (.END): a partir de este comando cualquier línea será ignorada y lasimulación será ejecutada.
Uso: .end
Imprimir por pantalla (.PRINT): permite imprimir por pantalla el valor de lasmagnitudes deseadas.
Uso: .print var1 var2 …
Visualizar resultados (.PLOT): permite representar por pantalla un gráfico con lasevoluciones de las diferentes magnitudes.
Uso: .plot var1 var2 …
3 INTERFAZ GRÁFICA DE USUARIONGSpice ofrece una gran variedad de interfaces. Este factor muestra el potencial querepresenta ngspice y su ecosistema.
A continuación se muestran algunos ejemplos de esta variedad de interfaces para diversossistemas operativos.
Figura: ngspice on KDE (Linux)
-
8/19/2019 Tutorial NGSPICE v13 2015
16/47
-
8/19/2019 Tutorial NGSPICE v13 2015
17/47
17 Introducción a
Figura: ngspice running on Windows XP within Cygwin
Figura: ngspice on KDE (Linux) with gschem in background
-
8/19/2019 Tutorial NGSPICE v13 2015
18/47
18 Introducción a
4 BIBLIOTECA COMPARTIDA Y USO DINÁMICONgspice puede ser compilada como una librería compartida y de esta forma permitir a unaaplicación externa controlar la simulación.
El módulo compartido ofrece una interfaz que exporta funciones para para poder controlar elsimulador y funciones de devolución de llamada (callback functions) para obtener laretroalimentación.
De esta forma se puede controlar la simulación que se ejecutará en otro hilo de ejecución einformará a la aplicación anfitriona en forma de evento cuando se produzca la tarea X.
4.1 Enlazar la librería compartidaBásicamente existen dos métodos (con archivos *.so y *.dll):
Enlazar durante la compilación: cuando se crea una librería compartida de ngspice nosólo se crean los archivos *.so (*.dll), sino que además se crea un pequeño archivo queincluye las referencias a las funciones exportadas.
Enlazar durante la ejecución: dlopen (GNU/Linux) o LoadLibrary (MS Windows) cargarála librería libngspice.so/ngspice.dll dentro del espacio de direcciones reservado a laejecución del programa anfitrión. Las funciones devolverán un manejador que podráser usado para adquirir los punteros a las funciones exportadas por la libreríalibngspice.so.
4.2 API compartidaLos fuentes de la API de ngspice están contenidos dentro de un único archivo C (sharedspice.c)y su correspondiente fichero de cabecera (sharedspice.h). Las declaraciones de tipos yfunciones están contenidas en el fichero sharedspice.h, que puede ser añadido directamenteen la aplicación que quiera hacer uso de ellas si está escrita en C o C.
4.3 ParalelismoGracias a la creación de bibliotecas compartidas de ngspice se introduce la capacidad deejecución de varias invocaciones a ngspice en paralelo, en hilos de ejecución individuales demanera sincronizada, permitiendo el intercambio de datos entre los diferentes hilos.
Un programa principal se encarga de cargar varias instancias de la librería ngspice y ejecutarhilos de ejecución individuales en cada instancia. Hay que dividir el circuito en particiones ydefinir sus interconexiones. Cada hilo de ejecución de ngspice carga una partición distinta y
ejecuta la simulación. El progreso de simulación se sincroniza a través de una función de
-
8/19/2019 Tutorial NGSPICE v13 2015
19/47
19 Introducción a
devolución de llamada (callback), mientras que los datos (o voltaje) son compartidos deacuerdo a la interfaz definida en otra función de devolución de llamada.
5 ANÁLISIS BÁSICOA continuación presentamos los tipos de análisis realizable con el software.
5.1 Análisis AC
Mediante este análisis podemos determinar la respuesta del circuito ante una señal senoidal
de determinada frecuencia a partir de los modelos de pequeña señal de los elementos. Este
análisis es similar al análisis de corriente continua en el cual esto representa el
comportamiento fijo del sistema descrito.
Para la realización del análisis, el programa primero calcula el .dc del circuito y determina
modelos de pequeña señal para todos los dispositivos no lineales en el circuito. El resultado
obtenido es analizado sobre un rango especificado de frecuencias. La salida de este tipo de
análisis es por lo general una función de transferencia.
Las instrucciones que nos permite realizar este tipo de análisis son:
Instrucciones Ejemplos
.AC DEC ND FSTART FSTOP
.AC OCT NO FSTART FSTOP
.AC LIN NP FSTART FSTOP
.AC DEC 10 1 10K
.AC OCT 10 1K 100MEG
.AC LIN 100 1 100HZ
Donde cada parámetro tiene el siguiente significado:
DEC variación de década.
o ND número de puntos por década.
OCT variación de octava.
o NO número de puntos por octava.
LIN variación lineal.
o NP número de puntos.
Mediante los parámetros fstart y fstop podemos marcar la frecuencia de inicio y la frecuencia
final del barrido de frecuencias.
-
8/19/2019 Tutorial NGSPICE v13 2015
20/47
20 Introducción a
Nota: para este análisis al menos un la fuente independiente debe haber sido especificada con
un valor de .ac .
A continuación podemos visualizar un ejemplo práctico correspondiente con el siguiente
esquemático, figura X:
El circuito elegido en este caso es un RLC paralelo que presenta una resonancia alrededor de la
frecuencia. Se utilizará un generador de corriente para excitar la impedancia equivalente del
circuito.
Figura X: Esquemático del circuito de ejemplo.
El circuito definido enNGSPICE es el siguiente:
Analisis en alterna
*CIRCUITO RLC
II 0 1 ac 0.1L1 1 0 1mC1 1 0 1nR1 1 0 10k
*EJECUTAMOS.control
*ANALISIS EN FRECUENCIA*Instruccion: .AC [DEC/OCT/LIN] [ND/NO/NP] FSTART FSTOPac dec 25 1.0e5 1e6plot V(1) xlimit 100k 300k ylogprint V(1) > ac.txtdisplay > ac.varasciiplot V(1)> ac.plt
.endc
.end
-
8/19/2019 Tutorial NGSPICE v13 2015
21/47
-
8/19/2019 Tutorial NGSPICE v13 2015
22/47
22 Introducción a
14 3.630781e+005 2.935634e+000, -5.41019e+00115 3.981072e+005 2.259003e+000, -4.74753e+00116 4.365158e+005 1.765103e+000, -4.19760e+00117 4.786301e+005 1.395760e+000, -3.73338e+00118 5.248075e+005 1.114178e+000, -3.33607e+00119 5.754399e+005 8.961353e-001 -2.99221e+00120 6.309573e+005 7.251491e-001, -2.69188e+00121 6.918310e+005 5.896754e-001, -2.42761e+00122 7.585776e+005 4.814294e-001, -2.19362e+00123 8.317638e+005 3.943372e-001, -1.98540e+00124 9.120108e+005 3.238639e-001, -1.79933e+00125 1.000000e+006 2.665689e-001, -1.63248e+001
Tabla X: Valores de la tensión en función de la frecuencia.
5.2 Análisis de distorsión (.DISTO)
El siguiente análisis corresponde con el análisis de distorsión. Este tipo de análisis calcula el
armónico fijo y los armónicos de segundo y tercer orden de la señal de entrada, realizando de
esta manera una estimación de la distorsión del circuito.
La generación de ruido blanco por parte de las resistencias y de los dispositivos
semiconductores es simulado en este tipo de análisis. Además de caracterizar la distorsión
utilizando dos señales de frecuencia diferente como excitación del circuito.
Si por ejemplo, tenemos una seña de una sola frecuencia como entrada al circuito, los
armónicos de segunda y tercera son determinados en cada punto en el circuito. Por el
contrario, si a la entrada tenemos dos señales de diferente frecuencia, el análisis calcula los
valores de las variables del circuito tanto para la suma (f2+f1) como para la diferencia (f2-f1)
de las frecuencias de entrada.
Este tipo de análisis se puede dar para dispositivos no lineales como: Diodos, BJT, JFET,
MOSFETs, MESFET.
NOTA: Si un modelo de dispositivo no permite el análisis de distorsión directo es necesario
usar un análisis de Fourier.
Las instrucciones que nos permite realizar este tipo de análisis son:
Instrucciones Ejemplos
.DISTO DEC ND FSTART FSTOP < F2OVERF1 >
.DISTO OCT NO FSTART FSTOP < F2OVERF1 >.DISTO LIN NP FSTART FSTOP < F2OVERF1 >
.DISTO DEC 10 1kHz 100Mhz
.DISTO DEC 10 1kHz 100Mhz 0.9
-
8/19/2019 Tutorial NGSPICE v13 2015
23/47
23 Introducción a
La línea .disto hace un análisis de distorsión de señal pequeña del circuito. Como en el análisis
.AC el resto de comandos realizan las mismas funciones, principio y fin del barrido de
frecuencia, variaciones y número de puntos. El parámetro opcional para este análisis es
f2overf1 , este analiza la distorsión en el circuito para una sola frecuencia de entrada F1,
especificando el barrido. Este parámetro debe ser un número real entre [0 - 1]; considerando
el circuito con entradas sinusoidales en dos frecuencias diferentes F1 y F2.
Dónde:
F1 es la frecuencia según la línea de control.
F2 es fija en una frecuencia sola.
El análisis calcula la información sobre los valores de de los voltajes en los nodos y en las
frecuencias armónicas 2F1 .
Cada fuente independiente en el circuito puede tener dos entradas sinusoidales para la
distorsión, las frecuencias F1 y F2. La magnitud y la fase del componente F1 son especificadas
en el argumento distof1 en la línea de entrada de la fuente y lo mismo para para F2 (distof2) .
Si el distof1/ distof2 no se determinan en la descripción entonces la fuente no posee ninguna
entrada especifica en frecuencia. Por lo que los valores de magnitud y fase son 1 y 0
respectivamente.
Existe un subconjunto de dispositivos no lineal en NGSPICE que modela el análisis de
distorsión. Estos son: Diodos, BJT, JFET, MOSFETs,MESFET.
Para una mayor compresión, se planteará un ejemplo: el circuito escogido para el análisis de
distorsión utiliza un dispositivo pasivo no lineal como generador, un diodo D1 que se polariza
mediante la alimentación de la fuente VCC.
El circuito a analizar se presenta en la figura X.
-
8/19/2019 Tutorial NGSPICE v13 2015
24/47
24 Introducción a
Figura X: Esquemático utilizado para el análisis de distorsión.
El circuito definido enNGSPICE es el siguiente:
Analisis Distorsion
R1 2 0 1kD1 1 2 diodoVCC 1 3 5v ac 0.001 sin(5 0.01 1000) distof1 0.01 distof2 0.01VCC2 3 0 0v
*ANPLITUD DISTORSION.model diodo D is=1.0e-14 tt=0.1n cjo=2p
.control*ANALISIS DE DISTORSION*Instruccion: .DISTO [DEC/OCT/LIN] [ND/NO/NP] FSTART FSTOP
disto dec 1 1000 1000rusage everything > disto.opedisplay > disto. var
*setplot*setplot disto20*print all
.endc
.end
Para poder visualizar el resultado del análisis NSPICE dispone de diferentes formas, una de
ellas es seleccionando mediante el comando “.setplot NUM_PLOT” el armónico que
queremos visualizar. Eligiendo de esta manera entre el estudio del segundo y tercer armónico
de la señal excitadora de 1KHz de la fuente de señal VCC.
A continuación mostramos una captura de esta representación, figura X:
-
8/19/2019 Tutorial NGSPICE v13 2015
25/47
25 Introducción a
Figura X: Representación de los resultados de los armónicos.
5.3 Análisis de punto de operación (.OP)Calcular el punto de trabajo en continua o también denominado “punto de operación, viene
especificado por la sentencia “ .OP” en el fichero netlist. Este tipo de análisis es el encargado de
calcula los valores de tensión en todos los nodos del circuito y los muestra en el fichero de
salida.
A continuación se presenta un breve ejemplo, figura X:
-
8/19/2019 Tutorial NGSPICE v13 2015
26/47
26 Introducción a
Figura X: Esquemático para el análisis de punto de operación.
El circuito elegido para el análisis de punto de operación está compuesto por transistor bipolar
en configuración de emisor común, además de un par de resistencias y una fuente de tensión.
El fichero netlist correspondiente para la realización del ejemplo es:
Analisis en punto de operacion
Q1 2 1 0 QMODR1 1 3 200kR2 2 3 1kVCC 3 0 5
.MODEL QMOD NPN
.control*VOLCADO FICHERO .CIR ANALIZADO SINTACTICAMENTElisting > bjt.lst
*ANALISIS PUNTO DE OPERACION}oprusage everything > op.opeprint V(3) V(2) V(1) > op.txtdisplay > op.var
.endc
.end
Tras realizar la simulación hemos almacenado el valor de cada variable del circuito en un
fichero “.txt” mediante el comando “print V(3) V(2) V(1) > op.txt” . Los valores obtenidos son
los siguientes:
v(3) = 5.000000e+000v(2) = 2.896719e+000v(1) = 7.934391e-001
5.4 Análisis de sensibilidad (.SENS)Continuando con los tipos de análisis, NGSPICE nos permite calcular la sensibilidad de la señal
de corriente alterna de una variable. Es decir, NGSPICE nos entrega un listado de la sensibilidad
de las tensiones o corrientes que se especifiquen a variaciones de los parámetros de cada uno
de los componentes del circuito.
Ya que el método es una aproximación numérica, los resultados pueden manifestarse cuando
se realiza el análisis por segunda vez, o pueden fallar al mostrar la sensibilidad muy baja.
-
8/19/2019 Tutorial NGSPICE v13 2015
27/47
27 Introducción a
Las instrucciones que nos permite realizar este tipo de análisis son:
Instrucciones Ejemplos
. SENS OUTVAR
. SENS OUTVAR AC DEC ND FSTART FSTOP
. SENS OUTVAR AC OCT NO FSTART FSTOP
. SENS OUTVAR AC LIN NP FSTART FSTOP
. SENS V( 1 ,OUT)
. SENS V(OUT) AC DEC 10 100 100k
. SENS I (VTEST)
Donde cada parámetro tiene el siguiente significado:
OUTVAR variable de circuito que corresponde con el voltaje de nodo o la corriente
de rama de la fuente de voltaje.
Fijándonos en los ejemplos, la primera instrucción es la encargada de calcular la sensibilidad
del valor de corriente continua de OUTVAR. La última forma calcula la sensibilidad de los
valores de corriente alterna de OUTVAR.
Los parámetros catalogados para la sensibilidad de corriente alterna son los mismos como en
un análisis de corriente alterna (observar el análisis .AC).
A continuación podemos visualizar un ejemplo práctico correspondiente con el siguiente
esquemático, figura X:
Figura X: Esquemático utilizado para el análisis de sensibilidad.
El circuito elegido para realizar el análisis de sensibilidad está compuesto por una fuente
VMEAS, una resistencia y dos transistores NPN. Este tipo de análisis se realiza en dos fases:
-
8/19/2019 Tutorial NGSPICE v13 2015
28/47
-
8/19/2019 Tutorial NGSPICE v13 2015
29/47
-
8/19/2019 Tutorial NGSPICE v13 2015
30/47
-
8/19/2019 Tutorial NGSPICE v13 2015
31/47
31 Introducción a
.IC V(NODMUN)=VAL V(NODNUM)=VAL .IC V(11)=5 V(4)=5 V(2)=2.2
La línea .IC es para poner condiciones transitorias iniciales. Esto tiene dos interpretaciones
diferentes, dependiendo si el parámetro uic es especificado sobre la línea de control de .tran y
cuando no.
Las dos interpretaciones de esta línea son así:
1. Cuando el parámetro uic es especificado sobre la línea .tran , entonces los voltajes
especificados sobre la línea de control de .ic son usados para calcular el condensador,
el diodo, BJT, JFET, y MOSFET condiciones iniciales. Esto es equivalente a la
especificación del (ic = ...) el parámetro sobre cada línea de dispositivo.
2. Cuando el parámetro uic no es especificado sobre la línea de control de .tran , serealiza antes del análisis transitorio un análisis de la tendencia de dc. En este caso,fuerzan los voltajes de nodo especificados sobre la línea de control de .ic a los valoresdeseados iniciales durante la solución de tendencia. Esto es el método adecuado yaque esto permite a NGSPICE para calcular una solución constante dc .
5.6 Análisis de función de transferencia (.DC)Forma general:
.dc srcname vstart vstop vincr [src2 start2 stop2 incr2]
Define la curva de transferencia de la fuente (variable independiente).
srcname define la fuente a analizar
vstart límite inferior de los valores del barrido
vstop límite superior de los valores del barrido
vincr incremento de los valores del barrido
-
8/19/2019 Tutorial NGSPICE v13 2015
32/47
32 Introducción a
5.7 Análisis de ruido (.NOISE)Forma general:
.noise v (output ) src (dec|lin|oct) pts fstartfstop +
Ejemplos:
.noise v(5) VIN dec 10 1kHZ 100Mhz
.noise v (5,3) V1 oct 8 1.0 1.0e6 1
output define el nodo sobre el que se quiere calcular el ruido total de salida
ref (opcional) su valor se resta al voltaje del ruido de salida. Por defecto se asume que
ref es tierra.
El ruido de entrada está referido a la fuente independiente especificada mediante src
pts, fstart y fstop son parámetros del tipo .ac y especifican el rango de frecuencias que
se desea plotear.
pts_per_summary es un entero opcional. Cuando se especifica, define cada cuantos
puntos de frecuencia los generadores de ruido contribuyen.
Se puede especificar si se prefiere variación en la representación por décadas, por octavas o
lineal con dec, oct o lin respectivamente.
Este tipo de análisis produce dos representaciones .
- Curvas de densidad espectral (en V2/Hz o A2/Hz)
- Ruido total integrado en el rango de frecuencias especificado (en V 2 o A2)
EJEMPLO:
Fuente: http://vision.lakeheadu.ca/eng4136/spice/noise_analysis.html
El circuito implementado para el ejemplo de uso es el siguiente:
http://vision.lakeheadu.ca/eng4136/spice/noise_analysis.htmlhttp://vision.lakeheadu.ca/eng4136/spice/noise_analysis.htmlhttp://vision.lakeheadu.ca/eng4136/spice/noise_analysis.htmlhttp://vision.lakeheadu.ca/eng4136/spice/noise_analysis.html
-
8/19/2019 Tutorial NGSPICE v13 2015
33/47
33 Introducción a
Este es un circuito de switch de RF. En función de la polarización del diodo la señal de radio
frecuencia pasa o no pasa. Para implementarlo en NGSpice en primer lugar se han definido los
nodos de la siguiente manera.
La descripción es la siguiente:
*** Circuito switch de RF ***
*____________COMPONENTES________________________________
_____
* Fuente de entradavs 1 0 dc 0V ac 1V sin(0V 1V 100MegHz 20ns 0)
-
8/19/2019 Tutorial NGSPICE v13 2015
34/47
34 Introducción a
Rs in 1 50ohm
* SwitchCi in 4 1.6nF
Rb 4 3 2.1kLc1 3 2 100uH
D1 4 50 1N4148vmeter 50 5 dc 0
Lc2 5 0 100uH
cout 5 out 1.6n
* CargaRload out 0 1k
* Polarización DC
vcc 2 0 5V
*___________COMANDOS____________________________________
_____
.control
*Análisis tipo noisenoise v(out) vs dec 10 1MegHz 100MegHz
*Representación del valor del ruido total integrado
print inoise_total onoise_total*Representación de la densidad espectral de potencia
setplot noise1
plot inoise_spectrum onoise_spectrum.endc
*____________MODELOS____________________________________
_____*SRC=1N4148;1N4148;Diodes;Si;100V 150mA 4.0ns
-
8/19/2019 Tutorial NGSPICE v13 2015
35/47
35 Introducción a
.MODEL 1N4148 D ( IS=6.2229E-9
+ N=1.9224
+ RS=.33636+ IKF=42.843E-3
+ CJO=764.38E-15+ M=.1001
+ VJ=9.9900+ ISR=11.526E-9
+ NR=4.9950
+ BV=100.14+ IBV=.25951
+ TT=2..end
La densidad espectral de potencia obtenida se representa a continuación, en verde la de
entrada, y en rojo la de salida. Las unidades son V2/Hz.
Figura: Densidad espectral de ruido
El ruido total integrado es:
- Entrada: 1,77634 · 10-10 V2
-
8/19/2019 Tutorial NGSPICE v13 2015
36/47
36 Introducción a
- Salida: 1,039302· 10-10 V2
ngspice 7 -> noise.txt
Circuit: *** circuito switch de rf ***
Warning: Model issue on line 30 : .model 1n4148 d (
is=6.2229e-9 n=1.9224 rs=.33636 ikf=42 ...unrecognized parameter (isr) - ignored
unrecognized parameter (nr) - ignored
Doing analysis at TEMP = 27.000000 and TNOM =
27.000000
No. of Data Rows : 21
No. of Data Rows : 1
inoise_total = 1.177634e-010
onoise_total = 1.039302e-010
-
8/19/2019 Tutorial NGSPICE v13 2015
37/47
-
8/19/2019 Tutorial NGSPICE v13 2015
38/47
38 Introducción a
Figura: Respuesta en frecuencia del filtro
Filtro en T pasivo
V1 1 0 12 AC 1
C1 1 2 1uC2 2 3 1u
R3 2 0 1k
R4 1 3 1k
.control
*Análisis polo-ceropz 1 0 3 0 vol pz
print all > pzvalor.txt
.endc
.end
-
8/19/2019 Tutorial NGSPICE v13 2015
39/47
39 Introducción a
En un pzvalor.txt se almacena el resultado obtenido:
pole(1) = -2.61803e+003,0.000000e+000
pole(2) = -3.81966e+002,0.000000e+000
zero(1) = -1.00000e+003,0.000000e+000zero(2) = -1.00000e+003,0.000000e+000
5.9 Análisis de función de transferencia (.TZ)Forma general:
.tf outvar insrc
Ejemplos:
.tf v(5,3) VIN
.tf i(VLOAD) VIN
Se deben definir la entrada y salida en pequeña señal para el análisis DC.
insrc define la fuente
outvar define sobre que nodo se quiere medir el voltaje de salida
Ngspice devuelve el valor de la función de transferencia (salida/entrada), la resistencia de
entrada y la resistencia de salida.
Hemos implementado este ejemplo con un divisor de tensión:
DIVISOR DE TENSIÓN
V1 IN 0 dc 5
R1 IN 1 2K
R2 1 2 2K
V2 2 OUT DC 0R3 OUT 0 2K
*#destroy all
-
8/19/2019 Tutorial NGSPICE v13 2015
40/47
40 Introducción a
*#run
*#print all
.tf v(out) V1
.end
Obteniendo el resultado:
ngspice 6 -> trans.txtCircuit: divisor de tensiÓn
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
No. of Data Rows : 1
transfer_function = 3.333333e-001
output_impedance_at_v(out) = 1.333333e+003v1#input_impedance = 6.000000e+003
-
8/19/2019 Tutorial NGSPICE v13 2015
41/47
41 Introducción a
6 SUBCIRCUITOS
Un subcircuito se define como si en definitiva se tratara de una "caja negra" que realice unadeterminada función que previamente se conoce, y con un número determinado de nodos deconexión. Es decir, dentro de dicha "caja negra" se describe un circuito con una funcionalidad
característica, el cual puede ser llamado como si de un dispositivo más se tratara para poderutilizar en el resto del circuito.
La principal ventaja que incorpora la creación de subcircuitos es la de simplificar el desarrollode circuitos cada vez más complejos en los que se hace uso de un patrón definido dos o másveces.
6.1 Definición de un subcircuitoPara definir el subcircuito se utiliza el comando .SUBCKT en el fichero de entrada, tal y comoaparece descrito a continuación:
.SUBCKT NOMBRE N 1 N2 ... N i (conjunto de elementos y/o otros subcircuitos)
* Descripción del subcircuito *
.ENDS NOMBRE
Es importante que el campo NOMBRE dé una idea clara de la funcionalidad del subcircuito,para que una vez quiera instanciarse se recuerde fácilmente. Seguidamente se observa que sedefinen tantos nodos (N 1, N2, ..., Ni) como se requieran.
El programa inserta el grupo de elementos definidos en el lugar donde el subcircuito esreferenciado o invocado
-
8/19/2019 Tutorial NGSPICE v13 2015
42/47
-
8/19/2019 Tutorial NGSPICE v13 2015
43/47
43 Introducción a
6.3 EJEMPLO 1. Divisor resistivoEn este primer ejemplo se muestra cómo diseñar un divisor resistivo con ratio de división 3
como si de un subcircuito se tratara.
5K10 K
1 2 3
Para ello en primer lugar sería necesario definir el subcircuito "DIVISOR_TENSION" con nodos1, 2 y 3; tal y como aparece representado en la figura superior.:
.SUBCKT DIVISOR_TENSION 1 2 3
R1 1 2 10k
R2 2 3 5K.ENDS DIVISOR_TENSION
Una vez definido el subcircuito, éste podría instanciarse en el fichero de entrada de lasiguiente forma, y el conexionado respecto al circuito general quedaría según la imageninferior:
Xdivisor1 N5 N6 0 DIVISOR_TENSION
Como se observa, el nodo 1 del subcircuito se correspondería con N5, el nodo 2 del subcircuitocon N6 y el nodo 3 del subcircuito con 0 (GND)
.
-
8/19/2019 Tutorial NGSPICE v13 2015
44/47
44 Introducción a
6.4 EJEMPLO 2: INVERSOR CMOSEl uso de subcircuitos simplifica la construcción de circuitos cada vez más complejos, tal ycomo se ha indicado ya. Supongamos que tenemos el siguiente inversor CMOS(Complementary MOS). Este tipo de circuito se compone de un PMOS y un NMOS
La descripción del circuito en un fichero netlist podría ser la siguiente:
*Inversor CMOS
MP1 OUT IN VDD VDD MOSFET_TIPO_P W=32U L=1U
MN1 OUT IN GND GND MOSFET_TIPO_N W=16U L=1U
.MODEL MOSFET_TIPO_N NMOS
.MODEL MOSFET_TIPO_N PMOS
.END
El circuito podría ser visto denuevo como una caja negra, con una entrada IN, una salida OUT,una entrada de tensión VDD y la masa del circuito GND, tal y como aparece representado en lasiguiente figura.
IN OUT
VDD
INVERSOR CMOS
GND
-
8/19/2019 Tutorial NGSPICE v13 2015
45/47
45 Introducción a
Se podría describir por lo tanto el circuito anterior como si de un subcircuito se tratara de lasiguiente forma:
. SUBCKT INVERSOR_CMOS IN OUT VDD GND
MP1 OUT IN VDD VDD MOSFET_TIPO_P W=32U L=1U
MN1 OUT IN GND GND MOSFET_TIPO_N W=16U L=1U
.MODEL MOSFET_TIPO_N NMOS
.MODEL MOSFET_TIPO_N PMOS
.ENDS INVERSOR_CMOS
En el caso de que un circuito más complejo se requiriera hacer uso de varios inversiores CMOS,simplemente sería necesario hacer uso del subcircuito "INVERSOR_CMOS" diseñado de la
siguiente forma:Xinvejemplo1 A B VIN 0 INVERSOR_CMOS
La entrada A se correspondería con el nodo IN del subcircuito, la salida B con el nodo OUT delsubcircuito , VIN con el nodo VDD del subcircuito y 0 por el nodo GND del subcircuito. SPICEautomáticamente introduciría el circuito en estos nodos y modelaría el inversor CMOS comodos MOSFET en serie tal y como ya se había descrito.
6.5 ConsideracionesEn lo que al diseño de subcircuitos se refiere, es necesario tener en cuenta algunasconsideraciones relevantes:
No hay límite a la complejidad o tamaño de un subcircuito. Cada vez que se invoca un subcircuito, SPICE inserta en el lugar de las líneas de
llamada las líneas correspondientes a dicho sub-circuito. Dentro de la definición del subcircuito pueden exist ir otros sub-circuitos y estos a su
vez pueden contener otros. Los nudos definidos en un subcircuito tienen carácter local, salvo el nudo 0 que es
global. Dentro de la definición del subcircuito no se pueden usar líneas de control y sí de
modelo
-
8/19/2019 Tutorial NGSPICE v13 2015
46/47
46 Introducción a
7 REFERENCIAS
http://ngspice.sourceforge.net/
http://jjc.hydrus.net/jjc/technical/ee/documents/spicehowto.pdf
http://www.allaboutcircuits.com/vol_5/chpt_7/8.html
http://littletux.homelinux.org/knowhow.php?article=ngspice/ar01s03
http://www.seas.upenn.edu/~jan/spice/spice.overview.html
http://ngspice.sourceforge.net/http://ngspice.sourceforge.net/http://jjc.hydrus.net/jjc/technical/ee/documents/spicehowto.pdfhttp://jjc.hydrus.net/jjc/technical/ee/documents/spicehowto.pdfhttp://www.allaboutcircuits.com/vol_5/chpt_7/8.htmlhttp://www.allaboutcircuits.com/vol_5/chpt_7/8.htmlhttp://littletux.homelinux.org/knowhow.php?article=ngspice/ar01s03http://littletux.homelinux.org/knowhow.php?article=ngspice/ar01s03http://www.seas.upenn.edu/~jan/spice/spice.overview.htmlhttp://www.seas.upenn.edu/~jan/spice/spice.overview.htmlhttp://www.seas.upenn.edu/~jan/spice/spice.overview.htmlhttp://littletux.homelinux.org/knowhow.php?article=ngspice/ar01s03http://www.allaboutcircuits.com/vol_5/chpt_7/8.htmlhttp://jjc.hydrus.net/jjc/technical/ee/documents/spicehowto.pdfhttp://ngspice.sourceforge.net/
-
8/19/2019 Tutorial NGSPICE v13 2015
47/47
47 Introducción a
8 LISTA DE CAMBIOS
VERSION FECHA AUTOR DESCRIPCION
0 19/02/2013 Fernando Vicente Guijalba Estructura general del documento:Introducción, Primeros Pasos, Análisis Básico yReferencias.
1.0 28/02/2013 Daniel Garrido Ordóñez Capítulo 4 Subcircuitos. Ejemplo divisorresistivo.
1.1 05/03/2013 Daniel Garrido Ordóñez
Capítulo 2.2. Descripción básica circuito netlistApartado 4.2 Se añade ejemplo subcircuitoinversor CMOSTabla de lista de Cambios.
1.2 13/02/2014 Rubén Crespo Cano
Mejora del punto uno y dos. Añadidos lossiguientes apartados: modos de ejecución,ejemplos de UI, biblioteca compartida, usodinámico y paralelismo.
1.3 10/03/2015 María Ortega MartínezGema Baldó Llorca Reedición del capítulo 5. Análisis Básico1.4 15/02/2016 Aitor Morales Hernández Mejora del Capítulo 6 (Subcircuitos)