fB=0 - Polinformatici

annuncio pubblicitario
Politecnico di
Milano
Facolti di Ingegneria dell'Informaztone
Fondamenti di Eletfronica
6lMl20ll -
Anno accademico
20l0l20ll
Simulazione SPICE di un inverter CMOS.
Parte
l:
Diseeno del circuito
Si consideri il seguente invertitore CMOS realizzato impiegando due MOSFET complementari
alimentati tra 0V e 1.5V. Nota sui simboli: il transistore Ml d un nMOS con il source verso massa e
M2 un pMOS con source verso I'alimentazione Vaa. Il terminale centale con la freccia
rappresenta il substato all'interno del quale d fisicamente rcalizzato il tansistore.
il
Wr
1.8u.
[:0..19u.
0q;0.
Vl.'0
\rZ'
1.5
TR =
llDfs
fB=0
,
TF' lfilis
W'' l.tu.
Ll0.ltu"
: '0
I
.?0
I transistori sono realizzati con un processo CMOS avente le seguenti caratteristiche:
.
.
.
.
.
.
.
Lunghe
zra dicanale minima: 0.18pm
Tensione di soglia transistori MOS a canale n: Vrn:0.5V
Tensione di soglia transistori N4OS a canale p: V1o=-0.5V
Mobiliti elettoni: po 500 cm2lvs
Mobiliti lacune: po = 200 cm2Ay's
Capaciti dell'ossido per unita di area: C*=1Off/pm2
Tensione di alimentazione: 1.5V
:
il circuito ttrlizzare il programma Captue. Lo schema circuitale pud essere scaricato
dall'indirizzo http://home.dei.polimi.iUferrarillaboratori/labl/labFdEl.zip. Estrarre il file zip in una
cartella sul desktop e aprire il file frle20l0a.opj. Lo schematico si trova nelle Design Resources -)
fde20l0a.dsn -> SCHEMATICI -> PAGEI.
Per simulare
Alternativamente si pud disegnare lo schema elettrico mediante Orcad Captue seguendo queste
indicazioni:
'
Creare un nuovo progetto (File -> New
"Analog or Mixed ND".
-> Project.,.), avendo cura di selezionare la voce
Per inserire un componente cliccate su Place -> Part... si apriri una finestra da cui d
possibile scegliere i componenti. Nel caso non vi siano librerie selezionate, cliccare su "Add
Library..." e aggiungerc breakout.olb, source.olb e analog.olb.
Nella libreria breakout.o/D sono presenti dei dispositivi ideali (Mbreakl,l3= MOSFET Nchannel, MbreakP3: MOSFET P-channel, Rbrealercsistenzq Cbrealrcapacita; la
resistenza e la capaciti si tovano anche nella libreria analog.o/b digitando R e C,
rispettivamente) mente nella libreria souree.olb sono presenti i generatori (VDC, VSIN,
VPULSE, IDC, ISIN, IPULSE...).
i[ componente massa per indicare al
quale
nodo considerare come riferimento a 0V. Per fare questo cliccare su
simulatore
"Place -> Ground...", aggiungere la libreria source.olb (presente nella cartella PSpice) e
selezionare i[ componente 0, da posizionare nel nodo di massa.
Nello schematico d anche necessario aggiungere
Per fornire i parametri del modello del transistore bisogna selezionarlo con il mouse e dal
menu Edit sceglierc Pspice Model. Aggiornare quindi la finesta che definisce il modello nel
modo seguente:
pMOS:
.model Mbreakp PMOS
+VTO=-0.5
+KP:0.2e-3
+LAMBDA=O
rMOS
.model Mbreakn NMOS
+VTO:0.5
+KP:0.6e-3
+LAMBDA=O
dove VTO= tensione di soglia e KP=pCo*. In zona satura
espressione della corrente di drain:
,, - I*$V*
- r,of
(r +
r.ttMDA. Yor)
il simulatore
unliz.za,la seguente
(Eq-I)
Il
coeffrciente LAMBDA modellizza I'incremento della corrente di drain dovuto allo
spostamento del punto di pinch-off all'aumentare della tensione tra drain e source. Salvo
dove diversamente indicato terremo questo parametro a 0 ottenendo cosi I'espressione usata
a lezione:
," -I*rTVo,
-y,oy
(8q.2)
Per inserire i parametri geometrici del transistore fare un doppio click con il mouse sul
componente (oppure dal menu Edit selezionare Properties...) e aggiornare i campi L e W
(Nota: il simbolo per il micron d la lettera u).
Per I'alimentazione Va1 usate un generatore di tensione costante VDC e impostate
parametro *DC" al valore di l.5V
il
Per il generatore di ingresso utilizzate il componente VPULSE. Cliccare sul simbolo e
impostare i seguenti campi: Vl=0V; V2=1.5V; TD=I0p, TR=l00f; TF=l00f; PW:49.9p;
PER=lO0ps. Questi parametri definiscono un'onda quadra ta 0 e 1.5V, con un ritardo
iniziale TD (delay time) dt l0ps, tempo di salita (rise time) e tempo di discesa @l time) di
100fs, durata a livello V2 di PW=49.9ps (pulse width), e periodo PER:l0Ops.
Alle linee di
collegamento si pud associare un nome, utile da richiamare per la
vissalizzazione dei segnali, facendo click su Place -> Net Alias..., selezionando il nome e
cliccando sulla linea.
.
(PSpice -> Marlcers -> Voltage leve[) sul nodo di uscita per
visualizzare automaticamente al termine di una simulazione la tensione di uscita. In
alternativa, per non perdere le impostazioni di vistalizzazione tra una simulazione e l'altra,
e' possibile impostare I'opzione "Last Plof' nel campo "Slrow" della tab "Probe Window"
delle impostazioni della simulazione.
E' utile collocare un marker
Parte 2: Analisi statica
1)
Determinare, mediante simulazione, la caratteristica di tasferimento Vou,/Vin dell'invertitore.
A
tale scopo dal menu PSpice selezionare New Sitnulation ProJile, e dare un nome alla
simulazione. A questo punto si apre la finesta per la configurazione della simulazione, che in
questo caso va impostata con"Analysis type" a"DC Sweep", selezionando poi come variabile di
scansione *Voltage Source", impostando il nome del generatore di ingresso e impostando gli
estremi in modo da coprire tutte le tensioni dell'alimentazione (impostare un incremento di
lmV o inferiore in modo da ottenere una caratteristica ben risolta con la tensione di ingresso).
A questo punto d possibile far partire la simulazione (PSpice -) Run, oppure Fl l).
Riportare la curva caratteristica quotando i prurti piri significativi.
Nota: abilitare la firnzione Cursor (Trace -) Cursor -> Disploy) per attivare due cwsori (uno
controllato dal tasto sinistro del mouse e uno dal tasto desho) e vis;.nlizz.are le tensioni della curva
caratteristica.
Come potete osservare sono visibili 5 regioni distinte della caratteristica Vin-Vout ciascuna
associabile al differente regime di funzionamento dei transistori. Indicate sul grafico le regioni di
funzionamento dei due transistori nei vari tratti della caratteristica e confrontati i valori di passaggio
da una regione all'altra con quelli attesi dalla teoria.
Determinare dalla simulazione la soglia di commutazione dell'inverter e confrontarla con quella
teorica:
vrHdasimuratorc=
6 93
,5
nnV
Calcolo teorico della soglia di commutazione
\our=V',,rs VD"/
VrHt*ri.a=
2)
ab rc
hN'
Determinare i margini di rumore dell'invertitore. Per visualizzare la derivata della tensione di
uscrta, utile per calcolare a quale tensione di ingresso la pendenza della caratteristica diventa -1,
si aggiunga una traccia con il comando Trace -> Add trace del postprocessore grafico Probe e si
digiti "D(V(Tout))", dove D0 e I'operatore di derivata e Vout il nome corrispondente al nodo
di uscita.
vos.io:
VrL.o
:
.o = 6 { ,J*Y
,f r l53V
VoL
6l6rrV
Vnr.io=?3trmp'
NM(0)= o
tS 19V
NM(l): OtTaSV
Come potete ossery.ue i margini di rumore di un invertitore CMOS sono elevatissimi, permettendo
di tollerare dei rumori e dei disturbi pari a circa un terzo della tensione di alimentazione.
3) Tracaiare loassorbimento
di corrente dall'alimentazione Ve,l al variare della tensione di ingresso
rura delle due seguenti operazioni: a) posizionare sullo
schematico un marker di corrente su uno dei due terminali del generatore Ve"r; b) dal
progftrrnma Probe aggiungere una haccia (Add Trace) e selezionare la corrente circolante in
V,cA tra quelle disponibili. In enftarnbi i casi d consigliabile rimuovere le tacce di tensione non
utiliz.z.ate, o in alternativa aggiungere un grafico alla finestra, in modo da avere scale ragionevoli
sia per la tensione che per la corrente (Plot -> Add Plot to Window)
Vin.
A questo scopo si eseguano
Per quale
Vin si ha la conente massima?
Cbln"V
Quanto vale la corrente massima?)3/636
\l\
Giustificare teoricamente i valori di tensione e di corrente massima forniti dal simulatore.
"rwa r'rr{a^q
C'ar^o*G- n, b4V
6gtvrrr/ Srtw.O. ^c\d1
\^
}tvrt
i
N
= Ln(V5t.,r-\
T= r [V.,'-rf
;
nxu \ )"' s
Vna-
P
per avere dissipazione di potenza statica nulla con quali valori della tensione di ingresso bisogna
operare?
\n1g" otr*-, 0 cm5hvpr fi V." (\S*{Vrrb..nn^rJ of.6n* {,'\
$ffi= C( o.iro^, Vp) V*. \.'.= Y
Approfondimento focoltativo: Provate a ripetere i pr:nti l-2-3 considerando I'effefio dello
sp6stamento del punto di pinch-off. A questo scopo modificate i modelli di entrarnbi i transistori
impostando LAMBDA:O. I .
Qualitativamente sono cambiate le caratteristiche Vin-Vout e Vin-I,q"{?
(V1g) e la corrente massima
Quantitativamente di quanto sono cambiati la soglia di commutazine
Iea,-o?
Variazione percentuale di Vrs:
Variazione percentuale di I6,qp6;.:
Dopo aver svolto anche le parti 3 e 4 del laboratorio provate a-pensare (ed eventualmente simulare)
come cambiano i tempi di commutazione e la potenza dissipata considerando l'effefio dello
spostamento del punto di pinch-off. '
Parte 3: Analisi del transitorio di commutazione
esame un secondo invertitore con le medesime
caratteristiche, modellizzandolo con una capacita di valore Ct=2'Co* WL = 6.48ff collegata tra il
nodo di uscita e massa.
Per I'analisi controllare i parametri di Vin: fare doppio clic sul suo simbolo e visualizzare i seguenti
campi: V1=0V; Y2=1.5Y; TD:10p, TR=100f; TF:100f; PW=49.9p; PER=lOOps. Questi parametri
definiscono un'onda quadra tra 0 e 1.5V, con un ritardo iniziale TD (delay time) di 10ps, tempo di
Si
assuma
di
collegare all'invertitore
in
salita (rise time) e tempo di discesa (all time) di l00fs, duata a livello V2 di PW=49.9ps (pulse
width), e periodo PER=100ps.
Per eseguire la simulazione, creare un nuovo profilo (PSpice -> New Simulation Protile), con tipo
di analisi "Time Domain (Transient)", impostando "Run to Time" a 500ps (intervallo temporale
simulato) e il "Muimum step size" a 100fs (passo temporale massimo rtilizzato durante la
simulazione).
A questo punto, mettete un marker sul nodo di uscita per visualiz.z.zrme la tensione e fate partire la
simulazione.
4)
Dal risultato della simulazione determinare i tempi di commutazione associati alle hansizioni
degli ingressi 0)l e 1)0. Per sempliciti si consideri il tempo richiesto al nodo di uscita per
raggiungere Y 61./2=0.7 5Y .
b+r:
5t S
tr)o= 2
t
f
coincidono.
cx l.c^w.,**\nt" L,L y''r-t "A- tb
Giustificare perch6 i due tempi non
L\o51,-ov-^*
tt t**
5)
qa
-rin4\c*
..,
r\
l*t= "&
rm'-
h- A^,o"> .d'
!nr\,
t*
un^
0-ad\t^R\^S,@
l^^fta
,".{\,[kN
Modificare le dimensioni del transistore nMOS per rendere uguali i due tempi commutazione
verificare tramite il simulatore la correttezz.a della soluzione proposta
Modifica proposta:
t(7 g"^""""n-
e
n^lL b."ftr*,
L K dan oolc; o, pryol cyfwi,
u
* bqf {^ i{, lfr(..
fuorlot*, w1"{"
t ilft
Nuovi tempi di propagazione:
to+r:
If '
tr)o: 9Y
E
6) A
lezione avete visto due approssimazioni, una per eccesso (il MOS d sostituito da una
resistenza equivalente R"q=Vu/Ioo1) e una per difetto (il MOS considerato in zona satura per
tutta la commutazione), per stimare i tempi di propagazione di una porta logica. Confrontare i
risultati forniti dal simulatore con le due stime.
Stima per eccesso:
to+r:tr+o:
\-
2rt9 f S
Enore percentuale rispetto al simulatot"=26'/u
Stima per difetto:
b+r==tr+o=
tlp+t,
fl
Errore percentuale rispetto al simulatore
s
?r!%
W
Parte 4: Analisi della notenza dissinata
7)
Determiniamo tramite il simulatore lapotenza media dissipata dal circuito. Per visualizzarc la
potenza istantanea erogata dall'alimentazione, dopo aver effettuato la simulazione nel
progranuna Probe cliccare su Trace -> Add Trace... quindi inserire VCX)*ICX) in cui X C il
nom€ del generatore di tensione dell'alimentazione (es. I(Vs)*V(Vne )) e cliccare su OK.
E' possibile visualizzare direttamente la potenza media dissipata cliccando su Trace -)
Evaluate Measuremsnl s vfiliz.zando il comando TPnW2(XY) che trovate nella sottofinesta
Functions or Macros In questo comando X d I'integrale della potenza istantanea, calcolabile
con il comando S(.) e Y e il periodo della tensione applicat4 l00p nel nostro caso. Il comando
completo si presenta quindi come:
TP mW 2 (S (I (Vaa)
A
questo punto
mW.
il
*V (Vaa)
),
10
0p)
valore della potenza dissipata d visualizzato finesta di dialogo, espresso in
Eseguire la simulazione in differenti condizioni e confrontare i risultati ottenuti con i valori
attesi dalla relazione della potenza dinamica. Per non perdere le impostazioni di visualizzazione
fa una simulazione e I'alt4 e' consigliabile selezionare I'opzione "Last Plof'nel campo
"Show" dellatab "Probe Window" delle impostazioni della simulazione.
cahn2
Condizione
Potenza dissipata - simulatore
Potenza dissioata - teorica
o
Valori dati in orecedenza nel testo
{ mW
O;4( 5J n"W
'l\S
Raddoppio della tensione di
alimentazione (Va,a:3V e
generatore di ingresso con Vl=0
e V2:3V)
Raddoppio della frequenza
(modificare i parametri del
generatore di ingresso con
VI:OV; V2:1.5V; TD=10p,
TR=l 00f; TF:l 00f; PW:24.9p;
PER:50os)
Transistori piir conduttivi: portare
la larghez,za di entrambi i
transistori a W= 18um
Transistori
meno
conduttivi: portare lalaryhena di
or58141
uw
o
)2216 uvr
oI
29 46 n'.\rr/
O
I
5{3Jr'u,Vtt
O,lz,
O;29 / d r..V,l
molto
entrambi
0.18um
i
transistori
a
W-
otfil
69mr,v
G nW
0;?94
( nut
Come potete osservare in tutti i casi hanne l'ultimo il valore fomito dal simulatore coincide con
I'espressione della potenza dinamica. Per capire perch6 nell'ultimo caso apparentemente la potenza
dissipata non d valutata correttamente visualizzate I'andamento della tensione in uscita dell'inverter.
Tra quali valori commuta il nodo di uscita nel caso di W=0.18 pm ?
Pq'v
96,2oft."y-h?4/0 rh{ ,$ rV.;ff hrnla
*+ec
Provate a riprendere I'analisi della potenza dinasrica fatta a lezione adattandola a questo caso in
cui I'uscita non commuta a piena dinamica.
Gk**
*pb
L vsE=#rr++ fr=
b. h[!€=\i,= Af*r
I
* fy^il= Q.(Vrq^4dil'V"
'
Nuova espressione della potenza dinamica:
Po
=4C.(v"*^Y-n,)
lt*
Valore teorico della potenza dinamica: O
lQqS
,mW
Valorafomito dal simulatore della potenza dinamica: O l@S
V/
Come vedete la semplice espressione della potenza dinamica permette
precisione la potenza dissipata in tutte le condizioni!
di calcolare con estrema
8) Ripristinare il
rapporto di forma Wn:Wo:l.8pm; Ln=Lo:0.l8pm e modificare i parametri del
generatore in ingresso come segue:
Vl:0V; Y2:1.5; TD=O, TR:499p; TF:499p; PW:lp; PER:ln.
In questo modo si riduce notevolmente la pendenza del segnale in ingresso, che ora ben
approssima un' onda friangolare.
Simulare la potenza media dissipata dal circuito, avendo cura di impostare i parameti della
simulazione per simulare qualche periodo, e confrontare il risultato con il valore atteso dal solo
contributo dovuto alla potenza dinamica.
Potenza media dissipata simulata
Potenza dissipata dinamicamente (teorica)
i due valori non coincidono, d utile eseguire una nuova simulazione
minimizzando lapotenza, dissipata per la commutazione della capacita' Cr, (impostandola a un
valore molto piccolo, per esempio le-l8 F) e visualizzando I'andamento della corrente assorbita
dall'alimentazione.
Per capire perch6
Potenza media dissipata simulata senza capaciti di carico:
Andamento della corrente assorbita dall'alimentazione (riportare ur solo periodo):
Ie"l
Come potete osservde I'andamento d analogo a quello trovato al punto 3. Il conhibuto di potenza'
dissipata presente in questo caso, chiamato di cross-conduzione, d quindi dovuto all'accensione
,ori^poronea dei due transistori che causa un passaggio diretto di corrente dall'alimentazione
verso **ru. Il contributo d tanto piir significativo quanto piir i fronti di salita e di discesa del
segnale in ingresso sono lenti perchd tengono accesi entrarnbi i transistori per un tempo maggiore.
In-condizioni operative normali in cui segnale in ingresso proviene da una porta logica di
caratteristiche analoghe la potenza dissipata per cross-conduzione d trascurabile rispetto a quella
il
dinamica.
Approfondimento per i pin volenterosi. Verifichiamo I'ultima affermazione fatta al punto
pieceiente effettuando una simulazione della poterwa dissipata in funzione della pendenza della
iensione in ingresso. A tal motivo, sempre con capacita' Cr trascurabile, inseriamo nello schematico
un pararnetro globut" in modo da effettuare una simulazione parametrica al variare della pendenza
delL tension" di ittgtrsso. Inserire in r:n qualsiasi punto dello schematico il componente PARAM
presente nella libreria special.olb fare doppio clic su di esso in modo da aprire la finesfra edit
'properties.
Cliccare su New Row e aggiungere un nuovo parametro decidendo il nome (es. slope) e
ittririt" in value il valore di default, 100f. Cliccare con il tasto desto sulla riga con il nuovo
parametro e andare su Displry -> Display format value and name in modo da visualizzare sullo
schematico il nuovo parametro e il suo valore.
A questo punto occorre modifrcare il generatore di segnale di ingresso come segue:
V I :0V; V2= 1.5V; TD: 1 0p, TR: { slope} ; TF: {slope} ; PW:{ 500p-slope} ; PER: I n
In questo modo impostiamo come parametri TR e TF il valore presente in slope. Ora occorre
modificare le proprieta della simulazione attivando I'opzione parametric sweep presente su
transient,e cliciari su global parameter, aggiungere il nome del parametro da far variare durante la
simulazione slope e aggiungere invalue /isr i valori che esso deve assumere nelle varie simulazioni;
nel nostro caso inseriamo
Awiare la simulazione.
lp 3p 10p 30p 100p 300p.
Per visualizzare la potenza dissipata in funzione della penderua dei fronti di commutazione su
Trace e poi su performance analysis e cliccare OK; in questo modo si apre un grafico in cui
nell'asse delle ascisse d utilizzato il paramefo slope. A questo punto d possibile visualizzare le
grandezze elettriche in funzione di questo parameto, in particolare andiamo a visnliz.zare la
potenza media dissipata cliccando su Trace ->Add trace e inserendo come visto in precedenza
I'espressione:
rPmW2(S(YOI(.)),1n)
Tracciare il grafico risultante, utilizzando una scala logaritnica per I'asse x in modo da evidenziare
bene I'andamento della potenza dissipata su tutti i valori del tempo di salita. Per impostare la scala
logarieric4 selezionare l'opzione corrispondente in Plot -> Axis Settings.
Dall'analisi svolta al punto 3 sappiamo che il tempo di propagazione della porta logica d circa 5ps,
ciod che la tansizione della tensione in uscita (da 0 a Vaa o viceversa) awiene in circa l0ps.
Per una slope
di l0ps quanto vale la potenzadissipata
per cross-conduzione?
Quanto vale percentualmente rispetto alla potenza dissipata dinamicamente?
Come potete osservare quando una porta logica comanda un'alta porta logica di caratteristiche
analoghe (situazione molto comune in un sistema digitale) la dissipazione per cross-conduzione
non riveste un ruolo significativo.
Scarica