Politecnico
di Milano Facolti
di Ingegneriadell'Informaztone
Fondamenti di Eletfronica 6lMl20ll -
Anno accademico20l0l20ll
Simulazione SPICE di un inverter CMOS.
Parte l: Diseeno del circuito
Si consideri il
seguenteinvertitore CMOS
realizzato impiegandodue MOSFET
complementari alimentati tra0V
e 1.5V. Nota suisimboli: il
transistoreMl
d un nMOS conil
source verso massa eM2 un pMOS con il
sourceverso I'alimentazione Vaa. Il terminale centale con la
freccia rappresentail
substatoall'interno
del quale d fisicamente rcalizzatoil
tansistore.I
.?0
0q;0.
Vl.'0
\rZ'
1.5fB=0
,TR =
llDfs
TF' lfilis W'' l.tu.
Ll0.ltu"
: '0
I
transistori sono realizzati con un processo CMOS avente le seguenti caratteristiche:.
Lunghezra
dicanale minima: 0.18pm.
Tensionedi
soglia transistori MOS a canale n:Vrn:0.5V
.
Tensionedi
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
.
Tensionedi
alimentazione: 1.5VPer simulare
il circuito ttrlizzare il
programmaCaptue. Lo
schema circuitale pud essere scaricatodall'indirizzo
http://home.dei.polimi.iUferrarillaboratori/labl/labFdEl.zip. Estrarreil file zip in
una cartella sul desktop e aprireil file frle20l0a.opj. Lo
schematico sitrova
nelle Design Resources-)
fde20l0a.dsn -> SCHEMATICI -> PAGEI.
Alternativamente si pud disegnare
lo
schema elettrico mediante OrcadCaptue
seguendo queste indicazioni:'
Creare un nuovo progetto(File ->
New-> Project.,.),
avendo curadi
selezionarela
voce"Analog
orMixed ND".
Wr
1.8u.[:0..19u.
Per inserire un
componentecliccate su Place -> Part... si apriri una finestra da cui
dpossibile scegliere
i
componenti.Nel
caso nonvi
siano librerie selezionate, cliccare su"Add Library..."
e aggiungerc breakout.olb, source.olb e analog.olb.Nella libreria
breakout.o/D sono presentidei dispositivi ideali
(Mbreakl,l3=MOSFET N- channel, MbreakP3: MOSFET P-channel, Rbrealercsistenzq Cbrealrcapacita;
la resistenzae la capaciti si tovano anche nella libreria analog.o/b digitando R e
C, rispettivamente)mente nella libreria
souree.olb sono presentii
generatori(VDC, VSIN,
VPULSE,IDC, ISIN, IPULSE...).
Nello
schematicod
anche necessario aggiungerei[
componente massaper indicare
al simulatorequale nodo
considerarecome riferimento a 0V. Per fare
questocliccare
su"Place -> Ground...",
aggiungerela libreria
source.olb (presentenella
cartella PSpice) e selezionarei[
componente 0, da posizionare nel nodo di massa.Per
fornire i
parametri delmodello
del transistore bisogna selezionarlo conil
mouse e dal menuEdit
sceglierc Pspice Model. Aggiornare quindi lafinesta
che definisceil
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=
tensionedi
soglia eKP=pCo*. In
zona saturail
simulatore unliz.za,la seguente espressione della correntedi
drain:,, - I*$V* - r,of
(r +r.ttMDA. Yor) (Eq-I)
Il coeffrciente LAMBDA modellizza I'incremento della corrente di drain dovuto allo
spostamentodel
puntodi pinch-off
all'aumentaredella
tensionetra 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 geometricidel
transistorefare un doppio click con il
mouse sulcomponente (oppure dal menu
Edit
selezionareProperties...)
e aggiornarei
campiL e W
(Nota:il
simbolo peril
micron d la lettera u).Per I'alimentazione Va1
usateun
generatoredi
tensione costanteVDC e
impostateil
parametro
*DC"
al valoredi l.5V
Per il
generatoredi
ingressoutilizzate il
componenteVPULSE. Cliccare sul simbolo
eimpostare
i
seguenticampi: Vl=0V; V2=1.5V; TD=I0p, TR=l00f; TF=l00f; PW:49.9p;
PER=lO0ps.
Questi parametri
definisconoun'onda
quadrata 0 e 1.5V, con un
ritardoiniziale TD
(delay time)dt l0ps,
tempodi
salita (rise time) e tempodi
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
associareun nome, utile da richiamare per la
vissalizzazione dei segnali, facendoclick
su Place->
NetAlias...,
selezionandoil
nome e cliccando sulla linea.. E' utile
collocareun
marker (PSpice->
Marlcers->
Voltage leve[) sul nododi
uscita pervisualizzare
automaticamenteal termine di una simulazione la tensione di uscita. In
alternativa, per non perdere
le
impostazionidi
vistalizzazione tra una simulazione el'altra, e'
possibile impostareI'opzione "Last Plof'
nel campo"Slrow"
della tab"Probe
Window"delle impostazioni della simulazione.
Parte 2: Analisi statica
1)
Determinare, mediante simulazione, la caratteristicadi tasferimento
Vou,/Vindell'invertitore. A tale scopo dal menu PSpice
selezionareNew Sitnulation ProJile, e dare un nome alla
simulazione.A
questo puntosi
apre lafinesta
per la configurazione della simulazione, chein
questo caso va impostata con"Analysis type"
a"DC
Sweep", selezionando poi come variabiledi
scansione *Voltage Source", impostando
il
nomedel
generatoredi
ingressoe
impostandogli
estremiin modo da coprire tutte le
tensioni dell'alimentazione (impostareun
incrementodi
lmV
o inferiore in modo da ottenere una caratteristica ben risolta con la tensionedi
ingresso).A
questo punto d possibile far partire la simulazione (PSpice-)
Run, oppureFl l).
Riportare la curva caratteristica quotando
i
prurti pirisignificativi.
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
osservaresono visibili 5 regioni distinte della
caratteristicaVin-Vout
ciascuna associabileal
differente regimedi
funzionamento dei transistori. Indicatesul grafico le regioni di
funzionamento dei due transistori nei vari tratti della caratteristica e confrontati
i valori
di passaggio da una regioneall'altra
con quelli attesi dalla teoria.Determinare
dalla
simulazionela
sogliadi
commutazionedell'inverter e
confrontarlacon
quella teorica:vrHdasimuratorc=
6 93
,5 nnV
Calcolo teorico della soglia
di
commutazione\our=V',,rs VD"/
VrHt*ri.a= ab rc hN'
2)
Determinarei margini di
rumoredell'invertitore.
Per visualizzarela
derivata della tensionedi
uscrta,
utile
per calcolare a quale tensionedi
ingresso la pendenza della caratteristica diventa -1, si aggiunga una traccia conil
comando Trace->
Addtrace
del postprocessore grafico Probe e sidigiti "D(V(Tout))",
doveD0
e I'operatoredi
derivatae
Voutil
nome corrispondenteal
nodo di uscita.3)
Tracaiare loassorbimentodi
corrente dall'alimentazioneVe,l
al variare della tensionedi
ingressoVin. A questo scopo si
eseguanorura delle due
seguentioperazioni: a) posizionare
sullo schematicoun marker di corrente su uno dei due terminali del
generatoreVe"r; b)
dal progftrrnma Probe aggiungere unahaccia (Add
Trace)e
selezionarela
corrente circolantein
V,cA tra quelle
disponibili. In
enftarnbii
casi d consigliabile rimuovere letacce di
tensione non utiliz.z.ate, oin
alternativa aggiungere un grafico alla finestra, in modo da avere scale ragionevoli sia per la tensione che per la corrente (Plot->
AddPlot to
Window)vos.io:
,f rl53V
VrL.o : 6l6rrV
VoL
.o = 6
{,J*Y NM(0)= o tS 19V
Vnr.io=?3trmp' NM(l): OtTaSV
Come potete ossery.ue
i
marginidi
rumoredi
un invertitore CMOS sono elevatissimi, permettendo di tollerare dei rumori e dei disturbi pari a circa un terzo della tensione di alimentazione.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 massimaforniti
dal simulatore.N 6gtvrrr/ Srtw.O. i
^c\d1 "rwar'rr{a^q }tvrt ;
C'ar^o*G-n, b4V P
\^ = Ln(V5t.,r-\ T= r [V.,'-rf nxu \ )"' s Vna-
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
considerandoI'effefio
dello sp6stamento del puntodi pinch-off. A
questo scopomodificate i modelli di
entrarnbii
transistori impostandoLAMBDA:O.
I .Parte 3: Analisi del transitorio di commutazione
Si assuma di collegare all'invertitore in esame un secondo invertitore con le
medesimecaratteristiche, modellizzandolo con una capacita
di valore
Ct=2'Co*WL = 6.48ff
collegatatra il
nodo di uscita e massa.
Per
I'analisi
controllarei
parametri diVin:
fare doppioclic
sul suo simbolo e visualizzarei
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 0e
1.5V, con un ritardoiniziale TD
(delay time)di
10ps, tempodi
Qualitativamente sono cambiate le caratteristiche
Vin-Vout
e Vin-I,q"{?Quantitativamente di quanto sono cambiati la soglia
di
commutazine (V1g) e la corrente massimaIea,-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
cambianoi tempi di
commutazionee la
potenza dissipata considerandol'effefio
dello spostamento del punto dipinch-off.
'salita
(rise
time) e tempodi
discesa(all time) di l00fs, duata
alivello V2 di
PW=49.9ps (pulse width), e periodo PER=100ps.Per eseguire
la
simulazione, creare un nuovoprofilo
(PSpice->
New SimulationProtile),
contipo di analisi "Time Domain (Transient)",
impostando"Run to Time" a
500ps(intervallo
temporalesimulato) e il "Muimum step size" a 100fs
(passotemporale massimo rtilizzato durante la
simulazione).A
questo punto, mettete un marker sul nododi
uscita per visualiz.z.zrme la tensione e fate partirela
simulazione.4) Dal risultato della
simulazione determinarei tempi di
commutazione associatialle
hansizionidegli
ingressi0)l e 1)0.
Persempliciti si
consideriil
tempo richiestoal
nododi
uscita per raggiungere Y 61./2=0.7 5Y .5) Modificare
le dimensioni del transistore nMOS per rendere ugualii
due tempi commutazione everificare tramite
il
simulatore la correttezz.a della soluzione proposta6) A lezione
avetevisto due
approssimazioni,una per
eccesso(il MOS d sostituito da
una resistenza equivalenteR"q=Vu/Ioo1)
e una perdifetto (il MOS
consideratoin
zona satura per tuttala
commutazione), per stimarei tempi di
propagazionedi
una porta logica. Confrontarei
risultati forniti
dal simulatore con le due stime.Stima per eccesso:
to+r:tr+o:
\- 2rt9 f S
Enore percentuale rispetto alsimulatot"=26'/u
b+r: 5t S
tr)o= 2 f t
Giustificare perch6
i
due tempi noncoincidono.
L\o51,-ov-^*
cx l.c^w.,**\nt" L,L y''r-t "A- tb rm'- !nr\, 0-ad\t^R\^S,@
tt t** qa -rin4\c*
..,r\
l*t= "& h- A^,o"> .d' t* un^ l^^fta ,".{\,[kN
Modifica proposta: fuorlot*, w1"{" L K
danoolc; o, pryol cyfwi, n^lL b."ftr*,
t(7 g"^""""n- t ilft * bqf {^ i{, lfr(..
uNuovi
tempi di propagazione:to+r: If '
tr)o: 9Y
EStima per difetto:
b+r==tr+o=
tlp+t,
fl s
Errore percentuale rispetto alsimulatore
W ?r!%
Parte 4: Analisi della notenza dissinata
7)
Determiniamo tramiteil
simulatorelapotenza
media dissipata dalcircuito.
Per visualizzarcla potenza istantanea erogata dall'alimentazione, dopo aver effettuato la simulazione
nel progranuna Probecliccare su
Trace-> Add
Trace...quindi
inserire VCX)*ICX)in cui X
Cil
nom€
del
generatore di tensione dell'alimentazione (es.I(Vs)*V(Vne
)) e cliccare su OK.E' possibile visualizzare
direttamentela
potenzamedia dissipata cliccando su Trace -)
Evaluate Measuremsnl
s
vfiliz.zandoil
comandoTPnW2(XY)
che trovatenella sottofinesta
Functionsor Macros In
questo comandoX d I'integrale della
potenza istantanea, calcolabile conil
comando S(.) eY
eil
periodo della tensioneapplicat4 l00p
nel nostro caso.Il
comando completo si presenta quindi come:TP mW 2 (S (I (Vaa) *V (Vaa) ), 1 0 0p)
A
questo puntoil
valore della potenza dissipata d visualizzatofinesta di
dialogo, espressoin
mW.Eseguire
la
simulazionein differenti condizioni e
confrontarei risultati ottenuti con i valori
attesi dalla relazione della potenza dinamica. Per non perdere le impostazionidi
visualizzazionefa una
simulazionee I'alt4 e' consigliabile
selezionareI'opzione "Last Plof'nel
campo"Show"
dellatab "Probe
Window" delle impostazioni della simulazione.cahn2
Condizione Potenza dissipata - simulatore Potenza dissioata - teorica
Valori
dati in orecedenza nel testo o'l\S
{mW O;4(
5J n"WRaddoppio della tensione di
alimentazione (Va,a:3V
e generatoredi
ingresso conVl=0
e
V2:3V)
or58141 uw
OI 5{3Jr'u,Vtt
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)
o )2216 uvr O,lz,
GnW
Transistori piir conduttivi: portare la larghez,za di entrambi
i
transistori a
W=
18umo
I 29 46 n'.\rr/ O;29 / d r..V,l
Transistori molto
meno conduttivi: portarelalaryhena di entrambi i transistori a W-
0.18um
otfil 69mr,v 0;?94 ( nut
Tra quali
valori
commutail
nodo di uscita nel casodi
W=0.18 pm ? Pq'v*+ec 96,2oft."y-h?4/0 rh{ ,$
rV.;ffhrnla
Provate a riprendere
I'analisi
della potenza dinasrica fattaa
lezione adattandolaa
questo casoin
cuiI'uscita
non commuta a piena dinamica.Gk** *pb L vsE=#rr++ fr= * fy^il= Q.(Vrq^4dil'V"
b.
Ih[!€=\i,= Af*r '
Nuova espressione della potenza dinamica:
Po =4C.(v"*^Y-n,) lt*
Valore teorico della potenza
dinamica:
OlQqS ,mW
Valorafomito
dal simulatore della potenzadinamica:
Ol@S V/
Come vedete
la
semplice espressione della potenza dinamica permettedi
calcolarecon
estrema precisione la potenza dissipata in tutte le condizioni!Come potete osservare
in tutti i
casi hannel'ultimo il valore fomito dal
simulatore coincide con I'espressione della potenza dinamica. Per capire perch6nell'ultimo
caso apparentemente la potenza dissipata non d valutata correttamente visualizzate I'andamento della tensione in uscitadell'inverter.
8)
Ripristinareil
rapportodi 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
questomodo si riduce
notevolmentela
pendenzadel
segnalein
ingresso,che ora
ben approssima un' onda friangolare.Simulare
la
potenzamedia
dissipatadal circuito,
avendo curadi
impostarei parameti
della simulazione per simulare qualche periodo, e confrontareil
risultato conil
valore atteso dal solo contributo dovuto alla potenza dinamica.Potenza media dissipata simulata Potenza dissipata dinamicamente (teorica)
Per capire perch6
i
duevalori
non coincidono, d utile eseguire una nuova simulazioneminimizzando lapotenza, dissipata per la commutazione della capacita'
Cr,
(impostandola a un valore molto piccolo, per esempiole-l8
F) e visualizzando I'andamento della corrente assorbita dall'alimentazione.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
conhibutodi
potenza' dissipata presentein
questo caso, chiamatodi cross-conduzione,
dquindi
dovuto all'accensione,ori^poronea
dei due transistori che causaun
passaggiodiretto di
corrente dall'alimentazione verso**ru. Il contributo d
tantopiir significativo
quantopiir i fronti di
salitae di
discesa del segnale in ingresso sono lenti perchd tengono accesi entrarnbii
transistori per un tempo maggiore.In-condizioni
operativenormali in cui il
segnalein
ingresso provieneda una porta logica di
caratteristiche analoghela
potenza dissipata per cross-conduzione d trascurabile rispetto a quella dinamica.Approfondimento per i pin volenterosi. Verifichiamo I'ultima affermazione fatta al
puntopieceiente
effettuandouna
simulazionedella
poterwa dissipatain
funzionedella
pendenza della iensionein
ingresso.A
tal motivo, sempre con capacita' Cr trascurabile, inseriamo nello schematico un pararnetroglobut" in
modo da effettuare una simulazione parametrica al variare della pendenzadelL
tension"di
ittgtrsso. Inserirein
r:n qualsiasi puntodello
schematicoil
componentePARAM
presente
nella libreria special.olb fare doppio clic
sudi
essoin
modo daaprire la
finesfra edit 'properties.Cliccare su
New
Row e aggiungere un nuovo parametro decidendoil
nome (es. slope) eittririt" in value il valore di default, 100f. Cliccare con il
tastodesto sulla riga con il
nuovoparametro
e
andare suDisplry ->
Displayformat
value and namein
modo da visualizzare sullo schematicoil
nuovo parametro eil
suo valore.A
questo punto occorre modifrcareil
generatoredi
segnale di ingresso come segue:V I
:0V;
V2= 1.5V;TD:
1 0p,TR:
{ slope} ;TF:
{slope} ;PW:{
500p-slope} ; PER: In
In
questomodo
impostiamo come parametriTR e TF il valore
presentein
slope.Ora
occorremodificare le proprieta della simulazione attivando I'opzione parametric sweep
presente su transient,ecliciari
su global parameter, aggiungereil
nome del parametro da far variare durante la simulazione slope e aggiungereinvalue
/isri valori
che esso deve assumere nelle varie simulazioni;nel nostro caso inseriamo
lp
3p 10p 30p 100p 300p.Awiare
la simulazione.Per visualizzare
la
potenza dissipatain funzione della
penderua deifronti di
commutazione su Tracee poi
superformance
analysise cliccare OK; in
questomodo si
apreun grafico in
cuinell'asse
delle
ascissed utilizzato il paramefo
slope.A
questo puntod
possibile visualizzare legrandezze
elettriche in funzione di
questoparameto, in particolare
andiamoa visnliz.zare la
potenzamedia
dissipatacliccando su
Trace->Add trace e
inserendo comevisto in
precedenza I'espressione:rPmW2(S(YOI(.)),1n)
Tracciare
il
grafico risultante, utilizzando una scalalogaritnica
per I'assex in
modo da evidenziare bene I'andamento della potenza dissipata sututti i valori
del tempodi
salita. Per impostare la scalalogarieric4
selezionarel'opzione
corrispondente in Plot ->Axis
Settings.Dall'analisi
svolta al punto 3 sappiamo cheil
tempo di propagazione della porta logica d circa 5ps, ciod che latansizione
della tensione in uscita (da 0 a Vaa o viceversa)awiene
in circa l0ps.Per una slope
di l0ps
quanto valela
potenzadissipata per cross-conduzione?Quanto vale percentualmente rispetto alla potenza dissipata dinamicamente?
Come potete osservare quando una