CAPITOLO 4 INVERTITORE CMOS Come è noto, nei circuiti CMOS vengono utilizzati sia dispositivi a canale N sia dispositivi a canale P. I modelli SPICE dei transitori MOS sono stati introdotti nel Capitolo 2. La principale differenza fra i due tipi di dispositivi è dovuta alla ridotta mobilità delle lacune rispetto agli elettroni, che determina una corrispondente riduzione del fattore K P del PMOS rispetto al MOS a canale N. Nel nostro caso, ricordando i dati riportati nel Paragrafo 2.3, risulta: K P,NMOS / K P,PMOS = 135 / 54 = 2.5 (4.1) Assumeremo inoltre che le tensioni di soglia dei dispositivi a canale P siano esattamente uguali, in modulo, a quelle dei MOS a canale N: VTO PMOS =-0.8V; VTO NMOS = 0.8V Per semplicità, supporremo infine che gli altri parametri che compaiono nelle schede.model siano perfettamente uguali per gli NMOS e per i PMOS. 4.1 Schema circuitale e layout dell invertitore CMOS La Figura 4.1 riporta lo schema elettrico di un invertitore CMOS. Per ottenere una caratteristica di trasferimento simmetrica rispetto a V DD /2 e per eguagliare i tempi di propagazione tp HL e tp LH è necessario che risulti: K MN1 =K MP1 =K (4.2) Per soddisfare la condizione (4.2), ricordando che K=(1/2)K P (W/L) e l equazione (4.1), bisogna imporre la seguente relazione: (W/L) P = 2.5 (W/L) N (4.3)
2 Capitolo 4 Fig. 4.1 Schema circuitale di un invertitore in tecnologia CMOS Nei circuiti CMOS le lunghezze di canale dei dispositivi sono sempre scelte pari alla dimensione minima 2λ, in modo da ridurre la capacità di ingresso massimizzando al tempo stesso il fattore K dei dispositivi. Risulta pertanto: L P =L N =2λ. L equazione (3.3) fornisce quindi una relazione che lega le larghezze di canale dei due dispositivi: W P = 2.5 W N. Il progetto dell invertitore può essere completato imponendo una condizione aggiuntiva. Ad esempio, volendo minimizzare l area del circuito, sceglieremo: W N =3λ. Si ottengono in questo modo i parametri riportati in Tabella 4.1, che si riferiscono ad una tecnologia con λ=0.5µm. Si noti che dovrebbe essere: W P =2.5W N = 7.5λ; dovendo essere tutte le dimensioni multipli interi di λ si è posto: W P =7λ. L W NMOS 1.0µm 1.5µm PMOS 1.0µm 3.5µm Tab. 4.1 Lunghezza e larghezza di canale dei dispositivi dell invertitore CMOS
Invertitore CMOS 3 Fig. 4.2 Lay-out di un invertitore CMOS. AD PD NMOS 9.75µm² 13µm PMOS 12.25µm² 14µm Tab. 4.2 Aree e perimetri delle regioni di drain A partire dai dati riportati in Tabella 4.1 si ottiene il layout mostrato in Figura 4.2. Si noti che sia il terminale di ingresso che quello di uscita sono collegati su linee di metallo, in modo da consentire eventualmente un semplice collegamento in cascata di più invertitori. Dalla fig. 4.2 otteniamo le aree ed i perimetri delle regioni di drain dei due dispositivi, necessarie per realizzare le simulazioni SPICE. I dati sono riportati in Tabella 4.2.
4 Capitolo 4 4.2 Analisi statica Per l analisi statica dell'invertitore CMOS è sufficiente applicare un generatore di ingresso V IN al circuito di Figura 4.1. Assumeremo una tensione di alimentazione pari a V DD =5V. La caratteristica di trasferimento dell invertitore è riportata in Figura 4.3. Come ben noto dal corso di teoria, i valori di V OH e V OL sono pari a 5 V e 0V rispettivamente. Per ricavare i valori di V IH e V IL è utile considerare il grafico della derivata della caratteristica di trasferimento, anch esso riportato in Figura 4.3, in modo da individuare facilmente i valori della tensione di ingresso per cui la caratteristica di trasferimento assume una pendenza pari a -1. Dai risultati riportati in Fig. 4.4 si osserva immediatamente che la caratteristica di trasferimento è simmetrica rispetto al valore V DD /2. Ciò è dovuto sia al progetto dell'invertitore, realizzato in modo da eguagliare i fattori K dei due dispositivi, sia dal fatto che le tensioni di soglia dei due dispositivi che sono uguali in valore assoluto ( V TN = V TP = V T = 0.8). Per una valutazione analitica delle grandezze che forniscono i parametri statici della porta, come riportato in dettaglio in [1], capitolo 5, riportiamo le equazioni approssimate per la determinazione di V IH e V IL e quindi dei margini di rumore: 1 5VDD VIH = VT (4.4) 4 2 Fig. 4.3 Caratteristica di trasferimento dell invertitore CMOS VOH VOL VIH VIL NMH NML
Invertitore CMOS 5 Simulazioni SPICE 5 V 0 V Valori teorici 5 V 0 V 2.9 2.1 2.1 2.1 Tab. 4.3 Margini di rumore dell invertitore CMOS V IL NM 1 3VDD = + VT 4 2 L 3VDD V = NM H = + 8 4 T (4.5) (4.6) La tabella 4.3, da completare a cura del lettore, prevede il confronto fra i dati ricavati mediante il simulatore e quelli ottenuti con le relazioni analitiche. La Figura 4.4 riporta la corrente assorbita dall'invertitore CMOS al variare della tensione di ingresso. La figura evidenzia che, come ben noto dal corso di teoria, la corrente si annulla sia per v I =V OH che per v I =V OL, e pertanto se ne conclude che la potenza statica dissipata dall'invertitore CMOS è trascurabile. La corrente assorbita ha un valore massimo, I MAX, per v I =V DD /2. Il valore di I MAX può essere facilmente calcolato, osservando che per v I =V DD /2 entrambi i dispositivi sono in regione di pinch-off; risulta pertanto: I MAX = K ( V DD / 2 - V T )². Nel circuito di Figura 4.1 si ha: K=(1/2) K P,NMS (W/L) NMOS = (1/2) K P,PMS (W/L) PMOS. Sostituendo i valori numerici risulta: K = (1/2) 135 (3/2) = 101 µa/v²; si ricava pertanto: I MAX = 101 (2.5-0.8)² = 292µA, in accordo con la Fig. 4.4. Fig. 4.4 Corrente assorbita dall'invertitore CMOS al variare della tensione di ingresso.
6 Capitolo 4 4.3 Analisi dinamica Ritardo di propagazione. Per valutare i tempi di propagazione dell'invertitore è necessario considerare la presenza di un opportuno carico capacitivo connesso al nodo di uscita. Per semplicità, supponiamo che il carico dell'invertitore CMOS sia costituito da un altro invertitore identico (fan-out pari ad 1), ed ipotizzeremo inoltre la presenza di una capacità di interconnessione pari a 15fF. Si ottiene in questo modo il circuito riportato in Fig. 4.5. Utilizzando un segnale di ingresso con tempi di salita e di discesa di 100ps, si ottengono i risultati riportati in Figura 4.6. Il grafico evidenzia la forte simmetria della risposta dinamica dell'invertitore CMOS: i ritardi di propagazione t PHL e t PLH valgono rispettivamente 76 e 83 ps. Confrontando i risultati di Figura 4.6 con quelli ottenuti nel precedente capitolo, osserviamo che il tempo di propagazione della porta CMOS è inferiore rispetto a quella dell'invertitore NMOS a parità di tecnologia e di fan-out. C =15fF L Fig. 4.5 Simulazione in transitorio dell invertitore CMOS.
Invertitore CMOS 7 Fig. 4.6 Ritardo di propagazione dell invertitore CMOS. Per una valutazione analitica dei ritardi, riferendoci al paragrafo 5.5 di [1], si ha: t PHL CV T DD CV T DD = tplh t (4.7) 2KV 2 2 2 P ( V ) KV ( V ) DD T In cui C T rappresenta la capacità di carico complessiva, data dalla somma delle capacità di gate di MP2 e di MN2, delle capacità drain-body di MP1 ed MN1 e della capacità di interconnessione: C T (W N +W P ) L C ox + (AD MP1 +AD MN1 )C J + (PD MP1 +PD MN1 )C JSW + C L (4.8) DD T Si lascia al lettore il compito di completare la tabella 4.3 in cui si confrontano i risultati ottenuti con il simulatore e le relazioni analitiche. tphl tplh tp Simulazioni SPICE 76ps 83ps 79.5ps Valori teorici Tab. 4.3 Margini di rumore dell invertitore CMOS
8 Capitolo 4 Dissipazione di Potenza. La dissipazione di potenza in una porta CMOS è di tipo dinamico, e può essere considerata come la somma di due componenti, vedi [1] paragrafo 5.6. La prima componente (indicata con P' D ) è dovuta al valore finito dei tempi di salita e di discesa del segnale di ingresso: durante le commutazioni dell'invertitore ci saranno degli intervalli di tempo in cui sia l'nmos che il PMOS risultano contemporaneamente in conduzione e si manifesta un passaggio di corrente fra l'alimentazione e la massa attraverso la serie dei due dispositivi. La seconda componente di potenza dissipata (indicata con P" D ) è dovuta alla corrente erogata dall'alimentazione per caricare la capacità all'uscita dell'invertitore. Analiticamente, le due componenti della potenza dissipata dinamica sono espresse dalle seguenti relazioni approssimate: ' D P 4 3 f I t = MAX r V2 P " = f C V D T 2 DD DD VT (4.9) (4.10) In cui t r è il tempo di salita e di discesa del segnale di ingresso, f è la frequenza di commutazione e C T la capacità complessiva di carico. Per valutare con SPICE la potenza globale dissipata dall'invertitore CMOS e per stimare singolarmente i due contributi P' D e P" D, poniamo come carico dell'invertitore una capacità di 50fF,ed utilizziamo in ingresso un generatore che fornisca un impulso di durata pari a 3ns, con tempi di salita e di discesa di 1.5ns, in modo da enfatizzare il termine P' D : VIN in 0 pwl (0,0 1n,0 2.5n,5, 5n,5 6.5n,0) I risultati riportati in Figura 4.7 mostrano l'andamento delle tensioni di ingresso e di uscita, della corrente nei due MOS e dell'energia dissipata durante la commutazione, ottenuta come integrale della potenza istantanea: s(-i(vdd)*v(vdd)).
Invertitore CMOS 9 Fig. 4.8 Transitorio di commutazione, corrente negli MOS ed energia dissipata per un invertitore CMOS con un carico capacitivo di 50fF. Durante la commutazione alto-basso dell'uscita, la capacità si scarica attraverso l'nmos e la corrente erogata dall'alimentazione è dovuta soltanto alla conduzione simultanea dei due MOS. L'energia dissipata in questa fase è pari a circa 0.21pJ. Durante la commutazione basso-alto dell'uscita la corrente erogata dall'alimentazione è molto maggiore ed include sia il contributo necessario alla carica della capacità di uscita, sia l'aliquota legata alla conduzione simultanea dei due MOS. L'energia dissipata in questa fase è pari a circa 1.92pJ. Lasciamo al lettore il compito di controllare la corrispondenza di questi dati numerici con le relazioni semplificate (4.9) e (4.10) (si rammenti che le equazioni (4.9) - (4.10) si riferiscono alla potenza dissipata, non all energia; si noti inoltre che la capacità di carico totale dell invertitore include, oltre alla capacità di 50fF, anche le capacità drain-substrato dei due dispositivi).
10 Capitolo 4 Fig. 4.9 Potenza dissipata in un invertitore CMOS con una capacità di carico di 200fF ed una frequenza di 100MHz. La figura 4.9 riporta una simulazione SPICE dell invertitore CMOS con una capacità di carico di 200fF ed un segnale di ingresso di frequenza 100MHz. Si noti che la potenza istantanea raggiunge valori di picco di poco inferiori a 2mW. La potenza media, ottenuta da PROBE visualizzando il valor medio della potenza di picco, è pari a circa 0.55mW in accordo con la (4.10). Si lascia al lettore la valutazione con SPICE della dipendenza delle due aliquote di potenza dissipata P' D e P" D al variare della capacità di carico, dei tempi di salita e di discesa del segnale di ingresso e della tensione di alimentazione.
Invertitore CMOS 11 4.3 Ulteriori analisi Dopo aver analizzato le caratteristiche salienti dell'invertitore CMOS, effettuiamo alcune ulteriori analisi che ci permettono di effettuare una stima del tempo di propagazione utilizzando un oscillatore ad anello, e di studiare il problema del disaccoppiamento da un carico capacitivo ( buffer di uscita). Oscillatore ad anello. Per la valutazione sperimentale delle prestazioni dinamiche di una famiglia logica, visti i ridotti valori dei tempi di propagazione oggigiorno raggiunti, non si opera misurando il tempo di propagazione della singola porta, bensì si analizza il comportamento dinamico di un circuito costituito da N invertitori connessi in cascata (N dispari 3). L'uscita dell'ultimo invertitore della catena viene collegata all'ingresso del primo invertitore, in modo da realizzare un oscillatore ad anello. Come è noto da [1], Paragrafo 1.4, il periodo di oscillazione del circuito è pari a T = 2 N t P ed è pertanto proporzionale al tempo di propagazione degli invertitori. Per verificare con SPICE le caratteristiche di un oscillatore ad anello, consideriamo un circuito composto da 5 invertitori CMOS in cascata con l ingresso del primo coincidente con l uscita dell ultimo. Per garantire l'innesco delle oscillazioni, imponiamo la condizione iniziale che la tensione di ingresso del primo stadio sia pari a 0 V al tempo t=0; ciò corrisponde in SPICE ad inserire la scheda.ic V(10)=0. Effettuando una simulazione in transitorio di durata pari a 10 ns si ottiene il risultato riportato nella Figura 4.10. Dal periodo di oscillazione T possiamo facilmente risalire al ritardo di propagazione degli invertitori. Lasciamo al lettore il compito di ripetere la simulazione variando la tensione di alimentazione, in modo da analizzare la dipendenza del tempo di propagazione da V DD.
12 Capitolo 4 Fig. 4.9 Simulazione in transitorio di un oscillatore ad anello realizzato con 5 invertitori CMOS. Si riporta di seguito il listato SPICE utilizzato per la simulazione, in cui si è utilizzato un sottocircuito per il singolo invertitore che viene in seguito richiamato 5 volte per completare il circuito. Ring Oscillator.subckt inverter in out alim MP1 out in alim alim pfet W=3.5u L=1.0u + AD=12.25p PD=14u Mn1 out in 0 0 nfet W=1.5u L=1.0u + AD=9.75p PD=13u CL out 0 15fF.ends x1 1 2 10 inverter x2 2 3 10 inverter x3 3 4 10 inverter x4 4 5 10 inverter x5 5 1 10 inverter VDD 10 0 5V.TRAN 15ps 15ns.IC V(1)=0.lib..\..\lib\e2.lib.PROBE.END Stadi di disaccoppiamento.
Invertitore CMOS 13 Gli stadi di disaccoppiamento o di buffer vengono introdotti quando è necessario pilotare un carico capacitivo molto più grande di quello offerto da una singola porta logica. E' questo il caso, ad esempio, dei terminali di uscita di un circuito integrato, che devono pilotare carichi esterni interconnessi mediante un circuito stampato, con capacità equivalenti dell'ordine di decine di picofarad. La Figura 4.12 mostra un'analisi in transitorio in cui un invertitore CMOS ad area minima di figura 4.1, I 0, pilota una capacità di carico C L di 5pF. I valori di t PHL e t PLH sono 6.9ns e 7.6ns, rispettivamente, che determinano un tempo di propagazione (t P ) pari a circa 7.25ns. Se confrontiamo questo valore con il tempo di propagazione dello stesso invertitore nel caso di fan-out unitario, vedi Figura 4.6, si osserva un peggioramento di circa due ordini di grandezza, corrispondente all aumento della capacità di carico. Per ovviare all'aumento del tempo di propagazione si interpone fra l'invertitore I 0 e la capacità di carico C L uno stadio di disaccoppiamento o di buffer. Il buffer è costituito da N-1 invertitori in cascata; il circuito complessivo include pertanto N invertitori. I dispositivi dell'i-esimo invertitore hanno un (W/L) G volte maggiore rispetto a quelli dell'invertitore i-1-esimo. Detta C T la capacità di ingresso del primo invertitore I 0, si dimostra (vedi [1], paragrafo 5.10) che il ritardo del buffer è minimo se il numero di stadi è pari ad: N = ln(c L /C T ), con un fattore G = e 2.7 Fig. 4.10 Ritardo di un invertitore CMOS ad area minima caricato da una capacità di 5pF.
14 Capitolo 4 Fig. 4.11 Analisi in transitorio di uno stadio buffer: segnale di ingresso al primo dell invertitore del buffer e segnale di uscita. G=2.71; N=6 1 2 3 4 5 6 W N 3λ 8λ 22λ 60λ 162λ 483λ W P 7λ 20λ 55λ 149λ 404λ 1096λ Tab. 4.4 Progetto del buffer con N=6 invertitori Nel nostro caso, considerando il solo contributo della capacità di gate, risulta C L =12fF; pertanto il buffer a ritardo minimo contiene un numero di invertitori pari ad N=log(5000/12)=6. La figura 4.11 riporta i risultati di una simulazione SPICE del buffer. I tempi di propagazione sono: t PHL =t PLH =600ps: valori di molto inferiore rispetto alla simulazione di Fig. 4.10. La Tabella 4.5 riporta le dimensioni dei dispositivi che compongono il circuito. Si noti che tutti i valori sono arrotondati a multipli interi di λ. La scelta del fattore G ottimale consente di minimizzare il tempo di propagazione del circuito ma comporta una notevole occupazione di area. Si possono ottenere tempi di propagazione solo di poco superiori a quelli ottimali utilizzando un fattore G maggiore rispetto a 2.7. In questo modo è possibile ridurre il numero di stadi del buffer con una drastica riduzione dell occupazione di area.
Invertitore CMOS 15 Fig. 4.12 Analisi in transitorio di uno stadio buffer: segnale di ingresso al primo dell invertitore del buffer e segnale di uscita. G=7.47; N=3 La Figura 4.12 riporta i risultati di una simulazione SPICE di uno stadio buffer costituito da N=3 invertitori. In questo caso il fattore G è stato scelto pari a: G = (C L /C T ) 1/N = 7.47. Il tempo medio di propagazione desumibile dalla figura 4.14 è pari a circa 670ps, ed è pertanto superiore di circa il 10% rispetto al buffer ottimo di Figura 4.11. Si lascia come esercizio al lettore il compito di confrontare l occupazione di area dei due buffer con N=6 ed N=3.
16 Capitolo 4 Qualora non espressamente indicato, utilizzare per i dispositivi i parametri e le schede.model forniti nel Capitolo 2. Assumere una tensione di alimentazione di 5V e λ=0.5µm. Elaborati proposti 1. Si consideri la rete di pull-down rappresentata nella seguente figura: A C B Y D W=2*W0 a) Si disegni la corrispondente rete di pull-up e si determini la funzione logica realizzata della porta CMOS complessa ottenuta utilizzando le due reti. b) La dimensione W dell NMOS pilotato dal segnale D è stata fissata pari a 2*W0. Si dimensionino tutti gli altri dispositivi in modo che la porta CMOS complessa presenti t PLH =t PHL nel caso peggiore. c) Verificare mediante SPICE la correttezza del dimensionamento dei dispositivi. d) La porta in questione pilota una capacità di carico C L di 50fF ed un invertitore con W N =W0 e W P =2.5*W0. Facendo variare W0 tra 3λ e 40λ, si determini mediante SPICE il tempo di propagazione della porta CMOS complessa nel caso peggiore e si riportino i valori ottenuti in un grafico. Commentare il risultato. 2. Assumere per i punti a) e b) seguenti una tensione di alimentazione di 3.3V. a) Progettare una porta NAND a 4 ingressi. La porta deve essere realizzata con dispositivi NMOS aventi dimensioni: (W/L) N =3λ/2λ, mentre le dimensioni di tutti i PMOS sono: (W/L) P =8λ/2λ.
Invertitore CMOS 17 Realizzare il layout del circuito, determinando l area totale occupata dalla porta. Per realizzare il layout con Micro è necessario: - creare un file di testo vuoto (ad esempio: prova.txt) - utilizzare il comando: compile -> compile verilog file, in cui selezionare il nome del file (prova.txt). Cliccare quindi su size e definire le dimensioni dei dispositivi. Cliccare quindi su compile - utilizzare, infine, il comando: compile -> compile one line in cui si può dare l espressione del circuito da sintetizzare; nel nostro caso: Y=/(a.b.c.d). Valutare mediante analisi teoriche il tempo di propagazione, assumendo una capacità di carico di valore: 50, 100, 200, 400fF. Riportare in un grafico l andamento di tp=f(c L ). Effettuare delle simulazioni SPICE per verificare la correttezza dei calcoli teorici. b) La stessa funzione logica può essere realizzata sfruttando le leggi di De Morgan, utilizzando due NAND a 2 ingressi, una NOR a 2 ingressi ed un invertitore, adeguatamente connessi. Progettare il nuovo circuito e realizzarne il layout. Determinare l area totale occupata (intesa come rettangolo minimo che inscrive il lay out) e confrontarla con quella relativa al punto (a). Effettuare delle simulazioni in transitorio, assumendo una capacità di carico di valore: 50, 100, 200, 400fF. Introdurre nel listato SPICE tre capacità di interconnessione all uscita delle due porte NAND e della porta NOR, di valore 20fF. Riportare in un grafico l andamento di tp=f(c L ) e confrontarlo con quello ottenuto al punto (a). 3. Due invertitori CMOS identici sono collegati fra loro mediante una interconnessione avente una capacità parassita di 50fF. La tensione di alimentazione è pari a 3.3V. Per le dimensioni dei dispositivi che compongono gli invertitori considerare i tre casi seguenti: i) La larghezza di canale dei dispositivi a canale N è pari a: W N =3λ ii) W N =6λ iii) W N =9λ. In tutti e tre i casi gli invertitori sono progettati in modo tale da avere una caratteristica di trasferimento simmetrica. a) Utilizzando le formule teoriche approssimate, valutare il tempo di propagazione e la potenza dissipata del primo invertitore nei tre casi. Per il calcolo della P D si assuma una frequenza di 100MHz.
18 Capitolo 4 b) Simulare con SPICE il circuito costituito dalla cascata dei due invertitori e dalla capacità dell'interconnessione. Valutare i tempi di propagazione e la potenza dissipata, confrontando i risultati con quelli ottenuti al punto a). c) Modificare le schede.model dei dispositivi, sia a canale N che a canale P, assegnando la tensione di soglia come un parametro (per i dettagli si veda l'esercizio numero 3 del capitolo 3 delle presenti esercitazioni). Effettuare una simulazione parametrica in transitorio del circuito variando la tensione di soglia del 20%, e valutare i valori minimi e massimi dei tempi di propagazione. 4. Con riferimento agli invertitori tristate in logica CMOS presentati in figura. Vdd Vdd Vdd En En En In Out In Out In Out En En En (1) (2) (3) a) Si disegnino i layout dei tre invertitori con Micro. Le dimensioni di tutti i MOS a canale N sono W=3u ed L=1u mentre le dimensioni di tutti i MOS a canale P sono W=7u ed L=1u. b) Si determini l area occupata da ognuno dei circuiti (1) (2) e (3). L area occupata è intesa come il rettangolo minimo che inscrive il lay out. c) Si calcoli sia mediante formule analitiche approssimate sia mediante simulazioni Spice il tempo di propagazione delle tre configurazioni, supponendo che il carico in uscita sia di 25fF ed assumendo una tensione di alimentazione di 3.3V d) Si verifichi mediante simulazioni Spice il corretto comportamento da invertitore tristate. Quale tra le strutture considerate ha un comportamento non perfettamente ideale? Per quale motivo? Suggerimento: Si valuti il comportamento dei circuiti sottoposti alla seguente sequenza di ingresso.
Invertitore CMOS 19 En En In 5. Si consideri una tecnologia CMOS in cui la tensione di soglia dei dispositivi PMOS sia -1.2V, mentre tutti gli altri parametri hanno i valori "standard" forniti nel Capitolo 2. a) Si dimostri che è possibile dimensionare opportunamente i dispositivi di un invertitore, in modo da avere una tensione di soglia logica pari a V DD /2. b) Si valutino analiticamente i tempi di propagazione t PLH e t PHL. Quale dei due è maggiore? Perché? c) Si confrontino i valori analitici e quelli ottenuti dalle simulazioni SPICE, verificando che la soglia logica si pone correttamente a V DD /2. A tal fine, assumere W N =3λ ed ipotizzare la presenza di una capacità di carico di 50fF. d) Si esegua una simulazione parametrica sulla tensione di soglia dei PMOS facendoli variare del 20%. In questo caso determinare i valori massimi e minimi dei tempi di propagazione e della soglia logica. Per un esempio si faccia riferimento all'esercizio 3 del capitolo 3. 6. Si consideri un invertitore CMOS ad area minima, il cui fan-out sia costituito da altri quattro invertitori identici. a) Utilizzare le formule teoriche approssimate per valutare l'influenza dello scaling delle dimensioni dei dispositivi sui tempi di propagazione e sulla potenza dissipata. Si utilizzi l'ipotesi di "scalamento completo" ([1], par. 5.12), assumendo per il fattore di scala x i valori 1, 1.25 ed 1.66. Come punto di partenza assumere V DD =5V ed i parametri dei dispositivi forniti nel Capitolo 2 e relativi ad una tecnologia con λ=0.5µm. Calcolare la potenza dissipata alla frequenza f=1/(20tp), dove tp è il ritardo di propagazione. b) Utilizzando l'ipotesi di "scalamento completo", modificare le schede.model fornite nel Capitolo 2 e relative ad una tecnologia con λ=0.5µm, assumendo, per semplicità, che i soli parametri da modificare nelle schede
20 Capitolo 4.MODEL siano: KP, VTO e TOX mentre tutti gli altri parametri restano invariati. Costruire in questo modo due nuove schede.model valide per tecnologie con λ=0.4µm e λ=0.3µm. Utilizzare delle simulazioni SPICE per valutare l'influenza dello scaling delle dimensioni dei dispositivi sui tempi di propagazione e sulla potenza dissipata, sempre nell'ipotesi di "scalamento completo". Confrontare i risultati delle simulazioni con quelli del punto (a). 7. Si debba progettare in logica CMOS il circuito che realizza la seguente funzione: y = A B C + A B D a) Progettare una prima versione circuito, costituita da una porta CMOS complessa U1 e da un invertitore U2. Si dimensionino i dispositivi in modo che, nel caso peggiore, sia la porta logica U1 che l invertitore U2 abbiano tempi di propagazione equivalenti a quelli di un invertitore "di riferimento" con (W/L) N =3/2 ed (W/L) P =6/2. Per il disegno del layout del circuito, si utilizzi il comando compile one line di MICROWIND (vedi elaborato n.2 per dettagli), che genera automaticamente un layout in cui le dimensioni di tutti gli NMOS e di tutti i PMOS sono uguali fra loro. Sul layout si individuino gli ingressi A, B, C, D, l uscita y e le prese di substrato. Dopo aver correttamente individuato i segnali di ingresso/uscita, si modifichi, eventualmente, il layout in modo che i dispositivi abbiano le dimensioni calcolate in precedenza. Si verifichi il corretto funzionamento del circuito e se ne valutino i tempi di propagazione, assumendo una capacità di carico di 50fF. Si valuti, infine, l area occupata dal circuito. b) Progettare una seconda versione circuito, partendo da un disegno schematico con DSCH che utilizza porte AND ed OR. Completato il disegno schematico, ottenerne una descrizione VERILOG con il comando: file -> make verilog file di DSCH, prendendo nota del nome del file. Da MICROWIND, è ora possibile ottenere automaticamente il layout del circuito, con il comando: compile -> compile verilog file, in cui è inoltre possibile assegnare le dimensioni dei dispositivi (si assuma (W/L) N =6/2 ed (W/L) P =12/2) Si verifichi il corretto funzionamento del circuito, valutandone i tempi di propagazione con una capacità di carico di 50fF. Si valuti, infine, l area occupata dal circuito.
Invertitore CMOS 21 c) Progettare una terza versione circuito, partendo da un disegno schematico con DSCH che utilizza sole porte NAND. Completato il disegno schematico, si ottenga una descrizione VERILOG e quindi il layout con MICROWIND (si assuma (W/L) N =6/2 ed (W/L) P =12/2) Si verifichi il corretto funzionamento del circuito, valutandone i tempi di propagazione con una capacità di carico di 50fF. Si valuti, infine, l area occupata dal circuito. 8. Progettare una porta NOR ed una porta NAND a 4 ingressi in modo da soddisfare le seguenti specifiche: i) t PLH,NOR = t PHL,NOR per la condizione worst-case. ii) t PLH,NAND = t PHL,NAND per la condizione worst-case. iii) t P,NOR = t P,NAND = t P iv) t P = 300ps per una capacità di carico C=250fF Verificare mediante simulazioni SPICE l'accuratezza del progetto. Disegnare con MICRO il layout delle due porte NOR e NAND, valutare le aree totali occupate e confrontarle fra loro. 9. a) Valutare mediante analisi teoriche i tempi di propagazione t PLH, t PHL nelle condizioni worst case sia di una porta NOR sia una porta NAND a 4 ingressi. Entrambe le porte sono realizzate con dispositivi NMOS aventi dimensioni: (W/L) N =3λ/2λ, mentre le dimensioni di tutti i PMOS sono: (W/L) P =8λ/2λ. La capacità di carico è pari alla capacità di gate di quattro invertitori CMOS i cui dispositivi hanno dimensioni: (W/L) N =3λ/2λ, (W/L) P =8λ/2λ. b) Disegnare (mediante MICRO) i layout delle porte NAND e NOR. Per realizzare il layout con Micro utilizzare il comando compile one line seguendo le indicazioni fornite nell elaborato n. 2. Realizzare simulazioni SPICE in transitorio, con la capacità di carico calcolata al punto (a), e confrontare i risultati numerici con quelli forniti dai calcoli approssimati. 10. Si consideri un invertitore CMOS in cui risulti W N =W P =3λ. Determinare analiticamente, mediante formule approssimate: a) la soglia logica dell'invertitore b) i tempi di propagazione t PHL, t PLH e t P assumendo come carico un fan-out costituto da quattro analoghi invertitore CMOS con W N =W P =3λ. Si assuma, inoltre, una tensione di alimentazione di 3.3V.
22 Capitolo 4 Disegnare il layout del circuito composto dalla cascata del primo invertitore e degli altri quattro di carico. Valutare la soglia logica ed i tempi di propagazione del circuito mediante simulazioni SPICE e confrontare i risultati delle simulazioni con quelli analitici. c) Supponiamo che le tensioni di soglia ed i KP dei dispositivi, sia a canale N sia a canale P varino del 10%. Effettuare una simulazione parametrica del circuito al variare dei parametri VTO e KP, valutare i valori minimi e massimi dei margini di rumore. Per un esempio si faccia riferimento all'esercizio 3 del capitolo 3. 11. Si realizzi un circuito combinatorio che implementi la seguente funzione logica: Y = A + B. C + D utilizzando una porta domino. Ck Y A B C N C1 C2 Ck L invertitore presente nella porta domino ha (W/L) N =3/2 ed (W/L) P =6/2. In ingresso ed all uscita dell invertitore sono presenti due capacità da 100fF indicate come C1 e C2. a) Dimensionare gli NMOS della rete di pull-down in modo che il Tphl del blocco che pilota l invertitore sia pari a 240ps. Nel dimensionamento del circuito si imponga che la dimensione dell NMOS pilotato dal segnale di fase sia uguale alla dimensione dell NMOS pilotato dal segnale di ingresso C. b) Dimensionare il PMOS di precarica in modo che la durata della fase di precarica della capacità C1 sia inferiore a 240ps.
Invertitore CMOS 23 c) Verificare con SPICE il corretto funzionamento della porta domino. Spiegare eventuali discrepanze tra la simulazione ed i calcoli analitici. 12. Realizzare il layout di un full adder, utilizzando il sintetizzatore di Micro. (a) Progettare dapprima la cella che calcola il riporto uscente, utilizzando il comando compile one line di micro per realizzare la funzione: Cout = AB + AC + BC Per il dimensionamento dei dispositivi, assumere: (W/L) N =4λ/2λ, (W/L) P =10λ/2λ. Per i dettagli relativi all utilizzo del comando compile one line si seguano le indicazioni fornite nell elaborato n. 2. Sul layout si individuino gli ingressi A, B, C, l uscita e le prese di substrato. Dopo aver correttamente individuato i segnali di ingresso/uscita, completare i collegamenti utilizzando lo spazio sul lato superiore della cella (utilizzare sempre metal 1 per collegamenti orizzontali e metal2 per i tratti verticali, introducendo, ove necessario, delle vie di collegamento fra metal1 e metal2). Simulare il circuito, verificandone il corretto funzionamento. (b) Aggiungere alla cella che calcola il riporto due porte logiche xor, dedicate alla valutazione della somma. Utilizzando sempre il comando compile one line di micro, assumere: (W/L) N =4λ/2λ, (W/L) P =10λ/2λ. Dopo aver correttamente individuato i segnali di ingresso/uscita delle due porte xor, completare i collegamenti utilizzando lo spazio sul lato superiore della cella (utilizzare sempre metal 1 per collegamenti orizzontali e metal2 per i tratti verticali, introducendo, ove necessario, delle vie di collegamento fra metal1 e metal2). Simulare l intero full-adder, verificandone il corretto funzionamento e valutandone i tempi di propagazione e la potenza dissipata. Si assuma una tensione di alimentazione di 3.3V e la presenza di due capacità di carico sulle uscite di somma e di riporto pari a 25fF. 13. (a) Realizzare il layout di un half-adder, utilizzando il sintetizzatore di Micro. Il circuito, composto da due invertitori, una nand a due ingressi ed una porta or-and-invert, è riportato nella figura seguente: A B C C S
24 Capitolo 4 Realizzare la NAND, l invertitore e la porta AND-OR utilizzando il comando compile one line assumendo, per il dimensionamento dei dispositivi, (W/L) N =4λ/2λ, (W/L) P =10λ/2λ. Per i dettagli relativi all utilizzo del comando compile one line si seguano le indicazioni fornite nell elaborato n. 2. Dopo aver correttamente individuato i segnali di ingresso/uscita, delle porte, completare i collegamenti utilizzando lo spazio sul lato superiore della cella (utilizzare sempre metal 1 per collegamenti orizzontali e metal2 per i tratti verticali, introducendo, ove necessario, delle vie di collegamento fra metal1 e metal2). Simulare il circuito, verificandone il corretto funzionamento. (b) Realizzare un full-adder, utilizzando due copie della cella progettata al punto (a) ed una porta or. A tal fine, dopo l attivazione di microwind, utilizzare due volte il comando file -> inser layout per inserire due copie della cella realizzata in precedenza; la porta or può essere sintetizzata con il comando compile one line Allineare le tre celle, in modo che possano condividere le linee di alimentazione e di massa e completare i collegamenti utilizzando lo spazio sul lato superiore del layout (utilizzare sempre metal 1 per collegamenti orizzontali e metal2 per i tratti verticali, introducendo, ove necessario, delle vie di collegamento fra metal1 e metal2). Simulare l intero full-adder, verificandone il corretto funzionamento e valutandone tempi di propagazione e potenza dissipata. Si assuma una tensione di alimentazione di 3.3V e la presenza di due capacità di carico sulle uscite di somma e di riporto pari a 25fF. 14. (a) Valutare le prestazione del flip-flop D statico incluso nella libreria di Dsch e Microwind. A tal fine, realizzare un disegno schematico con DSCH che include come unica porta un flip-flop D. Completato il disegno schematico, ottenerne una descrizione VERILOG con il comando: file -> make verilog file di DSCH, prendendo nota del nome del file. Da MICROWIND, è ora possibile ottenere automaticamente il layout del circuito, con il comando: compile -> compile verilog file, in cui è inoltre possibile assegnare le dimensioni dei dispositivi (si assuma (W/L) N =6/2 ed (W/L) P =12/2).
Invertitore CMOS 25 Estrarre la netlist SPICE del circuito e disegnare lo schema elettrico del flip-flop. Si noti la presenza del segnale di reset, che consente di inizializzare a zero il flip-flop. Si verifichi il corretto funzionamento del flip-flop, valutandone i tempi di propagazione (dal clock all uscita Q), assumendo una capacità di carico di 20fF. Si valuti, infine, l area occupata dal circuito. (b) Realizzare il flip-flop D dinamico mostrato in figura, in cui si utilizzano semplici porte di trasmissione costituite da un singolo transistore MOS. D P1 P2 Q ck ck Per ottenere rapidamente il layout del circuito, realizzarne un disegno schematico con DSCH e procedere come delineato nel punto (a). Verificare il corretto funzionamento del flip-flop, valutandone i tempi di propagazione (dal clock all uscita Q), assumendo una capacità di carico di 20fF. Osservare le forme d onda nei nodi P1 e P2. Si valuti, infine, l area occupata dal circuito e la si confronti con il flip-.flop statico del punto (a). (c) Utilizzando il flip-flop dinamico progettato in precedenza, realizzare un flip-flop T (divisore di frequenza) mostrato in figura: ck D ck Q T Anche in questo caso, per ottenere rapidamente il layout del circuito, si consiglia di partire da un disegno schematico con DSCH e procedere come delineato nel punto (a). Verificare il corretto funzionamento del flip-flop, valutandone la massima frequenza operativa per una capacità di carico di 20fF; prendere nota, inoltre, della potenza dissipata dal circuito. Ripetere la simulazione per una tensione di alimentazione di 3.3V. 15. (a) Utilizzando Dsch, realizzare un disegno schematico di un multiplexer 4 1 utilizzando porte OR, AND ed invertitori. Completato il disegno schematico, ottenerne una descrizione VERILOG con il comando:
26 Capitolo 4 file -> make verilog file di DSCH, prendendo nota del nome del file. Da MICROWIND, è ora possibile ottenere automaticamente il layout del circuito, con il comando: compile -> compile verilog file, in cui è inoltre possibile assegnare le dimensioni dei dispositivi (si assuma (W/L) N =6/2 ed (W/L) P =12/2). Simulare il circuito con microwind, verificandone il corretto funzionamento e valutando i tempi di propagazione. Si assuma una capacità di carico di 20fF. (b) Ripetere il punto (a), utilizzando una schematizzazione del multiplexer che faccia uso di sole porte NAND ed invertitori. Confrontare occupazione di area e tempi di propagazione con quelli ottenuti al punto (a), a parità di capacità di carico. (c) Realizzare il multiplexer utilizzando una struttura a porte di trasmissione. Anche in questo caso, è opportuno partire da un disegno schematico del circuito con Dsch in cui, oltre a due invertitori per gli ingressi di selezione, verranno inseriti direttamente transistori MOS a canale N ed a canale P. Confrontare occupazione di area e tempi di propagazione con quelli ottenuti ai punti (a) e (b), a parità di capacità di carico.