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.