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.