1 Introduzione alla simulazione circuitale

Elettronica Digitale
© Alessandro Bogliolo
1 Introduzione alla simulazione circuitale
1.1
CAD per l’elettronica: strumenti software di supporto alla progettazione elettronica
•
•
•
•
•
•
•
1.2
Descrizione del circuito
•
•
•
•
•
1.3
Elementi della descrizione:
• nodi
• componenti discreti passivi (resistenze, condensatori, induttanze) e attivi (generatori indipendenti e
comandati, diodi, transistor bipolari, transistor MOS, …) a due o più terminali connessi ad altrettanti
nodi
Sono rami del circuito i collegamenti tra coppie di nodi
Ad ogni nodo è associata una tensione, ad ogni ramo è associata una corrente, ad ogni componente è
associato un modello matematico che mette in relazione le tensioni ai nodi e le correnti
I modelli dei componenti sono il risultato di un processo di caratterizzazione
Lo schema circuitale (rete elettrica) è il risultato del progetto
Analisi del circuito
•
•
1.4
Livelli di rappresentazione e fasi di progetto di un sistema digitale:
• sistema (system level)
• architettura (architectural level)
• comportamento (behavioral level)
• struttura a blocchi (register transfer level - RTL)
• porte logiche (gate level)
(segnali logici)
• circuito (circuit level)
(segnali analogici)
• layout (layout level)
• dispositivi (physical level)
Linguaggi di descrizione dell’hardware
Flusso top-down:
• Specifica e implementazione
• Progetto (sintesi) e verifica (analisi)
Flusso bottom-up:
• Caratterizzazione
Esistono strumenti software di supporto ad ogni fase del progetto e della verifica
Esistono strumenti CAD in grado di effettuare in modo completamente automatico alcuni passi di
progetto e verifica
Motivazioni: efficienza, rigore, riproducibilità
La rete elettrica viene analizzata applicando le leggi di Kirchoff ai nodi:
• quando possibile le correnti sono espresse in funzione delle tensioni ai capi dei rami I(V)
• altrimenti le relazioni corrente-tensione sono espresse in forma implicita
Sistema di equazioni differenziali ordinarie non lineari nel vettore delle grandezze incognite x e nel
F(x’,x,t)=0
tempo t:
Simulazione numerica
•
•
Caso stazionario: sistema di equazioni non lineari F(x)=0
• Soluzione iterativa (Newton-Raphson):
(0)
• x
soluzione iniziale
(i+1)
(i)
(i) -1
(i)
• x
= x – JF(x ) F(x ) i-esimo passo dell’iterazione
• Nel caso di una sola equazione: f(x)=0
(0)
• x
soluzione iniziale
(i+1)
(i)
(i)
(i)
• x
= x – f(x )/f’(x )
i-esimo passo dell’iterazione
• Significato geometrico
Caso transitorio: F(x’,x,t)=0
• Discretizzazione del tempo:
• tj = tj-1 + ∆tj
• x’j = (xj - xj-1) / ∆tj
• soluzione Newton-Raphson di un sistema di equazioni non lineari nelle sole xj : F(xj)=0
per valori crescenti di j.
Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001
1
Elettronica Digitale
© Alessandro Bogliolo
2 SPICE
2.1
File d’ingresso (.cir)
•
•
2.2
Descrizione del circuito
•
•
•
•
•
•
2.3
Principali elementi:
• Riga di titolo (senza particolari convenzioni, ma necessaria)
• Descrizione del circuito
• Modelli dei dispositivi
• Specifica del tipo di analisi
• Specifica dell’output
• .END
Convenzioni:
• Commento: * in prima colonna
• Continuazione di riga: + in prima colonna
I nodi sono individuati da numeri interi positivi. Il nodo 0 è il riferimento implicito per le tensioni.
Componenti passivi:
nome n+ n- valore
• la prima lettera del nome indica il tipo di componente: R resistenza, C capacità, L induttanza. Le
restanti lettere non devono rispondere a particolari requisiti, ma garantire l’unicità del nome.
• n+ ed n- sono i nodi a cui il componente è collegato
• per convenzione il modello del componente mette in relazione la tensione V(n+)–V(n-) con la
corrente che entra da n+ ed esce da n• il valore è un numero seguito da un suffisso che indica il fattore di scala: Meg, k, m, u, f, p.
Non è necessario specificare le unità di misura.
Generatori indipendenti:
nome n+ n- [DC valore] [AC mag [phase]] [specifica transitorio]
• la prima lettera del nome indica il tipo di generatore: I corrente, V tensione.
• le parentesi quadre racchiudono elementi opzionali:
• DC valore
indica il valore in continua della grandezza generata
• AC mag phase
indica l’ampiezza e la fase iniziali per le analisi ai piccoli segnali
• la specifica di transitorio specifica l’andamento nel tempo della grandezza generata.
Ad esempio:
PWL (T1 V1 T2 V2 T3 V3 T4 V4 ...)
indica una forma d’onda lineare a tratti di cui sono specificate le coordinate dei vertici in ordine
crescente di tempo
Generatori comandati con legge di controllo lineare: i = g v, v = e v, i = f i, v = h i
• generatore di corrente controllato in tensione:
Gnome n+ n- nc+ nc- valore
• generatore di tensione controllato in tensione:
Enome n+ n- nc+ nc- valore
• generatore di corrente controllato in corrente:
Fnome n+ n- Vnome valore
• generatore di tensione controllato in corrente:
Hnome n+ n- Vnome valore
Si noti che le tensioni di controllo sono specificate attraverso una coppia di nodi nc+ nc-, mentre le
correnti di controllo come correnti che fluiscono attraverso un generatore di tensione Vnome.
Generatori comandati con legge di controllo arbitraria:
Bnome n+ n- [I=espressione] [V=espressione]
Dispositivi attivi:
nome n1 n2 [n3 …] modello [par1=val1 par2=val2 …]
• la prima lettera del nome indica il tipo di dispositivo: D diodo, Q bipolare, M mos, …
• il modello indica il nome di un modello di dispositivo definito altrove
• i valori assegnati ai parametri del modello sovrascrivono (se specificati) i valori di default
Modelli di dispositivi
•
La forma generale per la specifica di un modello è:
.MODEL nomemodello tipo [par1=val1 par2=val2 …]
Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001
2
Elettronica Digitale
•
•
2.4
I tipi di dispositivi sono: D diodo, NPN transistor npn, PNP transistor pnp, NJF jfet a canale n, PJF
jfet a canale p, NMOS mosfet a canale n, PMOS mosfet a canale p
Il numero e i nomi dei parametri dipendono dal tipo di dispositivo. Per i transistori NMOS e PMOS
sono disponibili diversi modelli tra i quali si sceglie specificando un parametro chiamato livello
(level). La scelta del livello condiziona la specifica dei restanti parametri e l’uso che il simulatore ne
farà. Alcuni parametri sono legati da relazioni che permettono al simulatore di ricavare il valore dei
parametri non specificati dall’utente e all’utente di fornire specifiche parziali. In ogni caso le
specifiche dell’utente sovrascrivono i valori dei parametri calcolati dal simulatore.
Specifica del tipo di analisi
•
•
•
•
•
2.5
© Alessandro Bogliolo
Analisi DC
.DC SRCNAM VSTART VSTOP VINCR
SRCNAM è il nome di un generatore indipendente
VSTART, VSTOP e VINCR sono gli estremi di un intervallo e il passo di variazione della grandezza
generata
L’analisi in continua viene ripetuta per ogni valore della grandezza
Analisi di transitorio
.TRAN TSTEP TSTOP [TSTART [TMAX]]
TSTEP è il passo usato per la visualizzazione dei risultati
TSTART e TSTOP sono l’inizio e la fine dell’intervallo di tempo da simulare
TMAX è il passo massimo da usare per la discretizzazione del tempo
Analisi AC
.AC DEC ND FSTART FSTOP
.AC OCT NO FSTART FSTOP
.AC LIN NP FSTART FSTOP
Altri tipi di analisi:
• Analisi di sensibilità
• Analisi di rumore
• Analisi statistica
• Analisi di stabilità
Condizioni iniziali
• per la soluzione Newton-Raphson
.NODESET V(N1)=VAL1 V(N2)=VAL2 ...
• per il transitorio
.IC V(N1)=VAL1 V(N2)=VAL2 ...
Specifica del formato di output
•
•
•
Il simulatore calcola (eventualmente in diversi istanti di tempo) le tensioni a tutti i nodi del circuito e le
correnti che attraversano i generatori di tensione. PSpice fornisce inoltre le correnti a tutti i terminali dei
dispositivi. Le convenzioni per indicare le variabili d’uscita sono le seguenti:
è la tensione al nodo N
V(N)
è la differenza di tensione tra i nodi N1 e N2
V(N1,N2)
è la corrente che attraversa il generatore G
I(G)
è la corrente di gate del transistor M1
IG(M1)
è la corrente di drain del transistor M1
ID(M1)
…
Nel caso in cui l’analisi sia stata compiuta ripetutamente (in diverse condizioni operative o in diversi
istanti di tempo) ad ogni variabile d’uscita non è associato un unico valore, ma un vettore di valori.
Il simulatore genera di default un file .out con alcuni risultati. E’ possibile selezionare i risultati da
inserire nel file .out inserendo nel file di input il seguente comando:
.PRINT [OV1 OV2 …]
dove OV1, OV2, … sono variabili d’uscita. Se non è specificato il nome di alcuna variabile d’uscita, il
comando determina il salvataggio di tutti i risultati.
PSpice è corredato da un postprocessore grafico detto Probe, per la visualizzazione e l’analisi dei
risultati. Il salvataggio dei risultati in un file compatibile con Probe si ottiene inserendo nel file di input il
comando:
.PROBE [OV1 OV2 …]
dove OV1, OV2, … sono variabili d’uscita. Se non è specificato il nome di alcuna variabile d’uscita, il
comando .probe salva tutti i risultati per la successiva visualizzazione.
Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001
3
Elettronica Digitale
2.6
Sottocircuiti
•
•
•
2.7
© Alessandro Bogliolo
E’ possibile descrivere i circuiti in modo gerarchico definendo dei sottocircuiti. La descrizione di un
sottocircuito è racchiusa tra la linea .SUBCKT e la linea .END:
.SUBCKT nomemacro N1 [N2 N3 …]
...
.ENDS nomemacro
I nodi specificati nella linea di intestazione definiscono i terminali esterni del sottocircuito. I loro nomi
non sono in conflitto con quelli esterni al sottocircuito.
L’uso di un sottocircuito è il seguente:
Xnomeistanza N1 N2 N3 ... nomemacro
Per convenzione i nomi di istanze di sottocircuiti cominciano per X
Inclusione di files
•
•
E’ possibile suddividere il file di input in diversi file. A tal fine occorre individuare un file principale, che
verrà usato come input del simulatore, nel quale gli altri vanno inclusi mediante i comandi
.INCLUDE nomefile
.LIB nomelibfile
La differenza tra i due comandi è solo nel contenuto del file da includere, che si assume contenga solo
modelli e sottocircuiti se l’inclusione è fatta con il comando .LIB.
3 Esempio
3.1
Dettagli pratici
•
•
•
•
•
3.2
PC del laboratorio di informatica con sistema operativo Windows
Username ele2
Password spice2
Programma principale: PSpiceAD (icona sul desktop)
Pspice Student Version 9.1
• Distribuita da OrCAD (http://www.orcad.com)
• Limitazioni della versione dimostrativa:
• 64 nodi
• 10 transistors
• 10 linee di trasmissione (ideali o non)
• 4 linee di trasmissione accoppiate a coppie
File d’ingresso esempio.cir
Esempio: inverter CMOS statico
**
M1
M2
Cl
descrizione del circuito
1 2 3 1 mosp L=0.5u W=1u
3 2 0 0 mosn L=0.5u W=0.5u
2 0 50fF
** modeli dei dispositivi
.model mosn nmos level=1 vto=1 kp=80u gamma=0
.model mosp pmos level=1 vto=-1 kp=40u gamma=0
** Generatori indipendenti di tensione
Vdd 1 0 3.3V
Vin 2 0 3.3V
** specifica dell'analisi: caratteristica statica
.dc Vin 0 3.3 0.01
.probe
.end
Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001
4