Elettronica I – Introduzione a SPICE Valentino Liberali Dipartimento di Tecnologie dell’Informazione Università di Milano, 26013 Crema e-mail: [email protected] http://www.dti.unimi.it/˜liberali Elettronica I – Introduzione a SPICE – p. 1 Progettazione di circuiti elettronici I circuiti “semplici” erano progettati risolvendo manualmente le equazioni e realizzando prototipi su scheda con componenti discreti (“bread-board” ) Attualmente, questo approccio è impossibile, perché il numero di componenti elettronici è elevato le prestazioni dipendono dalle dimensioni di ciascun componente i componenti hanno un comportamento non ideale di cui bisogna tenere conto Elettronica I – Introduzione a SPICE – p. 2 1 Simulazione di circuiti elettronici Si effettua una simulazione al calcolatore per verificare il progetto prima di realizzarlo per ottimizzare i parametri di progetto per stimare gli effetti dovuti alle variazioni dei parametri Programmi per la simulazione circuitale: SPICE (University of California at Berkeley) ASTAP (IBM) Spectre (Cadence Design Systems) Elettronica I – Introduzione a SPICE – p. 3 SPICE SPICE = = Simulation Program with Integrated Circuit Emphasis Versione originale: University of California at Berkeley Linguaggio originale: FORTRAN (schede perforate) Formato originale di ingresso e uscita: solo testo (e solo caratteri maiuscoli) Nelle versioni successive: linguaggio C; interfacce grafiche di ingresso e uscita Numerose versioni commerciali e proprietarie Elettronica I – Introduzione a SPICE – p. 4 2 SPICE (Berkeley) SPICE è disponibile presso la University of California at Berkeley Il codice sorgente per UNIX (Linux, Solaris, etc.) è scaricabile da http://embedded.eecs.berkeley.edu/ /pubs/downloads/spice/ L’ultima versione è Spice3f5: file spice3f5.tar.gz (1.2Mb) Elettronica I – Introduzione a SPICE – p. 5 PSpice (1/3) PSpice = SPICE per PC Windows Prodotto dalla MicroSim, acquistata dalla Orcad, che a sua volta è stata acquistata dalla Cadence Esiste una versione “demo” completa di tutorial, compresa nel pacchetto Orcad 15.7 (in tutto 683 MB) scaricabile dal sito: http://www.cadence.com/products/orcad/ /downloads/orcad demo/index.aspx Alcune versioni “demo” precedenti (8.0 e 9.1) sono scaricabili da: www.dti.unimi.it/˜liberali/spice/spice.html Il prodotto da installare è: PSpice A/D con editor Schematics Elettronica I – Introduzione a SPICE – p. 6 3 PSpice (2/3) La versione “demo” di PSpice ha tutte le funzionalità, ma ha questi limiti: una pagina A4 per il disegno dello schema; non più di 64 nodi nel circuito; al massimo 50 componenti, di cui 10 transistori. Elettronica I – Introduzione a SPICE – p. 7 PSpice (3/3) Il circuito può essere disegnato tramite un’interfaccia grafica, selezionando i componenti e disegnando le interconnessioni. Dallo schema circuitale viene estratta una “netlist”, cioè una descrizione in forma di listato in cui ogni ad ogni nodo e ad ogni elemento è associato un identificatore unico. Il circuito deve contenere un nodo di riferimento: (GND = GrouND), denotato con il simbolo circuitale e indicato con il numero 0; tutte le tensioni vengono riferite a questo nodo. Elettronica I – Introduzione a SPICE – p. 8 4 Elementi circuitali in SPICE (1/2) I tipi di elementi circuitali sono identificati da SPICE tramite l’iniziale del nome: R Resistore C Condensatore L Induttore K Mutua induttanza T Linea di trasmissione V Generatore di tensione I Generatore di corrente E Voltage-controlled voltage source F Current-controlled current source G Voltage-controlled current source H Current-controlled voltage source Elettronica I – Introduzione a SPICE – p. 9 Elementi circuitali in SPICE (2/2) I dispositivi a semiconduttore sono: D Diodo a giunzione Q Transistore bipolare a giunzione (BJT) J Transistore a effetto di campo a giunzione (JFET) M Transistore a effetto di campo MOS (MOSFET) Elettronica I – Introduzione a SPICE – p. 10 5 Netlist SPICE (1/3) La netlist è una descrizione del circuito in formato testo; contiene le stesse informazioni dello schema circuitale. Netlist e schema sono due rappresentazioni di tipo strutturale: descrivono un circuito attraverso i componenti e le loro interconnessioni. Nella descrizione netlist ad ogni nodo del circuito corrisponde un numero; il numero 0 è riservato al nodo di terra (GND) e deve essere sempre presente. Non è necessario che i nodi siano nell’ordine 1, 2, 3, . . . Elettronica I – Introduzione a SPICE – p. 11 Netlist SPICE (2/3) Per resistenze, capacità, induttanze e generatori indipendenti, il formato è: Rxxxxxxx n+ n- valore Cxxxxxxx n+ n- valore Lxxxxxxx n+ n- valore Vxxxxxxx n+ n- valore Ixxxxxxx n+ n- valore I nomi devono avere non più di 8 caratteri; SPICE non distingue tra maiuscole e minuscole. I nodi + e – vanno sempre considerati secondo la convenzione degli utilizzatori. I valori devono essere espressi nelle unità di misura del sistema internazionale (R in ohm, C in farad, L in henry, V in volt, I in ampere). Elettronica I – Introduzione a SPICE – p. 12 6 Netlist SPICE (3/3) Per i generatori controllati in tensione, il formato è: Exxxxxxx n+ n- nc+ nc- valore Gxxxxxxx n+ n- nc+ nc- valore Per i generatori controllati in corrente, il formato è: Fxxxxxxx n+ n- Vmeasure valore Hxxxxxxx n+ n- Vmeasure valore dove Vmeasure è il nome di un generatore di tensione nulla (cortocircuito) in cui passa la corrente di ingresso del generatore controllato. SPICE calcola le tensioni in tutti i nodi (riferite al nodo 0), e le correnti in tutti i generatori di tensione. Per ottenere le correnti negli altri rami, bisogna inserire un generatore di tensione “fasullo”. Elettronica I – Introduzione a SPICE – p. 13 Tipi di analisi in SPICE SPICE può effettuare questi tipi di analisi: .OP Punto di lavoro (operating point) .DC Caratteristica di trasferimento ingresso-uscita (in continua) .AC Analisi in frequenza .TRAN Risposta nel dominio del tempo (transient) .TF Funzione di trasferimento .FOUR Analisi di Fourier .DISTO Distorsione armonica .NOISE Analisi di rumore (noise) Elettronica I – Introduzione a SPICE – p. 14 7 Esempio di netlist SPICE (1/3) V0 = 9 V, R1 = 100 Ω, R2 = 3.9 kΩ, R3 = 250 Ω, F = 10. Calcolare VAB . R3 R2 F + Ii V0 A Io VAB R1 B Elettronica I – Introduzione a SPICE – p. 15 Esempio di netlist SPICE (2/3) 1 R3 R2 2 9 F + V0 Ii A Io VAB 3 R1 B 0 La corrente Ii viene letta attraverso un generatore di tensione nulla. Elettronica I – Introduzione a SPICE – p. 16 8 Esempio di netlist SPICE (3/3) CIRCUITO DI PROVA PER SPICE * LA PRIMA RIGA E‘ SEMPRE IL TITOLO * I COMMENTI COMINCIANO CON UN ASTERISCO V0 1 0 9V R1 3 0 100 R2 1 9 3.9K R3 1 2 250 * VSENS SERVE PER LEGGERE LA CORRENTE VSENS 9 3 0 F 2 3 VSENS 10 * PUNTO DI LAVORO (OPERATING POINT) .OP * L’ULTIMA RIGA E‘ SEMPRE ".END" .END Elettronica I – Introduzione a SPICE – p. 17 Analisi nodale La soluzione del circuito si trova risolvendo un sistema di equazioni ottenute applicando le leggi di Kirchhoff (KCL e KVL). SPICE usa il metodo detto ANALISI NODALE MODIFICATA (MNA = Modified Nodal Analysis). Il sistema di equazioni che descrive il circuito è costituito da: KCL applicata a tutti i nodi, tranne il nodo 0 e i nodi in cui incidono i generatori di tensione KVL applicata alle maglie contenenti i generatori di tensione Elettronica I – Introduzione a SPICE – p. 18 9 Calcolo del punto di lavoro in SPICE Nel caso più generale, la KCL ad un nodo si può scrivere: i(v(t)) + d q(v(t)) + u(t) = 0 dt dove i(v(t)): corrente nei bipoli resistivi (se il bipolo è lineare, i = Gv) d dt q(v(t)): corrente nei bipoli capacitivi u(t): segnali di ingresso (generatori di corrente) In continua, l’equazione si riduce a: i(vDC ) + uDC = 0 la cui soluzione è il punto di lavoro del circuito. Elettronica I – Introduzione a SPICE – p. 19 Esempio 1: Analisi nodale (1/6) IY RB RC RA RD IX Ricavare il sistema di equazioni per questo circuito. Siccome non ci sono generatori di tensione, basta scrivere la KCL per tutti i nodi tranne uno (il nodo di riferimento). Elettronica I – Introduzione a SPICE – p. 20 10 Esempio 1: Analisi nodale (2/6) Si sceglie un nodo come nodo di riferimento (GND), e si numerano progressivamente tutti i nodi: 0 (= GND), 1, 2, . . . IY 1 3 RB 2 RC RA RD IX 0 Elettronica I – Introduzione a SPICE – p. 21 Esempio 1: Analisi nodale (3/6) IY 1 3 RB 2 RA RC RD IX 0 Per ogni nodo, tranne il nodo 0, si scrive la KCL: IX + IY − R1A (V1 − 0) − R1B (V1 − V2 ) = 0 1 1 RB (V1 − V2 ) − RC (V2 − V3 ) − IY = 0 1 (V2 − V3 ) − 1 (V3 − 0) = 0 RC RD Elettronica I – Introduzione a SPICE – p. 22 11 Esempio 1: Analisi nodale (4/6) IX + IY − R1A (V1 − 0) − R1B (V1 − V2 ) = 0 1 (V1 − V2 ) − R1C (V2 − V3 ) − IY = 0 R B 1 (V2 − V3 ) − 1 (V3 − 0) = 0 RC RD 1 + R1B V1 − R1B V2 = IX + IY R A 1 1 1 1 V + + − RB 1 RB RC V2 − RC V3 = −IY − 1 V2 + 1 V3 = 0 RC RD Sistema di equazioni in forma matriciale: 1 1 R + R1 V1 IX + IY 0 − R A 1 B 1 B 1 1 − − RC · V2 = −IY RB RB + RC 1 V 0 0 − R1 3 R C D Elettronica I – Introduzione a SPICE – p. 23 Esempio 1: Analisi nodale (5/6) 1 R + R1 0 −1 A 1 B 1 RB 1 − − R1C RB RB + RC 1 0 − R1C RD V1 IX + IY · V2 = −IY V3 0 G·V = I G è la matrice delle conduttanze: ciascun elemento sulla diagonale principale G j j è la somma delle conduttanze incidenti nel nodo j; gli altri elementi G jk sono le conduttanze tra le coppie di nodi ( j, k) prese con il segno negativo; la matrice G è simmetrica. V è il vettore delle tensioni ai nodi (incognite). I è il vettore delle correnti dei generatori incidenti in ciascun nodo (la corrente è positiva se entra nel nodo). Elettronica I – Introduzione a SPICE – p. 24 12 Esempio 1: Analisi nodale (6/6) IY 1 3 RB 2 RA RC RD IX 0 Da G · V = I, moltiplicando a sinistra per G−1 , si ha la soluzione: V = G−1 · I che esiste se la matrice G è invertibile. Elettronica I – Introduzione a SPICE – p. 25 Analisi nodale modificata (1/4) IY RB RA RC + VZ IX Se nel circuito sono presenti anche generatori di tensione, per i nodi a cui sono applicati i generatori di tensione NON si scrive la KCL, ma si scrive l’equazione della differenza di tensione tra i nodi ai capi del generatore. Elettronica I – Introduzione a SPICE – p. 26 13 Analisi nodale modificata (2/4) IY 1 2 RB RA RC + VZ IX 0 1 1 IX + IY − RA (V1 − 0) − RB (V1 − V2 ) = 0 V2 − 0 = VZ Elettronica I – Introduzione a SPICE – p. 27 Analisi nodale modificata (3/4) 1 1 IX + IY − RA (V1 − 0) − RB (V1 − V2 ) = 0 V2 − 0 = VZ 1 1 1 RA + RB V1 − RB V2 = IX + IY V2 = VZ 1 1 1 + − I + I V X Y 1 RB · = RA RB VZ V2 0 1 G·V = I Gli elementi della matrice G non sono omogenei tra loro (ci sono anche numeri), e così pure gli elementi del vettore I non sono omogenei tra loro (ci sono anche tensioni). Elettronica I – Introduzione a SPICE – p. 28 14 Analisi nodale modificata (4/4) IY 1 2 RB RA RC + VZ IX 0 Anche in questo caso, la soluzione è: V = G−1 · I Elettronica I – Introduzione a SPICE – p. 29 15