Elettronica I – Introduzione a SPICE Progettazione di circuiti elettronici

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