Title: Introduzione al simulatore circuitale SPICE
1Introduzione al simulatore circuitale SPICE
Corso di Circuiti Elettronici Analogici L-A
Andrea Cappelli Bologna, 27 Gennaio 2005
2Contatti
- Andrea Cappelli
- ARCES viale Pepoli 3/2
- Telefono 051 20 93828
- E-mail acappelli_at_deis.unibo.it
3Il Simulatore SPICE
Text Editor
Text Editor
.out
Parser Solver
.cir
.sch
Graphic Interface
.dat
Schematic Editor
.lib
- Simulation Program with Integrated Circuit
Emphasis - Sviluppato a Berkeley negli anni 60
4Struttura della Netlist
Titolo della netlist . . ltcaricamento librerie
e definizione modelligt . . ltistanziamento
componentigt . . ltcomandi di simulazionegt . . ltistr
uzioni di post-simulazionegt
5Regole sintattiche
- La prima riga del file .cir è riservata al titolo
e non viene interpretata - SPICE è case insensitive
- Per continuare a capo una linea comando basta
cominciare la seconda riga con - Il carattere commenta unintera linea
- Il carattere commenta la restante parte della
linea
6La Netlist
- E un elenco di dispositivi opportunamente
connessi - Ad ogni nodo è associato un identificativo (0 è
riservato per il nodo di massa) - Ogni dispositivo è caratterizzato da
- Nome
- Connettività (nodi a cui è connesso)
- Modello di riferimento
- Elenco dei parametri (es. il valore della
resistenza)
7Componenti Lineari Passivi
- RltNomegt ltngt ltn-gt Modello ltValoregt
- CltNomegt ltngt ltn-gt Model ltValoregt ICltV0gt
- LltNomegt ltngt ltn-gt Model ltValoregt ICltI0gt
- La prima lettera del nome identifica il tipo di
componente - n ed n- sono i nodi a cui i componenti sono
collegati - Il modello è opzionale, in caso di omissione si
considerano componenti ideali - Il campo IC permette di specificare il valore
iniziale di tensione (condensatori) o corrente
(induttori) per le analisi in transitorio.
8Resistori
RltNomegt ltngt ltn-gt Modello ltValoregt
- Modello se assente viene considerato un
resistore ideale (lineare senza effetti reattivi
VRI) - Valore specifica il valore della resistenza
n
I
V
n-
9Condensatori
CltNomegt ltngt ltn-gt Model ltValoregt IC ltV0gt
- IC Permette di specificare lo stato iniziale
(tensione) del condensatore. - Se il modello non è specificato si assume il
condensatore come ideale
n
V
I
n-
10Induttori
LltNomegt ltngt ltn-gt Model ltValoregt IC ltI0gt
- IC Permette di specificare lo stato iniziale
(corrente) dell induttore. - Se il modello non è specificato si assume
linduttore come ideale
n
I
V
n-
11Generatori Indipendenti (I)
- VltNomegt ltngt ltn-gt DC ltValoregt
- AC ltampiezzagtfase
- Stimolo Transitorio
- IltNomegt ltngt ltn-gt DC ltValoregt
- AC ltampiezzagtfase
- Stimolo Transitorio
n
I
V
n-
12Generatori Indipendenti (II)
- Il campo AC identifica il generatore come input
per analisi AC - Lo stimolo transitorio specifica la forma donda
relativa a questo generatore, per le analisi in
transitorio
13Esempio analisi DC
- Primo Esempio
- Un partitore resistivo
- VIN 1 0 DC 6
- Resistenza tra 1 e 2
- R1 1 2 100
- Resistenza tra 2 e massa
- R2 2 0 50
- Analisi DC del circuito
- .OP
- .END
R1
2
1
R2
VIN
14Stimoli Transitori (I)
- Si usa lo stimolo PULSE per generare forme donda
periodiche - PULSE (ltV1gt ltV2gt ltTdgt ltTrgt ltTfgt ltPWgt ltPERgt)
15Stimoli Transitori (II)
- SIN (ltVoffsetgt ltVampgt ltFREQgt ltTdgt ltDFgt ltFASEgt)
-
- VVoffsetVampsin2pfreq(tTd)FASE/360)exp
-(t-Td)/DF
16Stimoli Transitori (III)
- Per generare una forma donda arbitraria si usa
lo stimolo PULSE - PWL (t0,V0) (t1,V1) (t2,V2) (tn,Vn)
- Ad ogni coppia corrisponde un punto
- I punti vengono interpolati tramite rette
- Lultimo valore di tensione viene mantenuto fino
alla fine della simulazione
17Comandi di simulazione .OP
- Valuta il Punto di Riposo piu vicino allo stato
iniziale del circuito - Non vengono prodotte forme donda ma sul file
.OUT di uscita del simulatore vengono riportati
tutti i valori di tensioni e correnti nel punto
di riposo - Trova soltanto un punto di riposo
- La ricerca e di tipo iterativo e non e detto
che il punto di riposo venga trovato.
18Comandi di simulazione .AC
.AC lttipogt ltn puntigt ltf inizialegt ltf finalegt
- Tipo indica il tipo di sweep
- Lineare (LIN),Logaritmico per ottave(OCT),
Logaritmico per decadi(DEC) - Noi useremo esclusivamente sweep per decadi
- Efettua Lanalisi ai piccoli segnali
linearizzando il circuito attorno al punto di
riposo piu vicino (effettua una analisi di .op
preliminare) - Gli ingressi sono considerati tutti i generatori
indipendenti con lindicazione AC - Risolve il sistema calcolando le grandezze
complesse (parte immaginaria e reale) - Non effettua analisi sul comportamento globale
(ai grandi segnali) del circuito
19Comandi di simulazione .DC
.DC lttipogt ltnome vargt ltvalore inizialegt ltvalore
finalegt ltvalore incrementogt
- Permette di ricavare la caratteristica statica
ingresso/uscita del circuito - Calcola i punti di riposo al variare del valore
di un generatore, di tensione o di corrente,
esplicitato da ltnome vargt
20Comandi di simulazione .TRAN
.TRAN ltT stepgt ltT stopgt ltT startgt ltT maxgt
- Permette di Valutare il comportamento del
circuito nel dominio dei tempi. - La simulazione parte sempre da t 0
- Specificare ltT startgt fa si che vengano salvati
soltanto I valori da t Tstart in poi, riducendo
le dimensioni dei file di uscita - ltT maxgt e il massimo valore dello step temporale
usato per la simulazione, e quindi per la
risoluzione dell equazioni differenziali - Il comando .IC puo essere usato per specificare
la condizione iniziale del circuito - .IC ltV(ltn_nodogt,ltn_nodogt) valgtltI(ramo) valgt
21Altri comandi .MODEL
.MODEL ltModel Namegt ltTypegt (ltValori dei
parametrigt)
- .MODEL si usa per settare un set di parametri da
utilizzare per dispositivi complessi (Diodi,
Transistori) - Model Name si usa per fare riferimento ad uno
specifico modello - Type specifica il tipo di modello da usare
- I parametri variano da modello a modello
22Altri comandi .SUBCKT
.SUBCKT ltNomegt ltNodesgt PARAMS ltParametro
Default Valuegtgt .ENDS
- Permette di definire sottocircuiti riutilizzabili
più volte come i componenti predefiniti - I nodi esplicitati nellintestazione e
allinterno del corpo hanno carattere locale
(tranne 0) - Ogni nome ha carattere locale
- I sottocircuiti possono essere istanziati come
componenti generici - XltNome Ist.gt ltNodesgt ltNome Sub.gt ltValore
Parametrigt
23Sottocircuito Amplificatore Operazionale
- .SUBCKT OPAMP INP INN OUT PARAMS VUMP10
VUMN-10 AD400K - E1 OUT 0 VALUEMAX(MIN(ADV(INP,INN),VUMP),VUMN
) - .ENDS
XAMP 1 0 2 OPAMP PARAMS AD200K
24Altri comandi .PROBE
.PROBE ltltvargt.gt
- Permette di salvare il valore di correnti e
tensioni del circuito - Senza argomenti salva tutto
- Nel caso di simulazioni di circuiti complessi
specificando esclusivamente i valori di tensione
e di corrente voluti si puo ridurre lammontare
dei dati da salvare, velocizzando la simulazione
e riducendo le dimensioni dei file di uscita -
25Comandi Vari
- .TEMP ltvaloregt
- Permette di settare il valore della temperatura
di simulazione - .OPTION ltnome opzionegtltn_opzionegtltvaloregt
- Permette di settare tutta una serie di opzioni
che possono andare da le caratteristiche di
simulazione a quelle di output - .PARAM ltnome opzionegtltn_opzionegtltvaloregt
- Permette di definire dei parametri a dare loro un
valore - I parametri possono essere utilizzati allinterno
delle varie parti componenti la netlist - .STEP LIN ltnome_variablegt ltstartgt ltendgt
ltincrementgt - Permette analisi parametriche variando
opportunamente un parametro del circuito -
26Secondo Esempio circuito RCAnalisi del
transitorio di carica
- Carica RC
- V1 1 0 PULSE 0 5
- R1 1 VOUT 6k
- C1 VOUT 0 10n
- .TRAN 5n 400u
- .PROBE
- .END
R1
VOUT
1
C1
VIN
Calcolare il tempo di salita all80 e verificare
il risultato ottenuto tramite il simulatore
27Terzo Esempio circuito RCAnalisi in frequenza
R1
VOUT
- Carica RC
- V1 1 0 PULSE 0 5
- R1 1 VOUT 6k
- C1 VOUT 0 10n
- .AC DEC 1000 1hz 10MEG
- .PROBE
- .END
1
C1
VIN
Calcolare la frequenza di taglio e verificare il
risultato ottenuto tramite il simulatore