27
Introduzione al simulatore circuitale SPICE Andrea Cappelli Andrea Cappelli Bologna, 27 Gennaio Bologna, 27 Gennaio 2005 2005 Corso di Circuiti Elettronici Analogici L- A

Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Embed Size (px)

Citation preview

Page 1: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Introduzione al simulatore circuitale SPICE

Andrea CappelliAndrea Cappelli

Bologna, 27 Gennaio Bologna, 27 Gennaio 20052005

Corso di Circuiti Elettronici Analogici L-A

Page 2: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Contatti

Andrea Cappelli

ARCES viale Pepoli 3/2Telefono: 051 20 93828

E-mail: [email protected]

Page 3: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Il Simulatore SPICE

Simulation Program with Integrated Circuit Emphasis Sviluppato a Berkeley negli anni 60

.lib

.cirParser

& Solver

.out

.dat

Text Editor

Schematic Editor

.sch

Text Editor

Graphic Interface

Page 4: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Struttura della Netlist

* Titolo della netlist..<caricamento librerie e definizione modelli>..<istanziamento componenti>..<comandi di simulazione>..<istruzioni di post-simulazione>

Page 5: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Regole 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 un’intera linea Il carattere “;” commenta la restante parte

della linea

Page 6: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

La 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)

Page 7: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Componenti Lineari Passivi

R<Nome> <n+> <n-> [Modello] <Valore> C<Nome> <n+> <n-> [Model] <Valore> [IC=<V0>] L<Nome> <n+> <n-> [Model] <Valore> [IC=<I0>]

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.

Page 8: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Resistori

Modello: se assente viene considerato un resistore ideale (lineare senza effetti reattivi: V=RI)

Valore: specifica il valore della resistenza

R<Nome> <n+> <n-> [Modello] <Valore>

n+n+

n-n-

VVII

Page 9: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Condensatori

IC: Permette di specificare lo stato iniziale (tensione) del condensatore.

Se il modello non è specificato si assume il condensatore come ideale:

C<Nome> <n+> <n-> [Model] <Valore> [IC = <VC<Nome> <n+> <n-> [Model] <Valore> [IC = <V00>]>]

dt

dVCI

n+n+

n-n-

VV

II

Page 10: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Induttori

IC: Permette di specificare lo stato iniziale (corrente) dell’ induttore.

Se il modello non è specificato si assume l’induttore come ideale:

dt

dILV

L<Nome> <n+> <n-> [Model] <Valore> [IC = <IL<Nome> <n+> <n-> [Model] <Valore> [IC = <I00>]>]

n+n+

n-n-

VVII

dt

dILV

Page 11: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Generatori Indipendenti (I)

V<Nome> <n+> <n-> DC <Valore>

+ [AC [<ampiezza>[fase]]]

+ [Stimolo Transitorio]

I<Nome> <n+> <n-> DC <Valore>

+ [AC [<ampiezza>[fase]]]

+ [Stimolo Transitorio]

n+n+

n-n-

VV II

Page 12: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Generatori Indipendenti (II)

Il campo AC identifica il generatore come input per analisi AC

Lo stimolo transitorio specifica la forma d’onda relativa a questo generatore, per le analisi in transitorio

Page 13: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Esempio: analisi DC

*Primo Esempio:*Un partitore resistivoVIN 1 0 DC 6*Resistenza tra 1 e 2:R1 1 2 100Resistenza tra 2 e massa:R2 2 0 50*Analisi DC del circuito.OP.END

R1

R2VIN

1 2

Page 14: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Stimoli Transitori (I)

Si usa lo stimolo PULSE per generare forme d’onda periodiche:

PULSE (<V1> <V2> <Td> <Tr> <Tf> <PW> <PER>)

V2V2

V1V1

TTdd TTrrPWPW TTff

PERPER

Page 15: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Stimoli Transitori (II)

SIN (<Voffset> <Vamp> <FREQ> <Td> <DF> <FASE>)

V=Voffset+Vamp*sin{2π*[freq*(t–Td)+FASE/360])*exp[-(t-Td)/DF]

Page 16: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Stimoli Transitori (III)Per generare una forma d’onda 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

• L’ultimo valore di tensione viene mantenuto fino alla fine della simulazione

VV11

VV22

VVnn

VV00

tt00 tt11 tt22 ttnn

Page 17: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Comandi di simulazione: .OP

Valuta il Punto di Riposo piu’ vicino allo stato iniziale del circuito

Non vengono prodotte forme d’onda 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.

Page 18: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Comandi di simulazione: .AC

Tipo: indica il tipo di sweep• Lineare (LIN),Logaritmico per ottave(OCT), Logaritmico per decadi(DEC)• Noi useremo esclusivamente sweep per decadi

Efettua L’analisi 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 l’indicazione AC

Risolve il sistema calcolando le grandezze complesse (parte immaginaria e reale)

Non effettua analisi sul comportamento globale (ai grandi segnali) del circuito

.AC <tipo> <n punti> <f iniziale> <f finale>.AC <tipo> <n punti> <f iniziale> <f finale>

Page 19: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Comandi di simulazione: .DC

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 <nome var>

.DC <tipo> <nome var> <valore iniziale> <valore finale>+.DC <tipo> <nome var> <valore iniziale> <valore finale>+<valore incremento> <valore incremento>

Page 20: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Comandi di simulazione: .TRAN

Permette di Valutare il comportamento del circuito nel dominio dei tempi.

La simulazione parte sempre da t = 0 Specificare <T start> fa si che vengano salvati soltanto I valori

da t = Tstart in poi, riducendo le dimensioni dei file di uscita <T max> 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 <V(<n_nodo>[,<n_nodo>]) = val>|<I(ramo) = val>

.TRAN <T step> <T stop> [<T start> [<T max>]].TRAN <T step> <T stop> [<T start> [<T max>]]

Page 21: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Altri comandi: .MODEL

.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

.MODEL <Model Name> <Type> (<Valori dei parametri>).MODEL <Model Name> <Type> (<Valori dei parametri>)

Page 22: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Altri comandi: .SUBCKT

Permette di definire sottocircuiti riutilizzabili più volte come i componenti predefiniti

I nodi esplicitati nell’intestazione e all’interno del corpo hanno carattere locale (tranne 0)

Ogni nome ha carattere locale I sottocircuiti possono essere istanziati come componenti

generici:X<Nome Ist.> <Nodes> <Nome Sub.> [<Valore Parametri>]

.SUBCKT <Nome> <Nodes> [PARAMS: <Parametro = Default Value>>]….ENDS

Page 23: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Sottocircuito: Amplificatore Operazionale

.SUBCKT OPAMP INP INN OUT PARAMS: VUMP=10 VUMN=-10 + AD=400K

E1 OUT 0 VALUE={MAX(MIN(AD*V(INP,INN),VUMP),VUMN)}.ENDS

VP-VN

VOUT

…XAMP 1 0 2 OPAMP PARAMS: AD=200K…

Page 24: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Altri comandi: .PROBE

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 l’ammontare dei dati da salvare, velocizzando la simulazione e riducendo le dimensioni dei file di uscita

.PROBE [<<var>.>]

Page 25: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Comandi Vari

.TEMP <valore>• Permette di settare il valore della temperatura di simulazione

.OPTION [<nome opzione>][<n_opzione><valore>]• Permette di settare tutta una serie di opzioni che possono andare da le caratteristiche di

simulazione a quelle di output

.PARAM [<nome opzione>][<n_opzione><valore>]• Permette di definire dei parametri a dare loro un valore• I parametri possono essere utilizzati all’interno delle varie parti componenti la netlist

.STEP LIN <nome_variable> <start> <end> <increment>• Permette analisi parametriche variando opportunamente un parametro del circuito

Page 26: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Secondo Esempio: circuito RCAnalisi del transitorio di carica

*Carica RC

V1 1 0 PULSE 0 5R1 1 VOUT 6kC1 VOUT 0 10n

.TRAN 5n 400u

.PROBE

.END

R1

C1

VIN

VOUT1

Calcolare il tempo di salita all’80% e verificare il risultato ottenuto tramite il simulatore

Page 27: Introduzione al simulatore circuitale SPICE Andrea Cappelli Bologna, 27 Gennaio 2005 Corso di Circuiti Elettronici Analogici L-A

Terzo Esempio: circuito RCAnalisi in frequenza

*Carica RC

V1 1 0 PULSE 0 5R1 1 VOUT 6kC1 VOUT 0 10n

.AC DEC 1000 1hz 10MEG

.PROBE

.END

R1

C1

VIN

VOUT1

Calcolare la frequenza di taglio e verificare il risultato ottenuto tramite il simulatore