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 KP del PMOS rispetto al MOS a canale N. Nel nostro caso, ricordando i dati riportati nel Paragrafo 2.3, risulta: KP,NMOS / KP,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: VTOPMOS =-0.8V; VTONMOS = 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 VDD/2 e per eguagliare i tempi di propagazione tpHL e tpLH è necessario che risulti: KMN1=KMP1=K (4.2) Per soddisfare la condizione (4.2), ricordando che K=(1/2)KP(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: LP=LN=2λ. L’equazione (3.3) fornisce quindi una relazione che lega le larghezze di canale dei due dispositivi: WP = 2.5 WN. Il progetto dell’invertitore può essere completato imponendo una condizione aggiuntiva. Ad esempio, volendo minimizzare l’area del circuito, sceglieremo: WN=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: WP=2.5WN = 7.5λ; dovendo essere tutte le dimensioni multipli interi di λ si è posto: WP=7λ. NMOS PMOS L 1.0µm 1.0µm W 1.5µ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. NMOS PMOS AD 9.75µm² 12.25µm² PD 13µ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 VIN al circuito di Figura 4.1. Assumeremo una tensione di alimentazione pari a VDD=5V. La caratteristica di trasferimento dell’invertitore è riportata in Figura 4.3. Come ben noto dal corso di teoria, i valori di VOH e VOL sono pari a 5 V e 0V rispettivamente. Per ricavare i valori di VIH e VIL è 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 VDD/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 (|VTN| = |VTP| = |VT| = 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 VIH e VIL e quindi dei margini di rumore: VIH = 1 5VDD − VT 4 2 (4.4) Fig. 4.3 Caratteristica di trasferimento dell’invertitore CMOS VOH VOL VIH VIL NMH NML Invertitore CMOS 5 __________________________________________________________________ Simulazioni SPICE Valori teorici 5V 5V 0V 0V 2.9 2.1 2.1 2.1 Tab. 4.3 Margini di rumore dell’invertitore CMOS 1 3VDD + VT 4 2 3V V NM L = NM H = DD + T 8 4 VIL = (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 vI=VOH che per vI=VOL, e pertanto se ne conclude che la potenza statica dissipata dall'invertitore CMOS è trascurabile. La corrente assorbita ha un valore massimo, IMAX, per vI=VDD/2. Il valore di IMAX può essere facilmente calcolato, osservando che per vI=VDD/2 entrambi i dispositivi sono in regione di pinch-off; risulta pertanto: IMAX = K ( VDD / 2 - VT )². Nel circuito di Figura 4.1 si ha: K=(1/2) KP,NMS(W/L)NMOS = (1/2) KP,PMS (W/L)PMOS. Sostituendo i valori numerici risulta: K = (1/2) × 135 × (3/2) = 101 µA/V²; si ricava pertanto: IMAX= 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 tPHL e tPLH 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. CL =15fF 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 = t PLH ≅ CT V DD 2 K (V DD − VT ) 2 ⇒ tP ≅ CT V DD 2 K (VDD − VT ) 2 (4.7) In cui CT 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: CT ≅ (WN+WP) L Cox + (ADMP1+ADMN1)CJ + (PDMP1+PDMN1)CJSW + CL (4.8) 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. Simulazioni SPICE Valori teorici tPHL 76ps tPLH 83ps Tab. 4.3 Margini di rumore dell’invertitore CMOS tP 79.5ps 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: PD' = 4 V f I MAX t r DD − VT 2 3 2 PD" = f ⋅ CT ⋅ VDD (4.9) (4.10) In cui tr è il tempo di salita e di discesa del segnale di ingresso, f è la frequenza di commutazione e CT 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×tP 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 VDD. 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 x2 x3 x4 x5 1 2 3 4 5 2 3 4 5 1 10 10 10 10 10 inverter inverter inverter inverter 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, I0, pilota una capacità di carico CL di 5pF. I valori di tPHL e tPLH sono 6.9ns e 7.6ns, rispettivamente, che determinano un tempo di propagazione (tP) 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 I0 e la capacità di carico CL 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 CT la capacità di ingresso del primo invertitore I0, si dimostra (vedi [1], paragrafo 5.10) che il ritardo del buffer è minimo se il numero di stadi è pari ad: N = ln(CL/CT), 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 WN WP 1 3λ 7λ 2 8λ 20λ 3 22λ 55λ 4 60λ 149λ 5 162λ 404λ 6 483λ 1096λ Tab. 4.4 Progetto del buffer con N=6 invertitori Nel nostro caso, considerando il solo contributo della capacità di gate, risulta CL=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: tPHL=tPLH=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 = (CL/CT)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: Y A B C 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 tPLH=tPHL nel caso peggiore. c) Verificare mediante SPICE la correttezza del dimensionamento dei dispositivi. d) La porta in questione pilota una capacità di carico CL di 50fF ed un invertitore con WN=W0 e WP=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(CL). 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(CL) 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: WN=3λ ii) WN=6λ iii) WN=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 PD 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 VDD/2. b) Si valutino analiticamente i tempi di propagazione tPLH e tPHL. 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 VDD/2. A tal fine, assumere WN=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 VDD=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=ABC+ABD 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) tPLH,NOR = tPHL,NOR per la condizione worst-case. ii) tPLH,NAND = tPHL,NAND per la condizione worst-case. iii) tP,NOR = tP,NAND = tP iv) tP = 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 tPLH, tPHL 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 WN=WP=3λ. Determinare analiticamente, mediante formule approssimate: a) la soglia logica dell'invertitore b) i tempi di propagazione tPHL, tPLH e tP assumendo come carico un fan-out costituto da quattro analoghi invertitore CMOS con WN=WP=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 N B C 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. P1 D Q P2 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: D ck 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.