RAČUNALNIŠKA ORODJA SPICE 1 M. Jankovec
2 Simulacije elektronskih vezij S pomočjo simulacije skušamo posnemati dogajanje v realnem elektronskem vezju Namen simulacije določanje karakteristik vezij nadgrajevanje poenostavljenih izračunov sinteza in preizkušanje vezij optimizacija vezij (določanje parametrov elementov) Verodostojnost rezultata simulacije je pogojena z modeli elementov opis vezja simulacijska metoda/algoritem začetno stanje vezja Nepoučena uporaba simulacijskih programov lahko vodi do povsem napačnih rezultatov!
3 SPICE Simulation Program for Integrated Circuits Emphasis Odprtokodno orodje za simulacijo analognih elektronskih vezij, ki je postal svetovni standard Pervenstveno je bil in je še namenjen simulaciji integriranih vezij SPICE so od leta 1973 do 1992 razvijali v Electronics Research Laboratory, University of California, Berkeley Od leta 1999 odprtokodno različico SPICE OPUS nadgrajujejo na FE v Laboratoriju za Računalniške metode v elektroniki (LRME) http://spiceopus.si
4 Komercializacija SPICE Komercialne različice osnovno spice jedro nadgrajujejo z grafičnimi vmesniki za opis vezij, kontrolo analiz, prikazom in procesiranju rezultatov Komercialni SPICE programski paketi HSPICE (Synopsis) PSPICE (Cadence ORCAD) MicroCAP (Spectrum software) SPICE programski paketi proizvajalcev IC ADICE (Analog Devices) LTspice (Linear Technologies) TISPICE (Texas Instruments)
5 Ltspice (prej SwitcherCAD) Je brezplačen Grafični urejevalnik vezja Grafični prikaz rezultatov Urejanje SPICE kode Spletni LTspice forum Optimizirani modeli LT (predvsem za stikalne napajalnike) http://www.linear.com/designtools/software/
6 Zgradba SPICE grafični vnos grafični prikaz pred- procesor vhodna datoteka simulator neobdelani signali izhodna datoteka post- procesor knjižnice SPICE izpisi
7 SPICE osnovni elementi Upor (R) Kondenzator (C) Tuljava (L) Medsebojna induktivnost (K) Prenosna linija (T) Stikalo (S) Dioda (D) Bipolarni tranzistor (Q) MOS tranzistor (M) JFET (J) MESFET (Z) Podvezje (X) Neodvisni viri napetostni (V) tokovni (I) Napetostno krmiljeni viri napetosti (E) tokovni (G) Tokovno krmiljeni viri tokovni (F) napetostni (H) Nelinearni krmiljeni vir (B) tokovni I=f( ) napetostni V=f( )
8 SPICE analize OP analiza Izračun delovne točke vezja DC analiza Izračun statične karakteristike več OP analiz pri različnih vrednostih vira Malosignalna DC analiza Prenosna karakteristika lineariziranega vezja v delovni točki AC analiza Analiza lineariziranega vezja za majhne signale v frekvenčnem prostoru Šumna analiza AC analiza z upoštevanjem nekoreliranosti šumnih signalov Tranzientna analiza Analiza nelinearnega vezja v časovnem prostoru Fourierova analiza
9 SPICE analize Preleti Temperature Vrednosti elementa Splošnega parametra Analiza Monte Carlo Raztros rezultata analiz zaradi tolerance elementov Optimizacija Določitev vrednosti parametrov vezja za doseganje željene karakteristike
10 Simulacija Vzbujanja: neodvisni napetostni in tokovni viri začetna stanja na kondenzatorjih in induktivnostih. Vozliščna metoda: Neznanke so: napetosti vseh vozlišč tokovi neodvisnih napetostnih virov. Neposredni rezultati simulacije se vpisujejo v pomnilnik. Velikost pomnilnika je omejitev simulatorja. Večja vezja in zahtevnejše analize zahtevajo več pomnilniškega prostora.
11 Vozliščna metoda linearno vezje U U U IS R R 1 1 2 1 2 U U U R R 2 1 2 2 3 0 1 1 1 U1 U 2 I S R1 R2 R2 1 1 1 U1 U2 0 R2 R2 R3 1 1 1 R1 R2 R2 U1 I S 1 1 1 U 2 0 R R R 2 2 3 G11 G12 U1 I1 G G U I 21 22 2 2 G U = I
12 Vozliščna metoda nelinearno vezje U U IV U U 1 2 ( S ) 0 R1 1 2 1 U R 1 V S U2 UT Is e 1 0 U V R I e U2 UT 2 S 1 S 1
13 Nivoji SPICE analize Neodvisni napetostni in tokovni vir in linearno uporovno vezje. Zapis vozliščnih enačb (Kirchoffov in Ohmov zakon) in reševanje sistema linearnih enačb. Vključitev nelinearnih elementov (diode, tranzistorji) v vezje. Rešitev enačb vezja z Newton-Raphsonovo iteracijsko metodo. Vključitev reaktanc (kapacitivnosti, induktivnosti) v vezje. Reševanje vezja z Eulerjevo integracijsko metodo in trapezno integracijsko metodo. Problem konvergence za iteracijske metode! The SPICE Book - Andrei Vladimirescu, John Wiley and Sons, ISBN 0-471-60926-9. www.ecircuitcenter.com
14 Vhodna datoteka (*.cir) Namen ni pisanje, temveč interpretacija datoteke. Datoteka vsebuje vse podatke o vezju in vse zahteve za simulacijo. Format je bil definiran že na začetku razvoja SPICE in je postal standard za opise vezij na nivoju osnovnih elementov. Takšne opise danes uporablja tudi množica drugih računalniških orodij. Osnovna enota vhodne datoteke je vrstica. Razen prve in zadnje vrstice je vrstni red podatkov in ukazov lahko poljuben.
15 Primer vhodne datoteke Primer1 Rc vcc 2 100 Q1 2 1 0 2N2222 Vcc vcc 0 15V R1 1 vcc 22kOhm C1 1 in 10n R2 0 1 5e3 Vin in 0 1V *Vključitev knjižnice za 2n2222.lib C:\PROGRA~1\LTC\LTSPIC~1\lib\cmp\standard.bjt.end
16 Vhodna datoteka Prva vrstica Prva vrstica je rezervirana za ime vezja. Ime je lahko poljubno, vendar ne sme manjkati. Vsebina (poljubni vrstni red) Elementi vezja in njihova lokacija Ukazi za simulacijo Definicije podvezij Definiranje modelov elementov Vključitev knjižnic Komentarji (*...) Velike ali male črke niso pomembne Zadnja vrstica.end S tem ukazom simulatorju SPICE povemo, da je opis vezja zaključen
17 Opis vezja Črka označuje tip elementa. Indeks je kombinacija črk ali številk. V1 Rind354 Cvhod Sledijo imena vozlišč, v katera je element priključen in so lahko poljubna kombinacija številk in črk. Cvhod 1 0 Rizhod2 izhod vhod Vrstni red vpisa vozlišč je določen glede na element Kjer sta priključka enakovredna (upor, kondenzator, induktivnost) zaporedje vozlišč ni pomembno. R1 n1 n2 Za druge elemente (dioda, tranzistor, MOS FET, napetostni vir, tokovni vir) je zaporedje vozlišč je točno določeno. Q1 C B E
18 Opis vezja V vezju ne sme manjkati vozlišče s številko nič. To je referenčno vozlišče, glede na katerega se definirajo vse napetosti vozlišč v vezju. Zadnji podatek v vrstici, ki opisuje element, so parametri njegovih enačb. Modeli s katerimi se opiše polprevodniške elemente so obsežni (tudi prek trideset parametrov). Parametri elementov se lahko vpišejo v vrstico ali pa se podajo posebej oz. se jih vzame iz knjižnice elementov glede na tip.
19 Številski formati Velikosti električnih veličin se gibljejo v širokih razponih. Ob vrednost se zapiše multiplikacijski faktor v kompaktni obliki: neposredni zapis potence števila 10 v obliki, ki jo uporabljajo tudi drugi programski jeziki (na primer 10 3 = 1E3), s podobnimi črkami, kot se jih uporablja pri podajanju fizikalnih veličin F je femto (10-15 ) P je piko (10-12 ) N je nano (10-9 ) U je mikro (10-6 ) M je mili (10-3 ) K je kilo (10 3 ) MEG je mega (10 6 ) G je giga (10 9 ) T je tera (10 12 ) V1 1 0 1 R1 1 2 0.2MEG C1 2 0 1.5E-6 C2 3 0 1.5U L1 2 3 0.12M
20 Komentarji Za komentar se lahko v SPICE vhodni datoteki uporabi celotno vrstico ki se začne z * Komentar so tudi oznake, ki slede podatkom. Enote, s katerimi se meri velikosti osnovnih elementov, so komentar. Izjema je samo farad. Črka F je rezervirana za multiplikacijski faktor femto (10-15 ). CPOL 1 3 1.5F CF 2 3 1.5MF R13 franc ivan 0.2KW L2 1 0 1Murko
21 Lomljenje vrstic Iz časov preluknjanih kartic izvira tudi znak plus (+), ki pomeni nadaljevanje vrstice. Pri simulatorju je omejeno število znakov v posamezni vrstici vhodne tekstovne datoteke. Če se želi vrstico podaljšati, se naslednjo začne z znakom +. To je zelo dolga + vrstica.
22 Podvezje Opamp test V1 In 0 0 X1 Vd 0 Out op_amp params: Ad=1e6 Vsat_p=10 Vsat_n=-10 Voff= 1m Ib=1u Ioff=100n Rout=1 Rd=1G CMRR=1e6 R1 In Vd 1k R2 Vd Out 10k * block symbol definitions.subckt op_amp Vin_n Vin_p Vout I1 Vin_n 0 {Ib+Ioff/2} I2 Vin_p 0 {Ib-Ioff/2} Voffset Vdp N001 {Voff} Rd Vin_n Vdp {Rd} Routput Vout Vlim {Rout} B1 Vlim 0 V=if( ( V(Vdp)-V(Vin_n) ) < {Vsat_p/Ad}, if ( (V(Vdp)-V(Vin_n) ) > {Vsat_n/Ad}, ( V(Vdp)- V(Vin_n) )*{Ad}, {Vsat_n}), {Vsat_p} ) B_Us_cmrr N001 Vin_p V=(V(Vin_p)+V(Vin_n))/(2*{CMRR}).params Ad=1e6 Vsat_p=10 Vsat_n=-10 Voff=1m Ib=1u Ioff=100n Rout=1 Rd=1G CMRR=1e6.ends op_amp.end
23 Podvezje Gradnik, ki nastopa na več mestih, se definira samo enkrat in nato vključuje v vezje kot blok - podvezje (subcircuit). Definicija podvezja Prva vrstica se začne z.subckt Sledi ime podvezja. Nato so zapisane številke priključnih vozlišč. Prvi vrstici sledijo vrstice, ki podajajo elemente podvezja. Zaključna vrstica opisa se glasi.ends (end subcircuit). Imena vozlišč se nanašajo na opis podvezja in se lahko prekrivajo z imeni vozlišč v glavnem vezju. Vključitev podvezja v glavno vezje Ime podvezja se mora začeti s črko X. Vrstica se nadaljuje s številkami vozlišč glavnega vezja, v katere je podvezje priključeno. Vrstni red določa definicija podvezja. Sledi iz definicije prepisano ime podvezja. Na koncu so lahko parametri podvezja. Za izpuščene parametre se vzamejo privzete vrednosti, ki so definirane v podvezju.
24 Ukazi za simulacije Za razliko od vrstic, ki opisujejo elemente, se vrstice z ukazi začnejo s piko. Izbira analize (.OP,.DC,.AC,.NOISE,.TRAN) in njene parametre. Izpis signalov v izhodno datoteko (.PRINT,.WIDTH). Nastavitve simulatorja (.OPTION) Vpliva na izračun (.NODESET), oziroma naredi posebne operacije (.FOUR). Za ločilom, ki je tudi v ukazih presledek, sledijo parametri..print DC V(3) I(V1) Gornji ukaz zahteva izpis samo dveh signalov DC analize. To sta napetost vozlišča s številko 3 in tok neodvisnega napetostnega vira z imenom V1.
25 Modeli elementov V vrstici kompleksnega elementa se poda samo ime modela. Šele ukaz.model definira model elementa. V tej vrstici so podani vsi parametri modela. SPICE uporablja za vse polprevodniške elemente kompleksne modele, ki imajo veliko število parametrov. Za vse parametre ima simulator vgrajene privzete vrednosti. Simulator vključi samo podane podatke. Za preostale parametre vzame privzete vrednosti.
26 Primer modela bipolarnega tranzostorja Q1 C B E ZTX1048A.MODEL ZTX1048A NPN(Is=1e-12 NF=1.2 BF=400)
27 Izhodna datoteka (.out) Med simulacijo se izračunane vrednosti shranjujejo v pomnilnik. Po končani analizi simulator izloči zahtevane rezultate in jih prenese v tekstovno izhodno datoteko s podaljškom.out. Izhodna datoteka se začne z imenom vezja. Sledijo parametri modelov elementov. Nato so nanizani rezultati vseh analiz. Na koncu so informacije o podrobnostih analize
28 Izhodna datoteka.out Circuit: * D:\Pedagogika\Ror\Predavanja\primeri\P rimer1.asc Direct Newton iteration for.op point succeeded. Semiconductor Device Operating Points: --- Bipolar Transistors --- Name: q1 Model: 2n2222 Ib: 4.87e-04 Ic: 8.20e-02 Vbe: 7.95e-01 Vbc: -6.00e+00 Vce: 6.80e+00 BetaDC: 1.69e+02 Gm: 2.63e+00 Rpi: 5.31e+01 Rx: 1.00e+01 Ro: 1.29e+03 Cbe: 1.10e-09 Cbc: 3.88e-12 Cjs: 0.00e+00 BetaAC: 1.40e+02 Cbx: 0.00e+00 Ft: 3.78e+08 --- Operating Point --- V(n001): 15 voltage V(p001): 6.79878 voltage V(n003): 0.794901 voltage V(n002): 1 voltage I(Vin): -2.05099e-021 device_current I(Vcc): -0.0826579 device_current Date: Mon Mar 29 09:07:10 2010 Total elapsed time: 0.040 seconds. tnom = 27 temp = 27 method = trap totiter = 10 traniter = 0 tranpoints = 0 accept = 0 rejected = 0 matrix size = 9 fillins = 0 solver = Normal Matrix Compiler1: 474 bytes object code size Matrix Compiler2: 701 bytes object code size
R A Č U N A L N I Š K A O R O D J A 29 POTEK GLAVNE SPICE ZANKE Začetna delovna točka Linearizacija nelinearnih elementov Linearizacija dinamičnih elementov Kreiranje linearnega sistema enačb Rešitev sistema enačb Konverge nca? DA Izračun nove časovne točke NE Izberi novo delovno točko NE Konec časa? DA
30.OP analiza (Operational Point) Analiza enosmerne delovne točke Parametri Vrednosti neodvisnih virov se podajo s parametrom DC Če parameter DC ni podan, se uporabi vrednost signala neodvisnega vira za tranzientno analizo ob času 0 Priprava vezja Induktivnosti se zamenjajo s kratkimi stiki Kapacitivnosti se zamenjajo z odprtimi sponkami Preverjanje vezja Od vsakega vozlišča mora obstajati pot za enosmeren signal do mase, sicer SPICE javi napako.options topologycheck=0
31.OP analiza (Operational Point) Zapis sistema (nelinearnih) vozliščnih enačb Rešitev sistema z Newton-Rhapsonovim numeričnim postopkom Rezultati Napetosti vozlišč Tokovi napetostnih virov Tokovi induktivnosti Kljub enostavnosti je.op analiza največji problem za konvergenco
32 Primer
33 Numerični postopek Pri vseh analizah vezja SPICE zapiše vozliščne enačbe. Tokove, ki tečejo prek posameznih elementov, izrazi z napetostmi in vejskimi relacijami elementov. Nastane sistem n algebrajskih enačb (rezistivni deli vezja) z n neznankami. Enačbe so običajno nelinearne. SPICE rešuje enačbe z Newtonovo iteracijsko metodo, ki je primerna za reševanje funkcij, ali sistemov enačb, ki so podane v implicitni obliki.
34 Primer nelinearnega vezja U IR I = I S (e n U T 1) I I S U IR e n U T 1 = 0
35 Newtonova shema funkcije ene spremenljivke Reševanje nelinearne enačbe v implicitni obliki f( x) 0 Začetni približek x 1 f(x) Odvod f '( x1 ) v točki aproksimiramo s premico (linearizacija) f( x1 ) x - x 1 2 f '( x ) 1 x 1 f(x 2 ) f(x 1 ) Izračunamo naslednji približek x x 2 1 f( x1 ) f '( x ) 1 f(x 5 ) f(x 4 ) x 4 x 5 f(x 3 ) x 3 x 2 x 1 x Algoritem ustavimo, ko je vrednost f( x) dovolj majhna
36 f(x) Problem konvergence 6 5 1 3 4 2? x
37 Rešitev? Ali rešitev obstaja? Ali je rešitev več? Ali so enačbe zvezne? Ali je začetni poizkus dovolj dober?
38 Izbira začetnega poizkusa z 2 1i 3 3 Im(z) Izbira začetne točke za rešitev enačbe f z 3 ( ) z 1 z1 1i0 Re(z) z 3 1i 3 3
39 Reševanje sistema nelinearnih enačb Spice iz vezja tvori za vsako vozlišče in neodvisen napetostni vir eno enačbo. Skupaj n splošnih nelinearnih enačb z n neznankami: f f 1 2 ( x 1 ( x 1,, x x 2 2,..,,.., : x x n n ) ) 0 0 FX ( ) f n ( x 1, x 2,.., x n ) 0
40 Newtonova shema funkcij večih spremenljivk Vektor spremenljivk X x x x... x 1 2 3 N Iteracijski korak X new F( X) X J( X) Matrika parcialnih odvodov Jacobijeva matrika J( X) d F( X ) F( x1 ) F( x1 ) F( x1 )... x1 x2 x N F( x2) F( x2) F( x2)... x x x 1 2 N dx.... F( xn ) F( xn ) F( xn )... x1 x2 x N Iskanje rešitve sistema linearnih enačb J( X ) X J( X ) X F( X ) new A X B Rešitev sistema s pomočjo Gaussove eliminacije ali LU razcepa
41 Konvergenčni kriterij Primerja se rezultate zaporednih iteracij glede na podano relativno in absolutno napako: V n V n 1 V V n RELTOL VNTOL limit I n I n 1 I I n RELTOL ABSTOL limit RELTOL = 0.001 VNTOL =1μV ABSTOL =1pA V n 5 V V n V n 1 5 mv V n 0.1 mv V n V n 1 1.1μV
42 STEP - Parametrična analiza Spreminjanje kateregakoli parametra vezja Primeri ukazov:.step oct v1 1 20 5.step I1 10u 100u 10u.step param RLOAD LIST 5 10 15.step NPN 2N2222(VAF) 50 100 25.step temp -55 125 10 Definiranje parametra.param RLOAD=1k x=tan(rload)
43 Primer STEP analize
44 Primer STEP analize