INICIO   Otros temas


ngspice

Autor: Fernando Rafael Filipuzzi

E-mail: fernando_6867@yahoo.com.ar



  1. Instalación:

    En GNU/Debian se puede instalar de los repositorios:

    	host:#aptitude install gnetlist ngspice
    

    Para Debian Squeeze la versión actual de ngspice es:

    	host:#ngspice -v
    	ngspice compiled from ngspice revision 20
    	Written originally by Berkeley University
    	Currently maintained by the NGSpice Project
    
    	Copyright (C) 1985-1996,  The Regents of the University of California
    	Copyright (C) 1999-2008,  The NGSpice Project
    

  2. Ejemplo 1

    1. Creando el esquema y propiedades de los símbolos:

      En gschem dibujé el siguiente esquema:


      ventana

      Los utilizados símbolos utilizados en este esquema son:

      SPICE simulation elements/vpulse-1.sym
      SPICE simulation elements/vdc-1.sym
      Basic devices/resistor-1.sym
      Basic devices/npn-3.sym
      Power rails/gnd-1.sym

      El modelo para spice3 (soportado por ngspice) se puede descargar del Soporte de ON Semiconductor, hay un buscador ahí en el que ingresando el código del componente lista los modelos. Se puede configurar el símbolo del bjt con los siguientes parámetros.


      ventana

      También se puede listar y editar todas las propiedades de todos los componentes con:

      	usuario@host:~/workspace$ gattrib 01_ejemplo.sch
      


      ventana

    2. Generando el netlist:

      Antes de empezar con la simulación es necesario generar el fichero netlist:

      	host:# gnetlist -g spice-sdb 01_ejemplo.sch -o 01_ejemplo.net
      
      	Command line passed = gnetlist -g spice-sdb -o 01_ejemplo.net 01_ejemplo.sch 
      	Loading schematic [/home/host/workspace/01_ejemplo.sch]
      	Using SPICE backend by SDB -- Version of 4.28.2007
      	schematic-type = normal schematic
      
    3. Comenzando la simulación

      En Ngspice:

      
      	usuario@host:~/workspace$ ngspice 01_ejemplo.net
      	******
      	** ngspice-20 : Circuit level simulation program
      	** The U. C. Berkeley CAD Group
      	** Copyright 1985-1994, Regents of the University of California.
      	** Please submit bug-reports to: ngspice-bugs@lists.sourceforge.net
      	** Creation Date: Fri Nov 20 10:19:22 GMT 2009
      	******
      
      	Circuit: * gnetlist -v -g spice-sdb -o 01_ejemplo.net 01_ejemplo.sch
      
      	Warning -- Level not specified on line " is=1.26532e-10 bf=206.302 nf=1.5 vaf=1000 ikf=0.0272221 ise=2.30771e-09 ne=3.31052 br=20.6302 nr=2.89609 var=9.39809 ikr=0.272221 isc=2.30771e-09 nc=1.9876 rb=5.8376 irb=50.3624 rbm=0.634251 re=0.0001 rc=2.65711 xtb=0.1 xti=1 eg=1.05 cje=4.64214e-12 vje=0.4 mje=0.256227 tf=4.19578e-10 xtf=0.906167 vtf=8.75418 itf=0.0105823 cjc=3.76961e-12 vjc=0.4 mjc=0.238109 xcjc=0.8 fc=0.512134 cjs=0 vjs=0.75 mjs=0.5 tr=6.82023e-08 ptf=0 kf=0 af=1"
      	Using level 1.
      	ngspice 1 -> 
      

      se puede ver un Warning, es porque el modelo no especifica el nivel.

      para comenzar una simulación.

      	ngspice 1 -> tran 1n 5u
      	Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
      
      	Warning: vb: no DC value, transient time 0 value used
      
      	Initial Transient Solution
      	--------------------------
      
      	Node                                   Voltage
      	----                                   -------
      	2                                           15
      	c                                           15
      	b                                  1.16441e-06
      	1                                            0
      	vb#branch                          2.32881e-09
      	vdd#branch                        -2.45728e-09
      
      	 Reference value :  4.15102e-06
      
      	No. of Data Rows : 5074
      
      	ngspice 2 -> 
      
      
    4. Otra forma de comenzar la simulació

      Agregando la siguiente linea antes del ".end" en el archivo netlist:

      	.tran tran 1n 5u UIC
      

      finalmente quedando

      * gnetlist -v -g spice-sdb -o 01_ejemplo.net 01_ejemplo.sch
      *********************************************************
      * Spice file generated by gnetlist                      *
      * spice-sdb version 4.28.2007 by SDB --                 *
      * provides advanced spice netlisting capability.        *
      * Documentation at http://www.brorson.com/gEDA/SPICE/   *
      *********************************************************
      *vvvvvvvv  Included SPICE model from ./modelo/2N3904.SP3 vvvvvvvv
      **************************************
      *      Model Generated by MODPEX     *
      *Copyright(c) Symmetry Design Systems*
      *         All Rights Reserved        *
      *    UNPUBLISHED LICENSED SOFTWARE   *
      *   Contains Proprietary Information *
      *      Which is The Property of      *
      *     SYMMETRY OR ITS LICENSORS      *
      *Commercial Use or Resale Restricted *
      *   by Symmetry License Agreement    *
      **************************************
      * Model generated on Aug 07, 01
      * MODEL FORMAT: SPICE3
      .MODEL 2n3904 npn 
      +IS=1.26532e-10 BF=206.302 NF=1.5 VAF=1000
      +IKF=0.0272221 ISE=2.30771e-09 NE=3.31052 BR=20.6302
      +NR=2.89609 VAR=9.39809 IKR=0.272221 ISC=2.30771e-09
      +NC=1.9876 RB=5.8376 IRB=50.3624 RBM=0.634251
      +RE=0.0001 RC=2.65711 XTB=0.1 XTI=1
      +EG=1.05 CJE=4.64214e-12 VJE=0.4 MJE=0.256227
      +TF=4.19578e-10 XTF=0.906167 VTF=8.75418 ITF=0.0105823
      +CJC=3.76961e-12 VJC=0.4 MJC=0.238109 XCJC=0.8
      +FC=0.512134 CJS=0 VJS=0.75 MJS=0.5
      +TR=6.82023e-08 PTF=0 KF=0 AF=1
      *^^^^^^^^  End of included SPICE model from ./modelo/2N3904.SP3 ^^^^^^^^
      *
      *==============  Begin SPICE netlist of main design ============
      Vdd 2 0 DC 15V
      Q1 c b 0 2N3904 
      RL c 2 150  
      Rb 1 b 500  
      Vb 1 0 pulse 0 10 10n 10n 100n 1u 2u
      .tran tran 1n 5u UIC
      .end
      

      luego se podrá correr la simulación de la siguiente manera en ngspice:

      	******
      	** ngspice-26 : Circuit level simulation program
      	** The U. C. Berkeley CAD Group
      	** Copyright 1985-1994, Regents of the University of California.
      	** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html
      	** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html
      	** Creation Date: Thu May 26 11:11:50 UTC 2016
      	******
      
      	Circuit: * gnetlist -v -g spice-sdb -o 01_ejemplo.net 01_ejemplo.sch
      	ngspice 2 -> run
      
    5. Graficar los resultados

      para graficar los resultados se utiliza la sentencia plot seguido de la lista de nodos mostrados ahi arriva. Por ejemplo para los nodos a y b:

      	
      	ngspice 2 -> plot a b
      

      luego de hacer plot se abre una ventana con las graficas:


      ventana

      Otras opciones se pueden agregar a la sentencia plot:

      	
      	plot 1 2 xlimit 0.1n 4000n
      


  3. Descargas de los ejemplos:


  4. Errores:

    • iteration limit reached
      	doAnalyses: iteration limit reached
      	run simulation(s) aborted
      

  5. Enlaces y Referencias:


INICIO   Otros temas