<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Simulador_de_circuits%3A_ngspice%2C_gschem%2C_xcircuit</id>
	<title>Simulador de circuits: ngspice, gschem, xcircuit - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Simulador_de_circuits%3A_ngspice%2C_gschem%2C_xcircuit"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Simulador_de_circuits:_ngspice,_gschem,_xcircuit&amp;action=history"/>
	<updated>2026-08-30T05:48:55Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Simulador_de_circuits:_ngspice,_gschem,_xcircuit&amp;diff=249493&amp;oldid=prev</id>
		<title>Joan: /* Integració amb gschem (mètode a utilitzar) */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Simulador_de_circuits:_ngspice,_gschem,_xcircuit&amp;diff=249493&amp;oldid=prev"/>
		<updated>2012-06-17T01:05:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Integració amb gschem (mètode a utilitzar)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
=Introducció=&lt;br /&gt;
Hi, anyone know about a free circuit analysis tool similar to National Instruments Multisim software? -&amp;gt; és el software de simulació online que es fa servir en el curs del MIT 6002X&lt;br /&gt;
&lt;br /&gt;
I know one, It's different to NI but, in my opinion is even better. Is the ngspice. You have to &amp;quot;write&amp;quot; the circuit, it no use graphical interface, althoug there are program, like Xcircuit that help you.&lt;br /&gt;
&lt;br /&gt;
Try it, however it can be a little difficult for beginners.&lt;br /&gt;
&lt;br /&gt;
*http://ngspice.sourceforge.net/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install ngspice&lt;br /&gt;
$ sudo apt-get install xcircuit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ngspice&lt;br /&gt;
******&lt;br /&gt;
** ngspice-20 : Circuit level simulation program&lt;br /&gt;
** The U. C. Berkeley CAD Group&lt;br /&gt;
** Copyright 1985-1994, Regents of the University of California.&lt;br /&gt;
** Please submit bug-reports to: ngspice-bugs@lists.sourceforge.net&lt;br /&gt;
** Creation Date: Wed Jan  6 00:57:26 UTC 2010&lt;br /&gt;
******&lt;br /&gt;
ngspice 1 -&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xcircuit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Instal.lació de la última versió estable=&lt;br /&gt;
Descarreguem la última versió estable: (ngspice-24.tar.gz)&lt;br /&gt;
*http://sourceforge.net/projects/ngspice/files/ng-spice-rework/24/&lt;br /&gt;
i el manual (ngspice24-manual.pdf.gz)&lt;br /&gt;
&lt;br /&gt;
Instal.lació.&lt;br /&gt;
&lt;br /&gt;
previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install libxaw7-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ mkdir release&lt;br /&gt;
 $ cd release&lt;br /&gt;
 $ ../configure  --with-x --with-readline=yes --disable-debug&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i ja tinc instal.lada la versió 2.4:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ngspice&lt;br /&gt;
******&lt;br /&gt;
** ngspice-24 : Circuit level simulation program&lt;br /&gt;
** The U. C. Berkeley CAD Group&lt;br /&gt;
** Copyright 1985-1994, Regents of the University of California.&lt;br /&gt;
** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html&lt;br /&gt;
** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html&lt;br /&gt;
** Creation Date: Fri Mar 30 00:33:00 CEST 2012&lt;br /&gt;
******&lt;br /&gt;
ngspice 1 -&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Primers passos=&lt;br /&gt;
Chapter 20. Example Circuits. pag 335&lt;br /&gt;
&lt;br /&gt;
The first example uses the simple one-transistor amplifier circuit illustrated in Figure 20.1. This&lt;br /&gt;
circuit is constructed entirely with ngspice compatible devices and is used to introduce basic&lt;br /&gt;
concepts, including:&lt;br /&gt;
*Invoking the simulator:&lt;br /&gt;
*Running simulations in different analysis modes&lt;br /&gt;
*Printing and plotting analog results&lt;br /&gt;
*Examining status, including execution time and memory usage&lt;br /&gt;
*Exiting the simulator&lt;br /&gt;
&lt;br /&gt;
El primer exemple és un típic circuit amb transistor bipolar, on el guany és -(Rc/Re) = -(3.9K/1K) = -3.9. Hauria d'estar a examples/xspice/xspice_c1.cir, però no hi és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a berkeley spice3 compatible circuit&lt;br /&gt;
*&lt;br /&gt;
* This circuit contains only Berkeley SPICE3 components.&lt;br /&gt;
*&lt;br /&gt;
* The circuit is an AC coupled transistor amplifier with&lt;br /&gt;
* a sine wave input at node &amp;quot;1&amp;quot;, a gain of approximately -3.9,&lt;br /&gt;
* and output node &amp;quot;coll&amp;quot;.&lt;br /&gt;
*&lt;br /&gt;
.tran 1e-5 2e-3&lt;br /&gt;
*&lt;br /&gt;
vcc vcc 0 12.0&lt;br /&gt;
vin 1 0 0.0 ac 1.0 sin( 0 1 1k)&lt;br /&gt;
ccouple 1 base 10uF&lt;br /&gt;
rbias1 vcc base 100k&lt;br /&gt;
rbias2 base 0 24k&lt;br /&gt;
q1 coll base emit generic&lt;br /&gt;
rcollector vcc coll 3.9k&lt;br /&gt;
remitter emit 0 1k&lt;br /&gt;
*&lt;br /&gt;
.model generic npn&lt;br /&gt;
*&lt;br /&gt;
.end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I aleshores simulem amb '''run''', mirem els recursos que ha consumit la simulació amb '''rusage''', i podem printar el circuit amb '''plot''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ngspice xspice_c1.cir&lt;br /&gt;
******&lt;br /&gt;
** ngspice-24 : Circuit level simulation program&lt;br /&gt;
** The U. C. Berkeley CAD Group&lt;br /&gt;
** Copyright 1985-1994, Regents of the University of California.&lt;br /&gt;
** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html&lt;br /&gt;
** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html&lt;br /&gt;
** Creation Date: Fri Mar 30 00:33:00 CEST 2012&lt;br /&gt;
******&lt;br /&gt;
&lt;br /&gt;
Circuit: a berkeley spice3 compatible circuit&lt;br /&gt;
&lt;br /&gt;
ngspice 7 -&amp;gt; plot v(1) base&lt;br /&gt;
Error: no such vector v(1)&lt;br /&gt;
ngspice 8 -&amp;gt; run&lt;br /&gt;
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial Transient Solution&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
Node                                   Voltage&lt;br /&gt;
----                                   -------&lt;br /&gt;
vcc                                         12&lt;br /&gt;
1                                            0&lt;br /&gt;
base                                   2.07461&lt;br /&gt;
coll                                   7.00346&lt;br /&gt;
emit                                   1.29397&lt;br /&gt;
vin#branch                                   0&lt;br /&gt;
vcc#branch                         -0.00138042&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No. of Data Rows : 208&lt;br /&gt;
ngspice 9 -&amp;gt; plot v(1) base&lt;br /&gt;
ngspice 10 -&amp;gt; exit&lt;br /&gt;
ngspice-24 done&lt;br /&gt;
joan@joanillo:~$ ngspice xspice_c1.cir&lt;br /&gt;
******&lt;br /&gt;
** ngspice-24 : Circuit level simulation program&lt;br /&gt;
** The U. C. Berkeley CAD Group&lt;br /&gt;
** Copyright 1985-1994, Regents of the University of California.&lt;br /&gt;
** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html&lt;br /&gt;
** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html&lt;br /&gt;
** Creation Date: Fri Mar 30 00:33:00 CEST 2012&lt;br /&gt;
******&lt;br /&gt;
&lt;br /&gt;
Circuit: a berkeley spice3 compatible circuit&lt;br /&gt;
&lt;br /&gt;
ngspice 10 -&amp;gt; run&lt;br /&gt;
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial Transient Solution&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
Node                                   Voltage&lt;br /&gt;
----                                   -------&lt;br /&gt;
vcc                                         12&lt;br /&gt;
1                                            0&lt;br /&gt;
base                                   2.07461&lt;br /&gt;
coll                                   7.00346&lt;br /&gt;
emit                                   1.29397&lt;br /&gt;
vin#branch                                   0&lt;br /&gt;
vcc#branch                         -0.00138042&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No. of Data Rows : 208&lt;br /&gt;
ngspice 11 -&amp;gt; rusage&lt;br /&gt;
elapsed time since last call: 11.527 seconds.&lt;br /&gt;
&lt;br /&gt;
Total elapsed time: 11.527 seconds.&lt;br /&gt;
&lt;br /&gt;
Total DRAM available = 3826.078125 MB.&lt;br /&gt;
DRAM currently available = 899.691406 MB.&lt;br /&gt;
Total ngspice program size = 17.186523 MB.&lt;br /&gt;
Resident set size = 1.023438 MB.&lt;br /&gt;
Shared ngspice pages = 780.000 kB.&lt;br /&gt;
Text (code) pages = 1.198242 MB.&lt;br /&gt;
Stack = 0 bytes.&lt;br /&gt;
Library pages = 6.038086 MB.&lt;br /&gt;
ngspice 12 -&amp;gt; plot v(1) base&lt;br /&gt;
ngspice 13 -&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i veiem com el senyal de la base és el mateix que el d'entrada, però polaritzat a l'entorn de 2V.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot vcc coll emit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Veiem com el senyal de sortida està amplificat i invertit respecte l'entrada.&lt;br /&gt;
&lt;br /&gt;
Ara puc fer un anàlidi DC, per buscar el punt de polarització (op: operating point)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 22 -&amp;gt; op&lt;br /&gt;
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000&lt;br /&gt;
&lt;br /&gt;
No. of Data Rows : 1&lt;br /&gt;
ngspice 23 -&amp;gt; print emit base coll&lt;br /&gt;
emit = 1.293975e+00&lt;br /&gt;
base = 2.074614e+00&lt;br /&gt;
coll = 7.003464e+00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El més lògic hagués sigut tornar a editar el fitxer i canviar la línia de l'anàlisi de transient (''.tran 1e-5 2e-3'') per ''op'', i tornar a fer la simulació.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 5 -&amp;gt; print emit base coll&lt;br /&gt;
...&lt;br /&gt;
emit = 1.293993e+00 base = 2.074610e+00 coll = 7.003393e+00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es poden fer altres anàlisi. Per exemple, un anàlisi AC de petita senyal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 6 -&amp;gt; ac dec 10 0.01 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
fa un escombrat logarítmic (dec 10: 10 punts per dècada) entre 0.01 i 100 Hz. Per mirar la corba de resposta en el node ''coll'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 7 -&amp;gt; plot coll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Podem fer escales logarítmiques: (diagrames de Bode)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 8 -&amp;gt; plot db(coll) ph(coll)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També podem fer un escombrat DC de la tensió de la font:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 9 -&amp;gt; dc vcc 0 15 0.1 (entre 0 i 15V amb increments de 0.1V)&lt;br /&gt;
&lt;br /&gt;
ngspice 10 -&amp;gt; plot emit base coll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Caracterització MOSFET==&lt;br /&gt;
[[Fitxer:Mosfet ids vds.jpg | thumbnail]]&lt;br /&gt;
'''mosfet.cir'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOS OUTPUT CHARACTERISTICS&lt;br /&gt;
.OPTIONS NODE NOPAGE&lt;br /&gt;
VDS 3 0&lt;br /&gt;
VGS 2 0&lt;br /&gt;
M1 1 2 0 0 MOD1 L=1U W=40U AD=10P AS=10P&lt;br /&gt;
* VIDS MEASURES ID , WE COULD HAVE USED VDS, BUT ID WOULD BE NEGATIVE&lt;br /&gt;
VIDS 3 1&lt;br /&gt;
.MODEL MOD1 NMOS VTO=0.5 NSUB= 1.0E15 UO=550&lt;br /&gt;
.DC VDS 0 10 .5 VGS 0 5 1&lt;br /&gt;
.END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
per fer la representació gràfica:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ngspice mosfet.cir&lt;br /&gt;
&lt;br /&gt;
ngspice 42 -&amp;gt; run&lt;br /&gt;
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000&lt;br /&gt;
&lt;br /&gt;
Warning: vids: has no value, DC 0 assumed&lt;br /&gt;
Warning: vgs: has no value, DC 0 assumed&lt;br /&gt;
Warning: vds: has no value, DC 0 assumed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No. of Data Rows : 126&lt;br /&gt;
&lt;br /&gt;
ngspice 44 -&amp;gt; plot VIDS#branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i és la típica caracterśitica IDS-VDS dels transistors MOSFET per a diferents valors de VGS. La pujada lineal és per al mode ''triode'', en què VGS&amp;gt;VT i preval el model SR (el canal es comporta com una resistència lineal, i per això la pujada és lineal). Però a partir del punt VDS=VGS-VT entrem en saturació, i el MOSFET es comporta com una font de corrent (i el valor només depèn de VGS, és una VCCS, ''voltage controlled current source''):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IDS = K/2 * (VGS-VT)^2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''important'''. Com podem saber gràficament quin és el punt en què passem de ''mode triode'' a ''mode saturació''? Amb el '''plot''' aparentment quan marco em moc amb el cursor no queda marcada la posició X,Y. Mentida, només cal marcar (arrossegar) el ratolí entre dos punts i a la consola apareix:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x0 = 8.02247, y0 = 8e-05    x1 = 3.97753, y1 = 4e-05&lt;br /&gt;
dx = -4.04494, dy = -4e-05&lt;br /&gt;
dy/dx = 9.88889e-06    dx/dy = 101124&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per tant, el gràfic em serveix per fer els meus càlculs i calcular pendents i punts principals.&lt;br /&gt;
===Device Model===&lt;br /&gt;
(Mirar el manual de ngspice, capítol 2.3 Device Model, pàg 48)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
General form:&lt;br /&gt;
. model mname type ( pname1= pval1 pname2= pval2 ... )&lt;br /&gt;
Examples:&lt;br /&gt;
. model MOD1 npn ( bf=50 is=1e−13 vbf=50 )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per al meu MOSFET li assigno el nom ''MOD1'' i li assigno el tipus NMOS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.MODEL MOD1 NMOS VTO=0.5 NSUB= 1.0E15 UO=550&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El tipus és un dels següents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R		Semiconductor resistor model&lt;br /&gt;
C		Semiconductor capacitor model&lt;br /&gt;
L		Inductor model&lt;br /&gt;
SW		Voltage controlled switch&lt;br /&gt;
CSW	Current controlled switch&lt;br /&gt;
URC	Uniform distributed RC model&lt;br /&gt;
LTRA	Lossy transmission line model&lt;br /&gt;
D		Diode model&lt;br /&gt;
NPN	NPN BJT model&lt;br /&gt;
PNP	PNP BJT model&lt;br /&gt;
NJF	N-channel JFET model&lt;br /&gt;
PJF	P-channel JFET model&lt;br /&gt;
NMOS	N-channel MOSFET model&lt;br /&gt;
PMOS	P-channel MOSFET model&lt;br /&gt;
NMF	N-channel MESFET model&lt;br /&gt;
PMF	P-channel MESFET model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada model té uns paràmetres amb uns valors per defecte.&lt;br /&gt;
&lt;br /&gt;
L'explicació dels MOSFET en el manual està en el capítol 11.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
General form:&lt;br /&gt;
MXXXXXXX nd ng ns nb mname &amp;lt;m=val&amp;gt; &amp;lt;l=val&amp;gt; &amp;lt;w=val&amp;gt;&lt;br /&gt;
+ &amp;lt;ad=val&amp;gt; &amp;lt;as=val&amp;gt; &amp;lt;pd=val&amp;gt; &amp;lt;ps=val&amp;gt; &amp;lt;nrd=val&amp;gt;&lt;br /&gt;
+ &amp;lt;nrs=val&amp;gt; &amp;lt;off&amp;gt; &amp;lt;ic=vds,vgs,vbs&amp;gt; &amp;lt;temp=t&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
M1 24 2 0 20 TYPE1&lt;br /&gt;
M31 2 17 6 10 MODM L=5U W=2U&lt;br /&gt;
M1 2 9 3 0 MOD1 L=10U W=5U AD=100P AS=100P PD=40U PS=40U&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A més dels models bàsics (amb tots els paràmetres que comporten, són models complets), hi ha altres models complementaris que podem veure en el fitxer DEVICES i en la carpeta src/spicelib/devices. Són per exemple el MOS1 (level 1), MOS2 (level 2), etc, explicats en el capítol 11.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11. MOS devices&lt;br /&gt;
&lt;br /&gt;
 11.1 MOS1 - Level 1 MOS model&lt;br /&gt;
             &lt;br /&gt;
      Ver:    N/A&lt;br /&gt;
      Class:  M&lt;br /&gt;
      Level:  1&lt;br /&gt;
      Dir:    devices/mos1&lt;br /&gt;
      Status:&lt;br /&gt;
&lt;br /&gt;
      This is the so-called Schichman-Hodges model.&lt;br /&gt;
&lt;br /&gt;
      Enhancements over the original model:&lt;br /&gt;
      - Parallel multiplier&lt;br /&gt;
      - Temperature difference from circuit temperature&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i aquí ens diu que hem de buscar el fitxe ''devices/mos1'':&lt;br /&gt;
&lt;br /&gt;
i això ho podem trobar a ngspice-24/src/spicelib/devices/mos1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
IFparm MOS1mPTable[] = { /* model parameters */&lt;br /&gt;
 OP(&amp;quot;type&amp;quot;,   MOS1_MOD_TYPE,  IF_STRING, &amp;quot;N-channel or P-channel MOS&amp;quot;),&lt;br /&gt;
 IOP(&amp;quot;vto&amp;quot;,   MOS1_MOD_VTO,   IF_REAL   ,&amp;quot;Threshold voltage&amp;quot;),&lt;br /&gt;
 IOPR(&amp;quot;vt0&amp;quot;,  MOS1_MOD_VTO,   IF_REAL   ,&amp;quot;Threshold voltage&amp;quot;),&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per veure tota la llista de paràmetres que es poden utilitzar, en els apèndix:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
capítol 30: Model and Device Parameters&lt;br /&gt;
30.5 MOSFETs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500&lt;br /&gt;
30.5.1 MOS1 - Level 1 MOSFET model with Meyer capacitance model . . . . 500&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
hi ha tota la llista de paràmetres que es poden utilitzar per al model bàsic de MOSFET&lt;br /&gt;
&lt;br /&gt;
Si vull utiltizar aquests models extres s'ha d'utiltizar el paràmetre level. Per exemple, level=1 fa referència al model MOS1:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.MODEL MOD1 NMOS VTO=0.5 NSUB= 1.0E15 UO=550 level=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aquesta idea del paràmetre ''level'' es pot utilitzar per models alternatius i complementaris d'altres dispositius (BJT,...). En el fitxer DEVICES es veu el ''levell'' que s'ha de fer servir, i informació del model està a la documentació i en el codi font (ngspice-24/src/spicelib/devices/)&lt;br /&gt;
&lt;br /&gt;
===Transferència Vo-Vi===&lt;br /&gt;
[[Fitxer:Mosfet vo vi.jpg | thumbnail]]&lt;br /&gt;
'''fitxer mosfet2.cir''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOS OUTPUT CHARACTERISTICS&lt;br /&gt;
.OPTIONS NODE NOPAGE&lt;br /&gt;
VCC 3 0 5.0&lt;br /&gt;
VGS 2 0&lt;br /&gt;
RL 3 1 30K&lt;br /&gt;
M1 1 2 0 0 MOD1 L=1U W=40U AD=10P AS=10P&lt;br /&gt;
* VIDS MEASURES ID , WE COULD HAVE USED VDS, BUT ID WOULD BE NEGATIVE&lt;br /&gt;
.MODEL MOD1 NMOS VTO=0.5 NSUB= 1.0E15 UO=550&lt;br /&gt;
.DC VGS 0 5 .1&lt;br /&gt;
.END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 44 -&amp;gt; plot v(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
He canviat els paràmetres W=40 i L=1, i VT=0.5 per tal que la gràfica de sortida sigui igual que la que trobem a '''Lab 5A: Mosfet Amplifier''' (del curs 6002X), encara que allà al curs W/L=100.&lt;br /&gt;
&lt;br /&gt;
És la corba típica en què veiem com el MOSFET funciona com a switch. He posat una RL=30K.&lt;br /&gt;
&lt;br /&gt;
=Circuits d'exemple=&lt;br /&gt;
pàg 335 del tutorial&lt;br /&gt;
*20.1 AC coupled transistor amplifier &lt;br /&gt;
*20.2 Differential Pair&lt;br /&gt;
*20.3 MOSFET Characterization&lt;br /&gt;
*20.4 RTL Inverter&lt;br /&gt;
*20.5 Four-Bit Binary Adder (Bipolar)&lt;br /&gt;
*20.6 Four-Bit Binary Adder (MOS)&lt;br /&gt;
*20.7 Transmission-Line Inverter&lt;br /&gt;
=Anàlisis=&lt;br /&gt;
Tipus d'anàlisi que es poden fer: pag 226 del manual&lt;br /&gt;
*.AC: Small-Signal AC Analysis&lt;br /&gt;
*.DC: DC Transfer Function&lt;br /&gt;
*.DISTO: Distortion Analysis&lt;br /&gt;
*.NOISE: Noise Analysis&lt;br /&gt;
*.OP: Operating Point Analysis&lt;br /&gt;
*.PZ: Pole-Zero Analysis&lt;br /&gt;
*.SENS: DC or Small-Signal AC Sensitivity Analysis&lt;br /&gt;
*.TF: Transfer Function Analysis&lt;br /&gt;
*.TRAN: Transient Analysis&lt;br /&gt;
*Transient noise analysis (at low frequency)&lt;br /&gt;
*.PSS: Periodic Steady State Analysis&lt;br /&gt;
=Utilitzar un amplificador operacional=&lt;br /&gt;
*http://www.gedasymbols.org/user/john_doty/models/opamp/index.html&lt;br /&gt;
*https://wiki.ubuntu.com/Intro_to_opamps_with_ngspice-gEDA&lt;br /&gt;
&lt;br /&gt;
=Integració amb CAD Soft per fer esquemàtics=&lt;br /&gt;
Fins ara he editat els fitxers .cir on directament fico una llista de nodes i dispositius entre els nodes (el ''netlist'').&lt;br /&gt;
&lt;br /&gt;
Es tracta d'utilitzar un software per dibuixar el circuit, i que produeixi una netlist que pugui utiltizar amb ''ngspice'' per fer la simulació.&lt;br /&gt;
==Integració amb xcircuit: pag 324==&lt;br /&gt;
CYGWIN and especially LINUX users may find XCircuit valuable to establish a development&lt;br /&gt;
flow including schematic capture and circuit simulation.&lt;br /&gt;
&lt;br /&gt;
La idea és que amb xcircuit puc dibuixar l'esquemàtic, obtenir una netlist, i aquesta netlist es pot simular amb el ngspice. Veure un cas concret i simple (càrrega d'un condensador) a:&lt;br /&gt;
*http://chitlesh.wordpress.com/2006/09/04/fedora-example-xcircuit-and-ngspice/&lt;br /&gt;
&lt;br /&gt;
El problema és que la interfície gràfica de xcircuit deixa bastant que desitjar, tot i que no ha de ser difícil. Però és important llegir-se un manual del funcionament. El millor és llegir el tutorial 1: The XCircuit Tutorial Part 1: Drawing with XCircuit.&lt;br /&gt;
*http://opencircuitdesign.com/xcircuit/&lt;br /&gt;
&lt;br /&gt;
==Integració amb Eagle CAD Soft==&lt;br /&gt;
I poden treballar junts '''Eagle CAD Soft''' i '''ngspice'''?&lt;br /&gt;
You can export a SPICE netlist from Eagle...&lt;br /&gt;
==Integració amb gschem (mètode a utilitzar)==&lt;br /&gt;
[[Fitxer:Pols RC.jpg|thumbnail]]&lt;br /&gt;
*http://geda.seul.org/wiki/geda:ngspice_and_gschem&lt;br /&gt;
*http://geda.seul.org/wiki/geda:csygas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install geda-gschem geda-gnetlist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*http://ftp.sunet.se/geda/docs/current/tutorials/gsch2pcb/gschem-warmup.html&lt;br /&gt;
*http://ftp.sunet.se/geda/docs/current/tutorials/gsch2pcb/tutorial.html&lt;br /&gt;
A part de llegir el gschem-warmup, cosetes a tenir en compte a l'hora de disbuixar un circuit:&lt;br /&gt;
*quan edito les propietats d'un component com ara una resistència, no vull que aparegui refdes=R1 o bé value=15K (vull que aparegui R1 i 15K). Això es fa desmarcant N en la propietat (i automàticament marcant V) (hi ha tres columnes: vis?, N i V). La primera és si vull la propietat visible o no (sí que la vull visible).&lt;br /&gt;
&lt;br /&gt;
I ara que ja tenim dibuixat l'esquema he d'exportar la netlist per tal de poder simular despreś.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;   How do you dump a gschem schematic to a netlist?  I do not see an&lt;br /&gt;
&amp;gt;   export in the menu list.&lt;br /&gt;
&lt;br /&gt;
Several ways, all using other programs. For pcb (the program) flows there are gsch2pcb and xgsch2pcb. For&lt;br /&gt;
others, there's gnetlist.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
He d'instal.lar geda-utils si encara no ho tenia fet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install geda-utils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tutorial curt i clar per a fer la integració:&lt;br /&gt;
*[[Fitxer:Ngspice-gschem.pdf]]&lt;br /&gt;
Però una cosa tan senzilla com la càrrega d'un condensador (circuit RC) en resposta a un puls no ha sigut fàcil. Anem a veure quins eren els origens d'error.&lt;br /&gt;
*Si no fico res en el ''gschem'' els nets es diuen 1,2,3,... Però en el ngspice np puc fer ''plot 1'', perquè no ho interpreta com una net. He de fer ''plot &amp;quot;1&amp;quot;'', o bé en el gschem posar valors per a les nets, com ara ''n1'', ''n2'', etc.&lt;br /&gt;
*no ficar una coma com a punt decimal. per exemple, no ficar 0,047uF, sinó 0.047uF. Al gschem li és igual, però no al ngspice.&lt;br /&gt;
*no n'hi ha prou a definir la font amb el value=5V. El correcte és fer un PULSE. El value ha de ser del tipus: ''PULSE(0 5 0 50ms)'', que vol dir un pols de 0-5 V, que comenci a 0seg i amb una pujada que trigui 50ms.&lt;br /&gt;
&lt;br /&gt;
El procediment serà dibuixar l'esquema amb '''gschem''', i generar la netlist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gnetlist -g spice -o RC1.net RC1.sch&lt;br /&gt;
Command line passed = gnetlist -g spice -o RC1.net RC1.sch &lt;br /&gt;
Loading schematic [/home/joan/RC1.sch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El fitxer RC1.net que s'ha generat és la netlist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* Spice netlister for gnetlist&lt;br /&gt;
Vcc n1 0 PULSE(0 5 0 50ms)&lt;br /&gt;
C1 n2 0 15u&lt;br /&gt;
R1 n1 n2 15K&lt;br /&gt;
.END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Volem simular la càrrega del condensador quan posem un pols a l'entrada. Arrenquem ngspice&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ngspice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Carreguem la netlist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 6 -&amp;gt; source RC1.net&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
La constant RC del circuit és de 15KOhm*15uF=0.225 s. Faré una simulació de 0 a 1000ms&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 9 -&amp;gt; tran 0.01ms 1000ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first parameter to tran determines the step to use, the second parameter is the end value. If no third parameter is given, the start time is 0, otherwise the start time is given by this third parameter.&lt;br /&gt;
&lt;br /&gt;
Ara ja puc printar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ngspice 307 -&amp;gt; plot n1 n2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El primer exemple concret que he fet és el ''Sidetone oscillator with 23904/3906''.&lt;br /&gt;
{{Autor}}, març 2012&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>