L’elettronica è una disciplina che fonde una particolare tecnologia con una metodologia
utile ad elaborare delle informazioni: in particolare, il nome di questa scienza deriva
dall’uso di grandezze legate all’elettromagnetismo.
Il principio che sta alla base dell’elettronica è quello della valvola, dispositivo che
funge da “rubinetto”, perché ha la proprietà di permettere o di bloccare l’afflusso di
una certa grandezza (nel nostro caso: della corrente elettrica).
Una valvola può avere due modalità di funzionamento:
- analogica, se ad ogni posizione parziale della valvola corrisponde un’uscita
parziale. Posso quindi avere un numero infinito e continuo di valori in uscita,
con una conseguentemente elevata mole di informazioni;
- digitale, se esistono solo lo stato di (totalmente) aperto e (totalmente) chiuso. Le
informazioni che posso ricavare sono quindi molte di meno rispetto al caso
analogico.
Combinando insieme questi due tipi di valvole si possono creare due tipi di circuiti:
- circuito analogico: semplice, con pochi componenti di qualità molto elevata,
molto sensibile ai disturbi (rumori), molto costoso;
- circuito digitale: complesso, con moltissimi componenti di qualità più modesta e
di maggiore semplicità, più veloce e meno costoso.
Il grafico y( x ) = I SW (VSW ) per uno switch come questo (che è ideale), è molto semplice
da visualizzare: se la tensione di gate è inferiore a quella di soglia, allora il grafico
coinciderà con l’asse della tensione (cioè con l’asse x), visto che la corrente è zero e
quindi la y = 0 . Se invece il MOSFET è “acceso”, e si è quindi verificato che VG > VT ,
allora il grafico coinciderà con l’asse y (se non vi è resistenza, la legge di Ohm prevede
Ora siamo in grado di capire come sia possibile implementare moltissime funzioni solo
tramite switch. Prendiamo ad esempio l’apparato nella figura seguente.
Come si può facilmente verificare, con gli interruttori è facile anche realizzare un
NOR, come in questa seconda figura
Questa volta è necessario che entrambi i circuiti siano spenti per
interrompere il collegamento con massa e permettere alla
tensione d’uscita di essere alta.
Esaminiamo ora un altro problema dei nostri circuitini: in essi possiamo tralasciare gli
effetti induttivi, ma non quelli capacitivi, perché la VOUT potrebbe (ad esempio) essere
la VIN di un altro switch, o comunque potrebbe essere collegata ad altri componenti
che, in prima approssimazione, sono come dei condensatori se visti dal nostro piccolo
circuitino.
Come si è già detto, il dimensionamento delle resistenze è importante perché con una
cattiva progettazione possono nascere problemi di lentezza (resistenza di pull-up
troppo grande) o di potenza (resistenza di pull-up troppo piccola). Un modo brillante di
risolvere questo problema è quello di inventare un MOSFET complementare a quello
studiato fin’ora e che dunque verifichi ciò che è illustrato questa tabellina.
2 Nominalmente dovrebbe consumare potenza statica nulla (non dovrebbe mai esistere un percorso
conduttivo da VDD a massa). In realtà ciò non avviene: sia per via del leakage, che qui ha la forma di
corrente di sotto-soglia ed è la causa di uno spegnimento non ideale degli switch, sia per via del fatto che
la commutazione dell’N-MOS e quella del P-MOS non avvengono in modo istantaneo e, dunque, esiste
un lasso di tempo in cui sono entrambi accesi ed è presente un pericoloso percorso conduttivo. Vedremo
inoltre nei prossimi capitoli che la corrente di sotto-soglia si genera a causa della tensione drain-source,
che è pari a VDD nel caso di uscita alta e se ci riferiamo al transistor N-MOS inferiore, e a causa della
tensione drain-bulk.
II – FUNZIONAMENTO DELL’INVERTITORE, CONSIDERAZIONI SULLA POTENZA
Soglia logica VT
Grazie tuttavia alle relazioni che abbiamo scritto poco sopra, possiamo dire che
VOUT 2 = f2 (VIN 2 ) VIN1 = f2 (VOUT 1 )
Abbiamo quindi ottenuto una funzione inversa a VOUT 1 = f1 (VIN 1 ) . Si ha infatti che
f1 = f2−1
Andando a graficare queste due funzioni, otterremmo due curve simmetriche rispetto
alla bisettrice:
Come si nota, queste due curve si intersecano in tre punti: uno di questi (precisamente
quello centrale, in cui VIN = VOUT ) è a noi indifferente perché il valore in questione
non rappresenta né un 1, né uno 0. In quel punto, anzi, il circuito è molto instabile
perché la curva di f ha una elevata pendenza ed è sufficiente quindi un piccolo rumore
per allontanare dinamicamente l’equilibrio da quel punto lì (un piccolo spostamento
nelle x genera un grande spostamento nelle y). Rimangono quindi solo due punti
notevoli, perché tutti gli altri punti – che appartengono ad una sola delle due curve -
non rappresentano tensioni comuni e quindi non ci interessano. I due punti
“sopravvissuti”, tuttavia, sono molto buoni:
- alle coordinate cui si trovano, f ha una pendenza piccola in modulo e, dunque, i
rumori difficilmente intaccheranno la bontà del valore;
- le situazioni di 1 e di 0 sono molto nette;
- proprio perché sono punti comuni, abbiamo soddisfatto le equazioni:
VOL = f (VOH ) ⇒ VOH = f −1 (VOL )
VOH = uscita alta
VOH = f (VOL ) ⇒ VOL = f −1
(VOH ) VOL = uscita bassa
e dunque f = f −1
L’intersezione fra le due curve e la bisettrice del relativo quadrante diventa quindi la
soglia logica dell’invertitore (VLT ) , da non confondere con la tensione di soglia del
transistor. Si definisce invece swing logico la quantità Vswing = VOH − VOL .
Ora dobbiamo in qualche modo definire quale sia il “limite” fino al quale consideriamo
il dato d’uscita come un 1 e quello che invece ci delimita in maniera chiara uno 0; per
convenzione si scelgono come “spartiacque” i due punti in cui la curva assume
pendenza pari a –1 (cioè di meno 45°).
Tra i due punti a pendenza –1, il “più in alto” è quello minimo per il quale si ha un 1
( VOH min ); l’altro è quello massimo per il quale si ha uno 0 ( VOL max ). Questi due punti
(sono punti d’uscita, quindi stanno sull’asse y) non sono in comune fra la f e la f −1 ,
quindi non possono essere fra loro scambiati come si può fare con la VOL e la VOH : per
questo è necessario cambiare simbologia per denotare i corrispettivi punti sull’asse x
(quello degli ingressi).
- Alla VOH min corrisponderà, sull’asse x, una VIL max , cioè la massima tensione
che assume l’ingresso considerato come uno 0;
- Alla VOL max corrisponderà, sull’asse x, una VIH min ; cioè la massima tensione
che assume l’ingresso considerato come un 1.
Ora abbiamo tutte le informazioni per delimitare i due punti (a tangente ad angolo -
45°) sul piano cartesiano:
P1 (VOH min ,VIL max )
P2 (VOL max ,VIH min )
Facciamo ora un’osservazione sul grafico: risulta facile accorgersi che abbiamo molta
più “tolleranza” (ovvero molto più margine di errore possibile) sugli ingressi che sulle
uscite. Prendiamo infatti le zone “sicure”, ovvero quelle a pendenza minore in modulo
a –1: dal grafico si vede che diventano quasi dei plateaux, molto lunghi e poco
pendenti, più ci inoltriamo nella zona in cui siamo certi del nostro 1 (o del nostro 0).
Questa loro “lunghezza” si traduce nella copertura di un gran numero di valori “buoni”
sull’asse x (cioè quello degli ingressi!), mentre la “bassa pendenza” include meno valori
“buoni” sull’asse y (che è quello delle uscite).
Comunque sia, a volte i disturbi si fanno talmente intensi che le tensioni “escono”
dalla zona sicura. Siamo allora spacciati? Dipende: vediamo perché.
Abbiamo poco fa definito il punto di soglia logica, ovvero l’intersezione fra il punto
centrale comune alle due curve e la bisettrice del relativo quadrante. A tale punto di
soglia, vista la sua locazione sulla bisettrice y = x, corrisponde un’egual valore di
tensione d’entrata x e di tensione d’uscita y. Questo punto è importante perché
delimita un altro confine fondamentale; come si è detto, può infatti capitare che il
rumore sia talmente consistente da farci evadere dalle zone di certa interpretazione, e
proprio la nostra soglia logica ci “salva” nel 50% dei casi1:
- caso favorevole siamo a sinistra della soglia logica, quindi verso i valori alti:
grazie alla maggiore tolleranza sugli ingressi, il circuito, in un numero finito di
transizioni, allontana il punto dalla zona proibita facendolo tornare verso quella
di sicura interpretazione. Alla fine avremo un segnale certo e pari ad 1 (error
recovery);
- caso sfavorevole ci troviamo a destra della soglia logica, verso i valori bassi:
non c’è speranza di rigenerazione della nostra informazione e la nostra uscita è
confusa.
Questa proprietà di recuperare gli errori nelle interconnessioni a cascata è chiamata
capacità rigenerativa del circuito.
Si noti che, se avessimo avuto un invertitore descritto dalla funzione f −1 prima
definita, avremmo ottenuto un risultato opposto: i nostri valori, vista l’alta pendenza
La potenza statica è la potenza che la logica dissipa per il solo fatto di mantenere
l’informazione. Prendiamo il nostro invertitore con un carico sulla rete di pull-up e uno
switch sulla rete di pull-down:
- a switch aperto si ha che non c’è corrente nel ramo verso massa e che la potenza
dissipata è nominalmente nulla;
- a switch chiuso vi è un percorso conduttivo verso massa: la pila (a VDD ) dissipa
quindi dell’energia per mantenere lo stato. Tale energia dissipata è pari a
VDD 2
Pstatica = VDD I st =
Rpull −up + Rpull −down
La potenza dinamica si deve al concetto stesso di commutazione e, quindi, di
elaborazione di informazioni. Il passaggio fra valori di 0 1 e 1 0 costa infatti
dell’energia sotto forma del lavoro necessario a far commutare i valori, cioè a
caricare/scaricare il condensatore (che simula la presenza di altri componenti)
collegato a VOUT .
Il transitorio opposto (di scarica) è governato da dinamiche simili, con l’ipotesi che
nella rete di pull-up sia presente uno switch, altrimenti verso massa andrebbero a
finire sia la carica depositata sul condensatore (in OUT) che scarichiamo, sia l’apporto
della pila che sta a VDD . Fatta questa ipotesi, considerando cioè nullo l’apporto della
pila nel transitorio 1 0, non dobbiamo metterci “del nostro” per provocare la scarica:
come abbiamo detto poco fa, la carica sul condensatore (abbiamo speso energia nel
transitorio di carica per depositarla lì) fluirà naturalmente verso massa attraverso il
relativo percorso conduttivo senza l’apporto di altra energia.
Quindi la relazione
logica
ben
costruita
E = VDDC (VOH − VOL ) ≈ VDDCVDD = VD2DC
(in una logica “fatta bene”, cioè provvista di switch e tenente conto di tutte le
considerazioni fatte fin’ora, la differenza [uscita alta – uscita bassa], che prende il
nome di swing logico, è molto vicina a VDD )
è valida per un ciclo completo (nel nostro es. basso alto basso).
Fra tutti, VDD sembrerebbe il parametro sul quale una modifica al ribasso potrebbe
incidere nella maniera più positiva: una sua diminuzione sarebbe infatti quadratica (il
termine è elevato a una potenza di 2). Tuttavia, tale diminuzione è molto problematica
a causa dei rumori (abbassare VDD significherebbe abbassare il divario 0 / 1 e quindi
rendere la logica più sensibile ai disturbi) e a causa dell’interfacciamento con l’esterno:
una logica con una VDD inferiore all’attuale standard renderebbe inoltre tale logica
incompatibile con gli altri componenti già esistenti sul mercato, con la conseguenza
che non la comprerebbe nessuno.
Agire su C è, alla fin fine, la soluzione più saggia. C dipende fondamentalmente da due
parametri:
A
C =ε
d
Sull’ ε non ci si può fare più di tanto, mentre su A e d sì: risulta una scelta piuttosto
oculata quella di far si che una nuova tecnologia più efficiente diminuisca l’area A per
minimizzare la C. La soluzione apparentemente più ovvia sarebbe quella di aumentare
2 Si noti che si parla di potenza, non di energia, perché abbiamo moltiplicato per una frequenza (e, di
conseguenza, è come se avessimo diviso per il tempo energia / tempo = potenza)
3
Considerazione sui transistor (vedi capitoli successivi): siccome la potenza dinamica dei circuiti CMOS
dipende dal quadrato della tensione VDD con cui i circuiti sono alimentati, la riduzione di tale tensione
può migliorare molto il consumo di potenza. In particolare, se supponiamo di far lavorare il circuito ad
una massima frequenza di lavoro, il prodotto fra la potenza dinamica Pdim e il ritardo di propagazione
tp può essere espresso come: t p Pdin = t pCLVDD
2
fP0→1 = CLVDD
2
P0→1 (prodotto ritardo-consumo). Siccome, di
norma, è possibile ridurre i ritardi a scapito di un aumento del consumo di potenza e dell’occupazione di
area nel silicio, tale prodotto ritardo-consumo è fortemente caratterizzante ed è importante figura di
merito. È evidente che, riducendo VDD , tale parametro migliora sensibilmente: tuttavia, l’altra faccia
della medaglia è che, con la riduzione di VDD , aumentano i ritardi ( VDD compare al denominatore nella
formula del ritardo). Si potrebbe pensare di compensare quest’aumento con una diminuzione della
soglia logica (che si sottrae a VDD , al denominatore). Tuttavia ciò è molto difficile da realizzare nella
pratica.
anche d, ma questo è infattibile perché vogliamo dei circuiti che siano il più possibile
piccoli (rimpicciolimento = “scaling”4); conviene dunque che A venga diminuita più di
quanto viene diminuita d, affinché il “bilancio finale” veda una complessiva
diminuzione della C e quindi della E.
L’energia dissipata altro non è che l’area che è delimitata sotto la linea viola e
all’interno della regione rossa. Essa è calcolabile mediante un integrale:
tf
E = ∫ I SCVDD dt
ti
(ISC è la corrente che attraversa il percorso verso massa)
Il modo migliore per minimizzare questa energia è, in maniera evidente, aumentare la
pendenza della rampa in figura e, quindi, minimizzare i tempi di commutazione.
4
Lo scaling è una questione alla quale è stato dedicato tantissimo spazio nella letteratura tecnico-
scientifica: la microelettronica degli ultimi trent’anni è infatti andata sempre più in direzione di un
rimpicciolimento dei componenti (MOSFET in particolare). Un primo scenario di scaling proposto nella
metà degli anni settanta prevedeva di ridurre la VDD dello stesso fattore di cui venivano contratte le
geometrie. Questa strategia era guidata dall’idea che, riducendo contestualmente dimensioni
geometriche e tensioni, le prestazioni e l’affidabilità dei transistori potessero rimanere invariate.
Questa strategia non è però mai stata applicata: il valore di VDD è rimasto costante e pari a 5 V.
III – IL TRANSISTOR (prima parte)
∆V EFFETTO
Siamo nella regione di accumulazione: il semiconduttore è di tipo p e già
contiene delle cariche positive; la differenza di potenziale, a questi
< VFB livelli, ve ne fa confluire, per induzione, moltissime altre. Di
conseguenza, nel metallo si accumulano, in maniera speculare e per
induzione elettrostatica, molte cariche negative (elettroni).
Siamo nella zona di svuotamento delle lacune: il campo elettrico
presente nell’ossido cambia infatti direzione e inizia a spingere piano
piano le cariche positive (lacune) presenti sul semiconduttore verso la
parte sottostante (bulk, o substrato). Ciò significa che, in realtà, stiamo
attirando degli elettroni nel cosiddetto canale, la parte del silicio p
> VFB , < VT
immediatamente sottostante all’ossido (e compresa fra drain e source)
che è il luogo in cui scorre poi la corrente I DS . Un’osservazione: mentre
in un condensatore piano la caduta di potenziale è tutta localizzata
all’interno delle due piastre, nel nostro MOS vi è caduta di potenziale
anche all’interno del semiconduttore.
Nel canale mi trovo tanti elettroni quante lacune ho spinto nel
substrato: a questo punto il transistore è acceso perché gli elettroni del
canale possono creare la I DS . Siamo giunti alla tensione di soglia del
nostro condensatore MOS e, da questo punto in avanti, esso si
comporterà come un condensatore a facce piane e parallele. La carica
nel canale dipende dunque in maniera lineare da ∆V − VT , cioè che
> VT
(
QINV = COX VGS − VT ) 1 e che:
ε
C = ACOX = A OX
TOX
dove A è l’area del nostro MOSFET, COX la capacità specifica
dell’ossido e TOX lo spessore dell’ossido di silicio. Una buona
progettazione vedrebbe come obiettivo quello di massimizzare COX per
avere, con poca extratensione, più carica.
1 Tale espressione individua la carica presente sotto a un centimetro quadrato di area di condensatore.
Esaminiamo ora più in dettaglio come è fatto
il nostro transistor. Come si nota dalla figura,
la corrente va dal drain al source, in base alla
convenzione per la quale utilizziamo, come
verso della corrente, la direzione opposta a
quella degli elettroni. Passa corrente nel
transistor quando:
VGateSource > VT
Inoltre, il transistore è acceso e pronto a
condurre quando si ha:
VDrainSource ≥ 0
Tagliamo ora il nostro transistor nella sua
parte centrale con un piano (in questo caso
perpendicolare al piano del foglio) sezionando
quindi il gate e lo strato di silicio: chiamiamo
la larghezza di questo strato W. La corrente
che passa quando sono soddisfatte le condizioni scritte poco sopra è quindi:
I DS = QINV ⋅ v ⋅ W
• I DS è la corrente che fluisce da drain a source;
• QINV è la quantità di carica che sta sotto a un 1 cm2 del nostro condensatore;
• v è la velocità degli elettroni;
• W è la larghezza di cui parlavamo poco fa.
Gli elettroni procedono per moto viscoso dentro al silicio, con una velocità che è
direttamente proporzionale al campo elettrico formatosi a causa della differenza di
tensione drain-source. Possiamo infatti scrivere:
V
vx ∝ Ex dove Ex = − DS
L
(per definizione di campo elettrico; qui L è la distanza drain-source)
Sperimentalmente, si trova che: vn = − µn Ex
• l’n al pedice del termini v e µ sta ad indicare che a muoversi sono gli elettroni:
se consideriamo le lacune dobbiamo scrivere v p e cambiare il segno
dell’equazione;
• il segno meno sta ad indicare che la velocità degli elettroni è direzionalmente
opposta a quella del campo elettrico (come da convenzione). In questo caso
consideriamo la componente x del campo elettrico, quella cioè parallela alla
congiungente drain-source;
• µn (mobilità elettronica) è il parametro sperimentale della formula; è dell’ordine
cm2
dei 200-800 .
s⋅V
µnVDS
Sostituendo, si ha: vn = .
L
Ora mettiamo insieme le seguenti relazioni:
(
• QINV = COX VGS − VT )
(per la carica che si deposita nelle “piastre” del MOS)
• I DS = QINV ⋅ v ⋅ W (per la corrente drain-source)
µ V
• vn = − n DS (per la velocità degli elettroni)
L
Otteniamo: ( µ V
)
I DS = COX VGS − VT ⋅ n DS ⋅ W .
L
I parametri di questa relazione possono essere raggruppati in tre categorie:
• parametri tecnologici: dipendono dalla bontà della tecnologia utilizzata;
• parametri di tensione: perché sono tensioni;
• parametri di design (distanza): che dipendono, appunto, dalla forma del
MOSFET.
Riscrivendo la relazione di cui sopra in maniera più ordinata otteniamo:
I DS =
W
L
(
COX µnVDS VGS − VT )
Per rendere più agile la nostra relazione si pone:
• conducibilità intrinseca: β ' = µnCOX ;
W W
• β =β' = µnCOX .
L L
(
Alla fine abbiamo: I DS = β ⋅ VDS VGS − VT . )
NOTA: facendo queste considerazioni c’è un particolare che non abbiamo considerato
(e che continueremo a non considerare operando cioè una semplificazione): vista la
forma del MOSFET, costituito di 4 gate, abbiamo uno schema delle tensioni fatto “a
croce”, come gli assi ortogonali cartesiani x e y.
• Dall’alto al basso: componente della tensione “y” fra il gate e il bulk;
• Da sinistra a destra: componente della tensione “x” tra il source e il drain.
Prenderemo un modello semplificato, valido per Vsource → 0 , in cui considereremo
solo la parte relativa alle x.
( )
Comunque sia, andiamo a graficare la relazione I DS = β ⋅ VDS VGS − VT nel piano delle
caratteristiche I DS = f (VDS ) (con VGS ≥ VT dall’accensione in poi ):
Sperimentalmente si nota che quella che dovrebbe essere una dipendenza lineare,
dovuta alla presenza di una proporzionalità ∝ VDS , è tale soltanto per valori di VDS
bassi. Superato un certo limite, infatti, la crescita diventa sub-lineare per la presenza
di alcuni effetti compensativi. Al fine di tener conto di questa diversa modalità di
crescita, viene introdotto un nuovo termine nell’equazione di prima
DA COSÌ: I DS =
W
L
(
β '⋅ VDS VGS − VT ) A COSÌ: I DS =
W
L
( ) 1
β '⋅ VDS VGS − VT − VD2S
2
Tuttavia, con questa modifica cadiamo nuovamente in errore, questa volta sulle
tensioni alte: per VDS elevata, infatti, il termine in rosso prende il sopravvento e
distorce il vero andamento della corrente, che è quello indicato nella figura qui sotto:
Tenendo comunque presente che, per VDS bassa, il comportamento del transistore è
sempre lineare, notiamo che, dal momento in cui la corrente raggiunge il massimo
(cioè il punto di zero della derivata) il “vero” andamento vede tale corrente rimanere
costante.
Calcoliamoci dunque la derivata:
∂I DS
= β (VGS − VT ) − VDS
∂VDS
Che è zero per: (VGS − VT ) − VDS = 0 ⇒ VGS − VT = VDS
E dunque per corrente pari a:
(
)(V ) (β
(VGS − VT )2 = VG − VT)
1 2
I DS = β VG − VT G − VT −
2 2
*
Il valore ottenuto è quello di massimo della corrente; VGS − VT = VDS è invece il valore
di tensione che delimita le due zone del nostro transistor:
- quella lineare: la derivata della corrente è positiva;
- quella di saturazione: la derivata della corrente è nulla.
Purtroppo, ancora una volta il modello non è perfetto: esiste infatti una leggera
crescita di corrente dopo il valore “massimo” (ovvero per valori di tensione maggiore di
*
VDS ). Nuovamente, per far collimare modello e risultati sperimentali, facciamo appello
a considerazioni di tipo semi-empirico e serviamoci di un trucco, introducendo un
parametro λ , che non ha nessun significato fisico… ma fa quadrare i conti!
β
( )
2
I DS = VG − VT (1 + λVDS )
2
Nella situazione di corrente massima (e
quindi costante), con tensione
*
VDS = VGS − VT , il canale di elettroni presente
tra drain e il source ha forma triangolare. A
dire il vero, il canale può assumere diverse
forme: tutto dipende dall’entità di VD .
Maggiore è infatti VD e più grande dovrà
*
essere la VDS per far sì che il canale riesca
“ad arrivare” fino al drain. La corrente che
fluisce nel transistor sarà costante nella
misura in cui L’ sarà più simile ad L (vedi
figura).
Prendiamo un invertitore:
VDD = 5 V
VTN = −VTP = 1 V
In esso abbiamo graficato le varie disequazioni (le frecce indicano i semipiani da considerare)
corrispondenti al P-MOS e all’N-MOS: come si vede, le aree che abbiamo delimitato si
intersecano fra loro e determinano 5 zone d’interesse:
- ZONA ROSA (1): in questa zona
VOUT = VDD perché l’N-MOS è spento e il P-
MOS è acceso, quindi tutta la tensione della
pila “confluisce” verso l’uscita;
- ZONA VIOLA (2): sono accesi entrambi i
transistor; in questa zona abbiamo che
VGS − VTN è un valore molto piccolo: il
canale N sarà quindi in saturazione, mentre
quello P sarà in regione lineare per via
dell’elevato valore di VGS − VTP ;
- ZONA ARANCIONE (3): sono accesi
entrambi i transistor, ed entrambi sono
saturi;
- ZONA GRIGIA (4): sono accesi entrambi i
transistor; in questa zona abbiamo che
VGS − VTN è un valore molto grande: il
canale N sarà quindi in lineare, mentre quello P sarà in regione di saturazione per via del
basso valore di VGS − VTP ;
- ZONA TURCHESE (5): in questa zona VOUT = 0 visto che l’N-MOS è acceso e il P-MOS è
spento, quindi l’uscita è bassa perché nella rete di pull-up c’è un aperto.
transistore N transistore P
Osserviamo tuttavia con sgomento che VOUT non compare in questa catena di relazioni! Ciò
significa che la tensione d’uscita può assumere qualsiasi valore (purché resti sempre
all’interno della zona ARANCIONE, ovvio). La relazione VIN / VOUT che ne ricaviamo è
quindi di tipo “lineare”, rappresentabile da una linea verticale (come si vede in figura).
Dunque, sebbene ci siano una miriade di valori di VOUT che possano andarci a genio, esiste
un solo valore di VIN (unico parametro, dei due che ci interessano, a comparire nell’equazione
di cui sopra) in cui la catena di uguaglianze è verificata e, cioè, il valore di VIN in cui la
parabola della zona VIOLA tocca la retta verticale di questa regione.
La zona ARANCIONE ha la particolarità di contenere al suo interno la soglia logica
dell’invertitore (ed è sempre così!): questo punto, come sappiamo, si trova nell’intersezione fra
la retta verticale x = VIN e la bisettrice. Di conseguenza la nostra VIN , oltre ad essere
soluzione dell’equazione sulla corrente di drain-source, è anche la tensione di logic threshold;
siccome ci interessa sapere quant’è, prendiamo l’equazione di prima e cerchiamo di esplicitare
la tensione che ci interessa
βn βp
2
(VIN − VTN ) =
2
2
(VIN − VDD + VTP )2
βp
VIN − VTN = −
βn
(VIN − VDD + VTP )
(occhio al segno meno!)
Se ora voglio che il secondo termine sia uguale al primo devo porre due condizioni:
βp
- = 1 (così scompare);
βn
- VTN = VTP .
V
Fatte queste sostituzioni, otteniamo che la nostra VIN = VLT = DD 1.
logic threshold 2
NOTA SUI DIMENSIONAMENTI
- ZONA GRIGIA (4): si tratta del caso duale della zona (2). Abbiamo ancora una dipendenza
parabolica della VOUT rispetto alla VIN ; il grafico che ne risulta sarà però simmetrico
rispetto a quello disegnato nella zona VIOLA.
- ZONA TURCHESE (5): in quanto caso duale della zona (1), abbiamo la tensione d’uscita
“fissa” al valore minimo, cioè a 0.
Possiamo altresì graficare le varie zone tramite un piano delle caratteristiche molto
“alternativo”, cioè quello che grafica l’andamento della corrente I DS (stiamo facendo
considerazioni riguardo alla caratteristica statica, quindi non facciamo alcuna osservazione sul
transitorio di salita/discesa) in funzione della tensione VOUT . In esso andremo a disegnare la
curva della corrente dell’N-MOS e anche quella del P-MOS: sarà interessante vedere in quali
punti si intersecano queste due curve, in quanto essi saranno i punti di lavoro del nostro
circuito.
1 Trascurando la corrente di sotto-soglia e le varie perdite, i valori logici alto e basso dell’invertitore CMOS sono
VOH = VDD e VOL = 0 V , indipendentemente dai dimensionamenti dei MOSFET. È invece la tensione di VLT a
dipendere da β = W β ′ = S β ′ e β = W β ′ = S β ′ ; ebbene, generalmente i canali N hanno un β n maggiore del
p p p p n n n n
L L
relativo β p dei canali P: ciò significa che nei MOSFET di tipo N, più conduttivi, gli elettroni sono più veloci. Risulta
quindi facile verificare che, posto βn > β p , allora si ha che βp (e abbiamo violato la condizione posta poco fa!).
<1
βn
Dunque, per far sì che venga rispettata la relazione β p , devo cambiare i parametri tecnologici del MOSFET di
=1
βn
tipo P. Altrimenti mi rassegno e accetto di avere una VLT (di logic threshold) più bassa e una caratteristica statica
βp
non simmetrica (V − VTP ) + VTN
βn DD
VLT =
βp
1+
βn
- ZONA ROSA (1): ho impostato una VIN piuttosto bassa, poco sopra la soglia (il transistore N
si è appena acceso e stiamo cambiando zona). Ne deriva un grafico di questo tipo, con il punto
di lavoro caratterizzato da una forte saturazione di N e da una notevole linearità di P:
Si noti la tensione d’uscita molto vicina a VDD (ma non completamente, a causa della seppur
lieve accensione dell’N-MOS).
- ZONA VIOLA (2): faccio scendere VGS quindi l’N-MOS si avvia vero la linearità e il P-MOS
procede verso la saturazione.
Passiamo ora alla regione di triodo [ VDS < VGS − VT ]; qui le cose si fanno un pelo più
difficili perché, mentre in saturazione la corrente rimaneva costante, qui essa cala
piuttosto rapidamente. Andiamo a pescare quanto vale la corrente in questa situazione
dal capitolo precedente e scriviamo infine che:
dVDS β
−CL = I DS = n 2 (VGS − VTN ) VDS − VDS
2
dt 2
Vα
Applichiamo ancora la separazione delle variabili:
CL β
− dVDS = n dt
Vα VDS − VDS
2
2
E ora utilizziamo i fratti semplici!
A B A (Vα − VDS ) + BVDS Vα A + VDS ( B − A )
+ = =
VDS Vα − VDS VDS (Vα − VDS ) VDS (Vα − VDS )
B − A = 0 1
Da cui il sistema: ⇒ A=B=
AVα = −1 Vα
Dunque abbiamo che:
1 dVDS dVDS βn
− + = dt
Vα VDS Vα − VDS 2CL
Ora integriamo:
βn VDSfinale
1 V − VDSfinale
τ triodo = −ln − ln α =
2CL Vα
VDSiniziale Vα − VDSiniziale
1 VDSfinale 2 (VGS − VTN ) − VDSfinale
=− ln − ln
2 (VGS − VTN ) VDSiniziale 2 (VGS − VTN ) − VDSiniziale
Dunque il tempo in cui il transistore sarà in regione triodo è (applicate le proprietà dei
logaritmi):
CL V 2 (VGS − VTN ) − VDSfinale
τ triodo = ln DSiniziale
(VGS − VTN ) βn VDSfinale 2 (VGS − VTN ) − VDSiniziale
βp
(VGS − VTP ) τ saturazione = VDSfinale − VD S iniziale
2
2CL
2CL VDSfinale − VD S iniziale
τ saturazione =
βp (VGS − VTP )
2
Procediamo poi con la regione triodo, similmente a come abbiamo fatto prima…
dVDS β p
CL = 2 (VGS − VTP ) VDS − VDS
2
dt 2
dVDS β
= p dt (separazione variabili)
2CL
2 (V − V ) V − V 2
GS
TP
DS DS
V β
A B A (Vβ − VDS ) + BVDS AVβ + VDS ( B − A )
+ = = (fratti semplici)
VDS (Vβ − VDS ) VDS (Vβ − VDS ) VDS (Vβ − VDS )
B = A
B − A = 0
⇒ 1
AVβ = −1 A=−
Vβ
1 1 1 1 1 1 βp
− + dVDS = − + dVDS = dt
Vβ VDS Vβ − VDS 2 (VGS − VTP ) VDS 2 (VGS − VTP ) − VDS 2CL
1 1 1 β
−∫ dVDS − ∫ dVDS = ∫ p dt … etc. …
2 (VGS − VTP ) VDS 2 (VGS − VTP ) − VDS 2CL
… fino a giungere al seguente risultato:
2CL V 2 (VGS − VTP ) − VDSiniziale
τ triodo = ln DSfinale
(VGS − VTP ) β p VDSiniziale 2 (VGS − VTP ) − VDSfinale
NOTA: anche in questo caso, queste formule sono da considerarsi generali e sempre
valevoli, a patto che la tensione iniziale sia inferiore di quella finale (altrimenti non si
avrebbe carica). Possiamo, come prima, effettuare una misura parziale ( VD S iniziale e
VDSfinale “qualsiasi” ed entrambe o all’interno della regione di saturazione o in quella
lineare), oppure complessiva di tutta la regione. Ecco i valori:
SATURAZIONE (completa): inizia a −VDD finisce a −VDD − VTP
TRIODO (completo): inizia a −VDD − VTP finisce a VOH min − VDD
Si ha inoltre che: VGS = −VDD
Sostituendo, le nostre relazioni diventano:
VDSfinale VD S iniziale
2CL −VDD − VTP − ( −VDD ) 2CL −VTP
τ saturazione = =
βp
2
β p (VDD + VTP )2
−VDD − VTP
=VGS
=VGS
VDSiniziale
VDSfinale
2 −VDD − VTP − ( −VDD − VTP )
2CL VOH min − VDD
τ triodo = ln
2
−V − V
2 −VDD − VTP − (VOH min − VDD )
DD TP
−VDD − VTP β p
VDSiniziale
=V
GS =VGS VDSfinale
2CL −VDD + VOH min
= ln
(VDD + VTP ) β p −VDD − 2VTP − VOH min
2
Tempo di propagazione
Possiamo quindi scrivere che il tempo di propagazione è ricavabile con una formula del
tipo:
tp = τ 0 F
VI – LOGICHE A RAPPORTO
Le logiche a rapporto, più che alle logiche MOS complementari (come quella
dell’invertitore), somigliano al caro vecchio partitore resistivo visto nel capitolo I.
Prendiamo infatti tale componente, con la resistenza di load e quella di drive che
chiameremo rispettivamente RL ed RD .
Supponiamo di volerci porre in condizione di uscita bassa e di voler quindi
dimensionare le resistenze affinché entrino fra loro in competizione (altrimenti – con
resistenze fra loro simili – come farei ad avere un uscita alta o bassa?). Ebbene, posso
incorrere in due problemi:
- se il drive fosse troppo piccolo allora avrei un problema di potenza (ne dissipo
tantissima sulla resistenza RD : è l’ennesima prova che è molto pericoloso avere
un percorso conduttivo dalla tensione VDD a massa);
- se il drive fosse troppo grande mi ritroverei un problema di dinamica (logica
molto molto lenta e uscita presumibilmente sporca).
Ecco dunque un primo esempio: se dimensiono RL ed RD in modo che siano fra loro in
contrasto, eventualmente aumentando o diminuendo RL ed RD in maniera che
rimanga invariato il loro rapporto, si ha una logica a rapporto.
Tutto questo accade contrariamente a ciò che avviene nella logica fully C-MOS, dove si
vuole avere simmetria fra load e drive per garantire una logic threshold a VDD 2 :
β p = βn ⇒ S p β p′ = Sn βn′
Non è però un vincolo così stringente come lo è quello appena esposto, cioè quello che
riguarda le logiche a rapporto: infatti nelle logiche C-MOS posso, agendo sui fattori di
forma, cambiare eventualmente il rapporto tra la dimensione del drive e quella del
load e – quindi – sono in grado di riconfigurare la rete N-MOS e/o quella P-MOS. E
posso farlo per una ragione qualsiasi: voglio avere un tempo di scarica più veloce?
Modifico il dimensionamento della rete di pull-down, mi servo di un fattore di forma
Sn più grande e la faccio più conduttiva. Ciò non ha però conseguenze dal punto di
vista della potenza dissipata, né dal punto di vista della chiarezza dell’uscita:
varieranno invece le correnti visto che sono funzioni del rapporto fra S p ed Sn e
cambieranno i tempi di salita e di discesa (che hanno β p e β n all’interno della loro
formulazione). Basterà quindi un vincolo solo (ad esempio sul ritardo: tsalita + tdiscesa )
per definire il mio invertitore e il rapporto fra S p ed Sn : indipendentemente da esso, il
transistore funzionerà benissimo e ciò è possibile grazie alla complementarietà dei
transistor, che sono accesi in maniera mutuamente esclusiva e che non dissipano
potenza statica, comportandosi a volte come circuito aperto (non passa corrente) e a
volte come cortocircuito.
1 2
Semplifichiamo ignorando, per ora, il termine VD :
2
VDD − V0 S
= SD Rβn′ (VDD − VTN ) = D β n′ (VDD − VTN )
V0 G
E se invece della resistenza ci fosse un transistor?
Si avrebbe:
βL
(VGS − VT )
2
I SC =
2
Abbiamo dunque una specifica sul fattore β L = SL β L′ della parte pull-up. Come si vede
e si è già sottolineato, quest’ultimo è il punto più delicato da affrontare.
In questa relazione si vedono bene le insidie nascoste nella progettazione di una logica
a rapporto:
- se voglio calare i valori possibili dell’uscita VOUT allora devo aumentare il
fattore di forma SD del driver (vedi tutto il ragionamento fatto prima!);
- (2° VINCOLO) una resistenza di carico R piuttosto grande rallenta molto la
dinamica: il condensatore da caricare (il quale rappresenta l’uscita) deve
ricevere, per una pari tensione, una quantità di carica Q ∝ RC . Se R è alta,
allora occorrerà molto più tempo per caricare e la logica sarà molto lenta. Se
tuttavia scelgo una piccola resistenza, la potenza dissipata statica in presenza di
V − VOL
uscita bassa [ VOUT = VOL ], che è pari a PdST = VDD I SC = VDD DD , aumenta
R
(NOTA: nella tecnologia CMOS il consumo di potenza statico è nominalmente
nullo; qui siamo in un caso evidentemente diverso).
La soluzione ottimale per evitare i
problemi di dinamica sarebbe quella
rendere la corrente I SC sempre
costante fino alla carica completa
dell’uscita (vedi figura). Dobbiamo
ovverosia fare in modo che la capacità
si carchi nel più breve tempo possibile.
Quella più semplice è di agire sul gate del load. Dove lo colleghiamo?
- A massa? No, perché il transistore sarebbe sempre spento.
- Alla tensione d’uscita? No, perché il transistore non farebbe proprio in tempo
ad accendersi (o, se la tensione d’uscita fosse già alta, non si spegnerebbe mai).
- Al drain ( VDD ) [v. figura]? Evidentemente sì, visto che è
l’unica soluzione possibile. Sicuramente, in questo caso è
acceso: ma è il lineare o in saturazione? Beh, facciamo
qualche calcolo
IPOTESI: saturazione VGS − VT < VDS
VDD −VOUT soglia VDD −VOUT
−VT < 0
(sempre verificata!)
Quindi sicuramente siamo in saturazione, sia in
condizioni statiche che in condizioni dinamiche.
Ebbene, questa implementazione è pessima, perché il
fatto che sia in saturazione non è una garanzia che la
corrente sia costante (non è affatto costante la VGS )!
cala con la carica
2
VGS ↓
β β
Infatti, in saturazione si ha: I = L (VGS − VT ) = L VDD − VOUT ↑ − VT
2
2 2
cresce con
la carica
Quindi la situazione è la seguente:
La pull-up riesce a caricare il condensatore C solo dopo un tempo infinito e, anzi, il
condensatore si spegne a VDD − VT , non raggiungendo neanche completamente il valore
logico VDD .
Quanto vale la soglia logica del transistore? Tanto per cambiare, quest’ultimo soffre
pesantemente di effetto Body, quindi dobbiamo tenerne conto:
VOH = VDD − VT
(
VOH = VDD − VTO + γ 2ϕ F + VSB − 2ϕ F
)
considerando l'effetto Body
Un’implementazione
molto interessante
diventa allora la
seguente (a pseudo
N-MOS):
• Questo transistore ha VGS = 0 − VDD
costante, quindi la sua corrente in regione
di saturazione sarà certamente costante.
• La VGS = −VDD è sicuramente sempre
minore della soglia, dunque il transistore
non si spegne mai.
• Non c’è effetto Body, perché il bulk è
collegato al source.
• Partiamo in saturazione, perché:
VGS − VT > VDS ⇔ VGS + VT < VDS
VGS + VT < VDS ⇔ −VDD + VT < VOUT − VDD
VT < VOUT Sempre verificata!!
• Finiamo in lineare, come accadeva per il carico a depletion, ma, ancora una
volta, dopo un bel tratto dove la corrente era costante (e veramente costante,
visto che non c’è l’effetto Body).
Dunque questa è un’implementazione molto buona, soprattutto nei confronti della
prima in assoluto che abbiamo studiato!
NOTA: nei casi fin’ora studiati abbiamo considerato il solo transitorio di carica. Nelle
logiche a rapporto, per definizione, i due transitori non potranno MAI essere uguali,
perché sono costretto a fare il load parecchio più resistivo del driver. Il tempo di
scarica, dunque, non è mai un fattore di demerito, perché esso – per costruzione – sarà
sempre più breve (*)!
dt
β
(VDD − VTP )
2
- potenza dissipata statica: P = VDD
2
- siccome β p > β n di almeno 5-6 volte, si capisce bene che il tempo di salita è molto
superiore a quello di discesa (*). Possiamo quindi considerarlo senza indugio come caso
peggiore. D’altronde, non sarebbe possibile creare una logica a rapporto se la rete di
pull-down non fosse così conduttiva e non contrastasse, se attiva, quella di pull-up.
In esso si dà l’espressione della tensione d’uscita in funzione del tempo: si noti che è
importante che il transitorio duri il meno possibile, e – in pratica – che l’area sotto le
varie curve sia la più piccola possibile. Ovviamente il caso migliore (linea verde) è
quello del generatore di corrente in grado di fornire corrente costante: fra tutti, infatti,
è quello che per primo arriva alla corrente VDD . Gli altri ci mettono un po’ di più
perché purtroppo, con l’avanzare del transitorio, cala la corrente che va verso la
capacità; sappiamo che il caso di pseudo N-MOS è comunque abbastanza vantaggioso
(equivale a quello ideale durante tutta la parte in cui siamo in saturazione, poi
peggiora in lineare) e, infatti, è il migliore dopo quello del generatore. Infine, c’è la
soluzione con carico resistivo, che non è molto efficiente.
VII - LOGICHE FULLY C-MOS (Complementary MOS)
Le logiche C-MOS nascono da un’estensione del caso del semplice invertitore C-MOS;
esso infatti è costituito da:
- una rete di pull-up fatta da un transistore P-MOS;
- una rete di pull-down fatta da un transistore N-MOS;
- un’uscita che sta fra la rete di pull-up e quella di pull down.
L’estensione consiste nell’utilizzare reti con più transistor, al fine di creare funzioni
logiche sfruttando il principio dell’invertitore. Vedremo, però, che i transistor non
possono essere messi “a caso”: affinché tutto proceda bene è necessario che si seguano
alcune fondamentali regole.
Effettivamente, è sufficiente che uno dei due transistor sia in conduzione per generare
un’uscita alta. Se invece entrambi i transistor sono interdetti, non passa corrente e
non si alza l’uscita.
Sfruttando questo principio di “composizione” dei transistor, in grado di generare
funzioni logiche se disposti opportunamente in serie/parallelo, possiamo creare quella
che viene chiamata logica fully C-MOS. Ecco le caratteristiche di questo tipo di
implementazione:
- la rete di pull-up è formata soltanto da transistori P-MOS e quella di pull-
down soltanto da transistori N-MOS;
- quando la pull-up conduce la pull-down è spenta (accade anche il viceversa);
- gli ingressi delle porte logiche (che sono le variabili binarie della funzione
logica che ci interessa) pilotano esclusivamente i terminali di gate dei transistori
MOS;
- le funzioni logiche sono realizzate considerando le reti di pull-up e di pull-
down come semplici reti di interruttori e tenendo presente che:
- i transistori N-MOS sono attivi quando l’ingresso che li pilota è un “1”
logico, mentre i P-MOS sono attivi quando l’ingresso che li pilota è uno “0”
logico (quindi questi ultimi sono interruttori complementari rispetto ai
primi);
- la connessione in serie di due interruttori pilotati da A e B (variabili
binarie) è attiva quando entrambi gli interruttori sono attivi (funzione
AND), mentre la connessione in parallelo di due interruttori è attiva
quando almeno uno degli interruttori è attivo (funzione OR, vedi
l’esempio sopra).
NOTA: la dualità è condizione sufficiente, ma non necessaria; esistono reti C-MOS non
duali che però funzionano benissimo.
De Morgan
OUT = +
A B = A⋅B
guardando guardando
la PDN la PUN
(funzione NOR)
Si noti che è molto più facile ricavare la funzione logica
del circuito osservando la PDN, per poi trovare quella
della rete duale utilizzando le leggi di De Morgan.
Effettivamente, la ricerca delle due reti è una vera e
propria esplicitazione di tale legge.
Gli esempi possono essere tantissimi: il modo di agire è però sempre lo stesso, sia in
fase di analisi che in quella di sintesi.
Il fatto che si utilizzino delle funzioni logiche ha un vantaggio “nascosto” (oltre a quello
della facile computabilità): un progettista scaltro può trovare delle semplificazioni del
circuiti che sacrificano la dualità per ridurre il numero dei transistori e delle
connessioni presenti.
Quel che abbiamo detto fin’ora è importante, ma non è sufficiente in sede di analisi:
come facciamo, infatti, a calcolare i tempi di salita, i tempi di discesa, le potenze
dissipate e tutti gli altri parametri che trovavamo ai bei tempi in cui l’invertitore era
semplicissimo e fatto di soli due transistor? Qui i transistor sono molti!
Ci viene però in soccorso un metodo che come approccio ricorda quello del calcolo di
resistenze equivalenti in serie e parallelo. Non solo con componenti elementari dei
circuiti a parametri distribuiti (induttori, condensatori, resistenze) si possono trovare
le controparti equivalenti: il metodo si può attuare anche con i transistori MOS (sia P
che N, ovviamente). Vediamo come.
Parallelo di transistori
Due transistor sono in parallelo quando sono connessi fra loro tutti i terminali
omologhi dei dispositivi (gate con gate, drain con drain, etc…). In tal caso, la corrente
complessiva I DS del parallelo è la somma della corrente dei due transistori:
I DS = I DS1 + I DS 2
1 2 1 2
I DS = S1 β ′ (VGS1 − VT ) VDS1 − VDS 1 + S2 β (VGS 2 − VT ) VDS 2 −
′ VDS 2
2
2
I DS 1 , regione triodo I DS 2 , regione triodo
Tuttavia, siccome VGS1 = VGS 2 = VGS (entrambi sono accesi e quindi hanno ingressi
uguali, inoltre condividono il source) e VDS1 = VDS 2 = VDS :
1 2
I DS = ( S1 + S2 ) β ′ (VGS − VT ) VDS − VDS
2
fattore di forma
del transistore
equivalente
Serie di transistori
2
)
V2 V2
I DS = S β ′ VGBVDB − VT VDB − VGBVSB + VT VSB + SB − DB
2 2
Ora dividiamo la parte in cui compare VDB da quella in cui compare VSB e
distribuiamo il coefficiente β ′ :
VSB
VDB
2 2
′
I DS = S β VGBVDB − VT VDB − ′
+ β −VGBVSB + VT VSB +
2 2
g (VGB ,VDB )
g (VGB ,VSB )
Per comodità di notazione esprimiamo le quantità indicate come due funzioni g, visto
che la forma è lo stessa e che l’unica cosa a cambiare è la presenza/assenza di VDB o di
VSB (NOTA: attenzione ai segni!):
I DS = S g (VGB ,VDB ) − g (VGB ,VSB )
Ora differenziamo (riportiamo la figura della serie, come
memorandum):
- transistore “di sopra”:
VXB
I MD = S1 g (VGB ,VDB ) − g VGB ,VSB
- transistore “di sotto:
VXB
I MS = S2 g VGB ,VDB − g (VGB ,VSB )
Ora dobbiamo trovare qualcosa da “imporre” (ed è evidente che l’unica relazione certa
che possiamo fissare e quella dell’equivalenza delle correnti che scorrono nella serie; la
corrente che fluisce in MD non può che andare completamente a finire in MS), per fare
i nostri calcoli e vedere di esprimere, come abbiamo fato nel caso del parallelo
I= {
...qualcosa...}
g (VGB ,VDB ) − g (VGB ,VSB )
fattore di forma del transistor
equivalente, visto che è coefficiente
della quantità g (VGB ,VDB ) − g (VGB ,VSB )
uguale per entrambi i MOSFET
Procediamo:
I MD = I MS I MD − I MS = 0
S1 g (VGB ,VDB ) − g (VGB ,VXB ) − S2 g (VGB ,VXB ) − g (VGB ,VSB ) = 0
S1 g (VGB ,VDB ) − S1 g (VGB ,VXB ) − S2 g (VGB ,VXB ) + S2 g (VGB ,VSB ) = 0
S1 g (VGB ,VDB ) + S2 g (VGB ,VSB ) = g (VGB ,VXB )( S1 + S2 )
S1 S2
g (VGB ,VDB ) + g (VGB ,VSB ) = g (VGB ,VXB )
S1 + S2 S1 + S2
Ora che abbiamo trovato g (VGB ,VXB ) , ci ricordiamo che
I MD = S1 g (VGB ,VDB ) − g (VGB ,VXB )
e sostituiamo (in questo modo VX scompare definitivamente dalla scena):
S1 S2
I MD = S1 g (VGB ,VDB ) − g (VGB ,VDB ) − g (VGB ,VSB )
S1 + S2 S1 + S2
S1 S2
I MD = S1 1 − g (VGB ,VDB ) − g (VGB ,VSB )
S1 + S2 S1 + S2
S2 S2
I MD = S1 g (VGB ,VDB ) − g (VGB ,VSB )
S1 + S2 S1 + S2
S2
I MD = S1 g (VGB ,VDB ) − g (VGB ,VSB )
S1 + S2
Ce l’abbiamo fatta!
S2
I = {...qualcosa...} g (VGB ,VDB ) − g (VGB ,VSB ) = S1
g (VGB ,VDB ) − g (VGB ,VSB )
S1 + S2
Dunque il fattore di forma del transistor equivalente è:
−1
SS 1 1
Seq = 1 2 = +
S1 + S2 S1 S2
NOTA: se, fatte le stesse ipotesi, invece che due abbiamo tre transistori in serie, il
fattore di forma del transistor equivalente è
−1 −1
1 1 1 S S + S2S3 + S1S3 S1S2S3
Seq = + + = 1 2 =
S1 S2 S3 S1S2S3 S1S2 + S2S3 + S1S3
e NON
S1S2S3
Seq =
S1 + S2 + S3
lo si capisce bene dalle dimensioni fisiche:
( numero puro )3
S1S2S3
≡ = numero puro
( )
S1S2 + S2S3 + S1S3 ( numero puro ) 2
( numero puro )
3
S1S2S3
Seq = ≡ = numero puro 2 ← ???
( )
S1 + S2 + S3 ( numero puro )
Il bilancio totale dei fattori di forma è notevolmente migliore rispetto a quello del caso
precedente: infatti questa volta dobbiamo “spendere” 8 + 8 = 16 per la PDN e solo 4α
per la PUN. Se poniamo α = 2 il totale fa esattamente 24 (contro i 36 di prima).
VIII - CAPACITÀ DEL TRANSISTOR MOS
DRAIN:
Approssimazione CGDC ∼ 0 (non controlla
parabolica
praticamente nulla)
Un’altra cosa che accade è che, nel funzionamento normale dei circuiti in tecnologia C-
MOS, il substrato (bulk) dei transistori di tipo N è normalmente polarizzato a massa,
dunque le giunzioni source-bulk e drain-bulk hanno sempre polarizzazione inversa
(vedi la giunzione p-n). Dunque ecco che dobbiamo introdurre altre due capacità
parassite:
• Capacità drain-bulk → CDB = C j 0WLdrain
• Capacità source-bulk → CSB = C j 0WLsource
NOTA: C j 0 è funzione di VSB , ed è in genere 3 o 4 volte inferiore a COX .
Per riassumere la situazione che abbiamo esaminato fin’ora facciamo una bella
tabellina per il nostro transistor:
Ora vogliamo complicare il tutto e osservare quel che accade con la catena di due
invertitori. Serviamoci dunque di uno schema in cui riportiamo la struttura dei due C-
MOS inverter e districhiamoci fra tutte le capacità parassite. Chiameremo:
- con l’indice 1 i parametri dell’N-MOS del primo invertitore;
- con l’indice 2 i parametri del P-MOS del primo invertitore;
- con l’indice 3 i parametri dell’N-MOS del secondo invertitore;
- con l’indice 4 i parametri del P-MOS del secondo invertitore.
Quindi formuliamo una piccola legenda
(i = indice del transistor):
• CGDi capacità gate-drain
del transistore i;
• CDBi capacità drain-bulk
del transistore i;
• CG capacità di gate del
transistore i;
• CW capacità della linea di
metallo che collega i due
invertitori.
Chiameremo inoltre con CL la capacità
complessiva (data dalla somma di tutte
queste capacità) che l’invertitore vede
sull’uscita O1 (che supponiamo si stia caricando). Calcoliamo a quanto ammonta tale
capacità:
transistor 1 transistor 2
CL = 2W1CGD 0 + W1 Ldrain1C j 0 K eq + 2W2CGD 0 + W2 Ldrain2C j 0 K eq + CW +
gate-drain drain-bulk gate-drain drain-bulk
transistor 3 transistor 4
+ W3 L3COX + 2W3CGS 0 + W4 L4COX + 2W4CGS 0
capacità di gate capacità di gate
NOTA: C j 0 K eq = C j (dove K eq < 1 è una costante che linearizza il modello) indica che,
trovandoci in un transitorio di carica, la capacità C j è inferiore alla C j 0 .
Ora chiamiamo LMIN la minima lunghezza consentita dalla tecnologia per il gate: essa
ci ridefinisce anche i fattori di forma dei transistori N-MOS e di quelli P-MOS
Wn Wp Sp W
Sn = Sp = =α = p
LMIN LMIN Sn Wn
Facciamo in modo che questi parametri valgano per tutti e quattro i transistor
( W1 = W3 = Wn , W2 = W4 = Wp , L3 = L4 = LMIN , Ldrain1 = Ldrain2 = Ldrain ), dopodiché torniamo
alla nostra formulona e separiamo tutto ciò che riguarda i transistori a canale P da
quello che riguarda il canale N:
TRANSISTORI DI TIPO N → QUANTITÀ CN
transistor 1 transistor 3
CL = 2WnCGD 0 + Wn LdrainC j 0 K eq + Wn LMIN COX + 2WnCGS 0 +
gate-drain drain-bulk capacità di gate
transistor 2 transistor 4
+ 2WpCGD 0 + Wp LdrainC j 0 K eq + Wp LMIN COX + 2WpCGS 0 + CW
gate-drain drain-bulk capacità di gate
TRANSISTORI DI TIPO P
M −2 M > 0
M >4
IX – LOGICHE A PASS-TRANSISTOR
Con i pass-transistor non è tutto rosa e fiori. Vediamo come mai nella più semplice
implementazione di un interruttore.
1° caso: l’OUT è a 1 e voglio trasmettere
uno zero (il transistor è acceso e porta
corrente dalla capacità a massa).
Il circuito si comporta bene, perché la
legge che governa il transitorio
( da VDD → a 0 ) è quella già vista nei
capitoli precedenti: affinché la corrente I
(da OUT ad A) smetta di scorrere è
necessario che OUT passi a zero (cioè che
VDS = 0 ), dunque il nodo scende del tutto.
La stessa cosa avviene con un transistor a canale P al posto di quello N usato fin’ora:
1° caso: uscita inizialmente bassa e A alta
(voglio trasmettere un “1”). VGS è costante (e
pari a zero) quindi il P-MOS non si spegne mai
e la corrente fluisce tranquillamente fino a
quanto l’uscita non è completamente arrivata a
VDD .
Pass-transistor complementari
Ora appare chiaro come mai parliamo di dinamicità; mentre, nelle logiche statiche
(fully C-MOS, logiche a rapporto, logiche a pass-transistor), l’uscita assume in ogni
istante il valore della funzione logica computata dal gate, nelle logiche dinamiche tutto
ciò non accade durante la fase di precarica. Nella fase di precarica il circuito non
computa infatti alcuna funzione logica; questa fase svolge però un’indispensabile
funzione propedeutica rispetto alla fase di valutazione. Grazie alla precarica, infatti,
viene garantita (sempre in fase di valutazione) una tensione bassa VOL pari a 0 V e
una tensione alta VOH pari a VDD senza bisogno di una rete di pull-up. Inoltre,
l’alternanza delle fasi di precarica e valutazione assicura che i transistori N-MOS e P-
MOS (governati dal clock) siano sempre accesi in modo mutuamente esclusivo: di
conseguenza l’assorbimento di potenza statica è nullo, così come la potenza di
cortocircuito.
Gli ingressi, ovviamente, potranno variare soltanto nella fase di precarica (quando in
uscita abbiamo un “1” in alta impedenza): modificando infatti la rete PDN durante la
valutazione potremmo infatti sporcare pericolosamente il dato in uscita.
Oltre ai disturbi dovuti alle correnti di perdita dei transistori nominalmente spenti, la
tensione di uscita alta può degradarsi durante la fase di valutazione anche perché
alcune transistori del pull-down si accendono, pur senza
creare un intero percorso di corrente fra uscita e massa.
Facciamo riferimento a una semplice logica dinamica del
tipo indicato in figura: supponiamo quindi che vi sia un
malfunzionamento, e
che A si accenda (pur
B rimanendo spento).
L’uscita non avrebbe
nessuna regione di
calare (non vi è alcun
percorso conduttivo
verso massa, quindi
la tensione OUT
dovrebbe rimanere
fissa a VDD ), tuttavia la carica del nodo d’uscita
si ripartisce tra CL e la capacità C A (cioè la
capacità associata al transistor A, che ora è
acceso e può caricare). Che accade ora?
► se C A è relativamente piccola rispetto a CL ,
allora il transitorio termina con lo spegnimento
di A. OUT, infatti, scende lentamente (capacità
CL grande) e carica in fretta la C A (che è
piccola): dal momento che la tensione VA (a
valle di A, dove possiamo porre il condensatore C A ) raggiunge il valore VDD − VT ,
allora il transistore A, come abbiamo detto, si spegne. La variazione di tensione
indotta sul nodo d’uscita sarà ∆VOUT :
CLVDD + 0
= CLVOUT + C AVA
ipotesi che
prima che A in A non ci
si aprisse sia carica al
tempo 0
CA
∆VOUT = VDD − VOUT = VA
CL
Si noti che, affinché sia valida la precedente analisi, è
necessario che alla fine del transitorio VOUT = VA : tale
relazione si traduce nella seguente condizione
CA VT
<
CL VDD − VT
► se l’espressione scritta appena sopra non è verificata (e quindi C A non è poi così
piccola rispetto a CL ), il transitorio si esaurisce quando
∆VOUT = VA
in modo che si annulli la tensione VDS del transistore A. Questa volta, la variazione di
tensione ∆VOUT indotta sul nodo d’uscita è:
CLVDD + 0 = CLVOUT + C AVOUT = VOUT (CL + C A )
ipotesi che
prima che A in A non ci parallelo dei
si aprisse sia carica al due condensatori
tempo 0
CA
∆VOUT = VDD
C A + CL
Quando il nodo d’uscita di un gate dinamico è in uno stato di alta impedenza, la sua
tensione può essere facilmente perturbata dall’accoppiamento capacitivo verso altri
nodi del circuito.
Un tipico esempio è l’accoppiamento capacitivo con un’interconnessione che passa
vicina al nodo in questione, la quale può avere un’attività di commutazione del tutto
indipendente dal circuito in esame.
Un secondo esempio è l’accoppiamento capacitivo con i circuiti a valle pilotati dal gate
dinamico.
Comunque sia, tali accoppiamenti hanno due effetti principali:
- riducono il margine di immunità ai disturbi;
- variano pericolosamente i valori dell’uscita.
Qui sopra riportiamo lo schema delle logiche domino, nate dall’osservazione in base
alla quale - durante la fase di valutazione - si possono avere soltanto transizioni da “0”
a “1” (o ingressi costanti) all’uscita di una rete PDN di circuito dinamico [e da “1” a “0”
per le controparti dinamiche PUN]. Inserendo un invertitore, siamo sicuri che nella
fase di valutazione vi può effettivamente essere soltanto una transizione da “0” a “1”
(cioè, da “1” a “0” negata: infatti nel corso della evaluation non può esserci
assolutamente una carica, visto che la PUN è interdetta, ma solo una scarica o un
mantenimento del valore alto in uscita, il ché soddisfa le ipotesi di corretto
funzionamento fatte poco fa).
L’inserimento dell’invertitore introduce naturalmente un ritardo, il quale si somma a
quello della parte dinamica del gate, tuttavia si presta anche ad alcune interessanti
ottimizzazioni:
- anzitutto si ha un discreto grado di flessibilità per ottimizzare i ritardi, qualora il
gate debba pilotare una capacità relativamente grande (vedi capitoli precedenti);
- si dà una condizione sul dimensionamento di S p (il P-MOS della PUN), mentre l’N-
MOS può essere mantenuto minimo per ridurre la capacità in ingresso. Il suddetto
dimensionamento minimo rallenta la discesa del segnale in uscita all’invertitore
durante la precarica, il quale di norma non è però un ritardo critico;
- l’invertitore può essere sfruttato per pilotare un P-MOS bleeder connesso al nodo
d’uscita OUT1, il quale può compensare i disturbi dovuti alle correnti di perdita o
alla ripartizione di carica durante la valutazione di OUT1 = 1.