APPUNTI DI CIRCUITI ELETTRONICI DIGITALI Aprile - Giugno 2009 Appunti di elettronica digitale tratti dalle lezioni del corso di Circuiti Elettronici Digitali L-A alla facoltà di Ingegneria Elettronica dell’Università di Bologna tenute dal professor B. Riccò e raccolti da Francesco Conti INDICE DEI CONTENUTI Transistori MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struttura del transistore MOS . . . . . . . . . . . . . . . . . . . Caratteristiche statiche del transistore MOS . . . . . . . . . . . Modello alle variazioni a bassa frequenza del transistore MOS Funzionamento ad alta frequenza del transistore MOS . . . . . Logica FCMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Invertitore CMOS statico . . . . . . . . . . . . . . . . . . . . . . Buffer e tri-state . . . . . . . . . . . . . . . . . . . . . . . . . . . Gate FCMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logiche non FCMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . Pass transistor e transfer gate . . . . . . . . . . . . . . . . . . . Multiplexer a pass transistor . . . . . . . . . . . . . . . . . . . . Circuiti domino . . . . . . . . . . . . . . . . . . . . . . . . . . . Ripartizione di carica nei circuiti dinamici . . . . . . . . . . . . Circuiti sincroni . . . . . . . . . . . . . . . . . . . . . . . . . . . Multivibratori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multivibratori bistabili . . . . . . . . . . . . . . . . . . . . . . . Multivibratori monostabili . . . . . . . . . . . . . . . . . . . . . Multivibratori astabili . . . . . . . . . . . . . . . . . . . . . . . . Licenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 7 9 12 12 17 18 20 20 21 22 23 24 25 25 27 28 30 INDICE DELLE FORMULE (1) Capacità del canale per unità di area . . . . . . . . . . . . . . . . . . . (2) Conducibilità estrinseca . . . . . . . . . . . . . . . . . . . . . . . . . . (3) Conducibilità intrinseca . . . . . . . . . . . . . . . . . . . . . . . . . . (4) Modello analitico del transistore NMOS . . . . . . . . . . . . . . . . . (5) Tensione di soglia con effetto Body . . . . . . . . . . . . . . . . . . . . (6) Transconduttanza gm . . . . . . . . . . . . . . . . . . . . . . . . . . . (7) Conduttanza g0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (8) Transconduttanza di bulk αgm . . . . . . . . . . . . . . . . . . . . . . (9) Corrente alle variazioni . . . . . . . . . . . . . . . . . . . . . . . . . . (10) Tensione di overdrive . . . . . . . . . . . . . . . . . . . . . . . . . . . (11) Soglia logica dell’invertitore CMOS . . . . . . . . . . . . . . . . . . . (12) Fattori di forma nell’invertitore CMOS simmetrico . . . . . . . . . . . (13) Fattori di forma nell’invertitore CMOS simmetrico ad area minima . (14) Ritardo di propagazione dell’invertitore CMOS simmetrico . . . . . (15) Formule di Elmore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (16) Capacità d’ingresso di un gate CMOS . . . . . . . . . . . . . . . . . . (17) Tempo di propagazione 10% − 90% con il metodo della resistenza equivalente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (18) Tempo di propagazione 50% con il metodo della resistenza equivalente (19) Dimensionamento del transistor con il metodo della resistenza equivalente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (20) Buffer di massima efficienza . . . . . . . . . . . . . . . . . . . . . . . . (21) Buffer con N invertitori . . . . . . . . . . . . . . . . . . . . . . . . . . (22) Fattore di forma equivalente di una serie di n transistor . . . . . . . . (23) Ripartizione di carica . . . . . . . . . . . . . . . . . . . . . . . . . . . . (24) Durata dell’impulso di un multivibratore monostabile . . . . . . . . 2 6 6 6 7 7 9 9 9 9 12 14 14 14 15 16 16 16 16 16 17 17 19 24 28 (25) Tempo di recupero di un multivibratore monostabile . . . . . . . . . (26) Durata del segnale basso nell’astabile . . . . . . . . . . . . . . . . . . (27) Durata del segnale alto nell’astabile . . . . . . . . . . . . . . . . . . . 3 28 29 29 TRANSISTORI MOS Struttura del transistore MOS Il transistore più diffuso in elettronica digitale è il MOSFET, ovvero Metal-OxideSemiconductor Field Effect Transistor, più comunemente detto transistore MOS. Il fatto che il MOS sia a effetto di campo significa che esso è controllato per mezzo di un campo elettrico, ovvero in tensione: sul terminale di controllo non passa corrente di conduzione. La struttura del transistore MOS è fondamentalmente quella di un condensatore non lineare in cui una delle armature è un conduttore (metal), in mezzo c’è un dielettrico (oxide) e l’altra faccia è un semiconduttore (semiconductor). Il campo elettrico che si forma in questo condensatore controlla la quantità di carica in una regione detta canale, attraverso cui può quindi scorrere una corrente controllata. Figura 1: Schema di principio di un transistore NMOS I transistori MOS si dividono in: • n-channel o NMOS, in cui i portatori di carica nel canale sono elettroni (negativi); 4 • p-channel o PMOS, in cui i portatori di carica nel canale sono lacune (positive, si muovono più lentamente degli elettroni). Inoltre, a seconda che il transistore funzioni inserendo carica nel canale o togliendone, è detto rispettivamente ad enhancement (arricchimento) o a depletion (svuotamento). Il 90% dei transistor è del tipo enhancement. Dal punto di vista circuitale, il MOS è un dispositivo a quattro morsetti: quello di controllo è detto gate, quello da cui proviene la corrente (nel NMOS) è detto drain, quello da cui esce è detto source e poi c’è un quarto terminale detto bulk o body che costituisce il substrato su cui è costruito il transistore. Il bulk è formato da un monocristallo di silicio debolmente drogato di tipo p, source e drain sono invece in contatto con zone di silicio fortemente drogate di tipo n. Il transistore MOS è controllato dalle tre tensioni VGS , VDS e VSB che nel NMOS sono tutte positive. Le giunzioni SB, DB sono diodi in inversa e dunque non conducono (se non una corrente piccolissima), per cui l’unica corrente significativa è IDS . Il PMOS è simmetrico in tutto al NMOS: le sue tensioni sono tutte negative e in esso la corrente scorre da source a drain, ma per il resto funziona in modo assolutamente identico. Figura 2: Schema circuitale di un transistore NMOS Caratteristiche statiche del transistore MOS Si può disegnare la transcaratteristica IDS (VGS ) tenendo costanti VSB = 0 e VDS ≈ 100mV. Una VDS nulla annullerebbe ogni differenza fra source e drain non permettendo lo scorrimento di corrento nel canale e spegnendo il transistore (se invece fosse negativa, source e drain si scambierebbero poiché il transistore MOS è simmetrico). Dal grafico di IDS (VGS ) si può approssimativamente dedurre una tensione di soglia VT (di solito circa 0.6V) prima della quale il transistore è spento e dopo 5 la quale si comporta approssimativamente come un resistore. Questa tensione di soglia è un parametro determinato durante la produzione a partire da una corrente minima considerabile significativa. In ogni caso essa non può essere né troppo piccola (renderebbe il transistore difficile da spegnere) né troppo grande. Variando VSB , si osserva una traslazione verso destra del diagramma, ovvero un aumento della soglia. Questo effetto è detto effetto body. L’altra caratteristica interessante del transistore MOS è IDS (VDS ), che è molto simile a quella di un transistore bipolare (tranne per il fatto che le correnti in gioco sono molto più piccole) ed è suddivisa in due regioni: una zona triodo dove IDS dipende da VGS (nella prima parte, in cui la dipendenza è abbastanza lineare, la zona è detta anche zona lineare) e una zona di saturazione dove la dipendenza è estremamente limitata. Nell’approssimazione che i transistori siano a canale lungo (non più valida per i transistori sub-micrometrici presenti nei moderni microprocessori), è possibile derivare dal funzionamento fisico teorico del transistore NMOS un modello analitico statico ai grandi segnali del transistore NMOS. Si introduce l’approssimazione di canale graduale: che il canale sia costituito da uno strato di carica appoggiato all’ossido in cui gli elettroni si spostano per via di un campo elettrico trasversale E⊥ e uno longitudinale Ek considerabili separatamente. Il campo E⊥ è dovuto, in questa approssimazione, alla tensione VGS e determina come in un condensatore la quantità di carica presente nel canale; il campo Ek , dipendente da VDS , mette in moto le cariche del canale. Il moto delle cariche è approssimato come ohmico, ovvero a velocità costante vdrift : anche questa approssimazione decade con i campi intensi presenti nei transistori odierni. Si definisce la capacità del canale per unità di area come Cox = εox tox (1) dove tox è lo spessore dell’ossido e εox la sua costante dielettrica. Definita la mobilità degli elettroni µn , si può definire la conducibilità estrinseca β = µn Cox W L (2) e la conducibilità intrinseca 0 β = µn Cox Il modello analitico del transistore NMOS è dunque dato da 6 (3) • Spento (VGS < VT ): IDS = 0 • Saturazione (VGS − VT < VDS ): 2 1 0 W VGS − VT (1 + λVDS ) IDS = β 2 L (4) • Triodo (VGS − VT > VDS ): W 1 2 0 IDS = β (VGS − VT )VDS − VDS L 2 • Lineare (zona triodo con VDS → 0): W 0 [VGS − VT ] VDS IDS = β L La leggera di pendenza da VDS in zona di saturazione (regolata da un parametro λ) è dovuta al fenomeno della modulazione di larghezza di canale. La tensione di soglia VT è calcolabile in base ad un parametro VT 0 e all’effetto Body: hp i p VT = VT 0 + γ VSB + 2ΦF − 2ΦF (5) dove ΦF è un parametro senza particolare significato fisico nei transistor odierni (in origine era il potenziale di Fermi). In pratica il transistore si comporta come un circuito aperto se spento, come un resistore controllato in tensione (dal condensatore gate-bulk) in regione lineare e come un generatore di corrente dipendente in regione di saturazione. Modello alle variazioni a bassa frequenza del transistore MOS Per il transistore MOS si può derivare da questo modello un modello equivalente alle variazioni a bassa frequenza: in esso compaiono una transconduttanza gm W 0 gm = β VDS (in zona triodo) L p (in zona di saturazione) (6) gm = β(VGS − VT ) = 2βIDS 7 Figura 3: Caratteristiche IDS (VGS ) e IDS (VGS ) di un NMOS senza modulazione di larghezza di canale 8 una conduttanza d’uscita g0 g0 = β (VGS − VT ) − VDS g0 = 0 g0 = IDS0 λ (in zona triodo) (in zona di saturazione con λ = 0) (in zona di saturazione con λ , 0) (7) ed una transconduttanza di bulk αgm 1 α=γ √ 2 VSB + 2ΦF (8) La corrente alle variazioni è dunque iDS = gm vGS + g0 vDS + αgm vSB (9) Funzionamento ad alta frequenza del transistore MOS Il funzionamento del transistore MOS a frequenza non nulla può essere valutato mediante il modello a controllo di carica. In qualsiasi componente controllato da una tensione V, se la tensione cambia da V1 a V2 , anche la carica contenuta al suo interno deve per forza cambiare, e quindi deve scorrere della corrente. Poiché la carica interna sarà funzione della polarizzazione (ovvero una Q(V)), è sempre possibile definire una capacità differenziale C= dQ dV da cui la corrente che manca è una i= dQ dV =C dt dt Le capacità differenziali di questo tipo costituiscono il principale effetto capacitivo del MOS. Si tratta di capacità non lineari che cambiano molto a seconda della polarizzazione del transistor. Esse derivano da effetti fisici diversi: • CGD e CGS sono capacità differenziali che descrivono la variazione della carica mobile del canale e sono quasi nulle a transistore spento. Dipendono sia da VGS che da VGD . Se VDS = 0, il canale è orizzontale e Qm = Cox (VGS − VT ) 9 Figura 4: Capacità parassite del transistore MOS Se si aumenta VGS , altra carica viene portata nel canale attraverso una corrente che, poiché VDS = 0, sarà simmetrica. Dunque in questo caso CGS = CGD . Se VDS , 0, invece, la corrente passa sempre più attraverso il source e sempre meno attraverso al drain, fino ad arrivare a saturazione, dunque CGS > CGD . Parallela a questa capacità, vi è una capacità costante dovuta alla piccola zona di sovrapposizione fra il drogaggio n+ dei terminali source e drain e il metallo del terminale di gate. • CSB e CDB vengono dalla giunzione n+ p− , che è un diodo in inversa. Anch’esse sono uguali per VDS = 0 e si differenziano per VDS > 0. • CGB modella una complessa variazione di carica fra gate e bulk ed è trascurabile sopra soglia ma è la capacità caratteristica del transistore quando esso è spento. Come già osservato prima, in senso trasversale il transistore MOS è un condensatore: esiste una tensione, detta tensione di flatband VFB (circa −1V), per cui esso è scarico (infatti, per via della giunzione, non applicando nessuna tensione ci sarebbe un movimento di carica: il condensatore si comporterebbe come una pila). Se la tensione fra gate e bulk si riduce a 0, il gate tende a caricarsi positivamente sulla superficie a contatto con l’ossido, mentre nel bulk, che non è un buon conduttore, la carica negativa non si concentra tutta sulla superficie dell’ossido ma occupa un’area più ampia. Infatti, gli elettroni, muovendosi verso l’interfaccia con l’ossido dove si accumulano formando la carica mobile, lasciano scoperti atomi di boro di drogaggio intrappolati nel cristallo che formano una carica fissa (e nota), la maggior parte. Aumentando la VGS , il canale si riempie sempre di più di carica mobile, finché questa non supera la carica fissa, e il transistor si accende (VGS = VT ). Se si sposta una carica ∆Q da un punto 10 all’altro del silicio situato a distanza d, la variazione di campo elettrico sarà ∆E = ∆Q dunque ε ε ∆Q = ∆V d è un buon modello per la capacità differenziale. Essa diminuirà all’aumento della tensione (poiché aumenta la distanza), ma quando la carica mobile diventa rilevante torna ad aumentare. Nella pratica, almeno per il calcolo a mano, si lavora spesso con valori fissi, con il metodo del caso peggiore. 11 LOGICA FCMOS Invertitore CMOS statico In logica FCMOS (fully complementary MOS) si utilizzano insieme transistor NMOS e PMOS per garantire alle porte logiche alcune utili proprietà. Innanzitutto, un invertitore CMOS (il circuito FCMOS per eccellenza) è statico, ovvero mantiene il proprio stato finché è mantenuto collegato all’alimentazione. Ha poi delle buone proprietà come un’adeguata non-linearità, un ottimo swing logico (da 0 a VDD ) ed è simmetrico. Figura 5: Invertitore CMOS Il funzionamento dell’invertitore è il seguente: • per Vin = 0V, VGSn = 0V e dunque il transistore n è spento. VGSp = −VDD quindi il transistore p è acceso. Fra VDD e massa non c’è corrente, dunque l’uscita è necessariamente VDD . Tale situazone si mantiene anche aumentando la Vin , fino a quando non si raggiunge la tensione necessaria affinché VGS superi la tensione di soglia. Tale tensione è detta tensione di overdrive: Vov = VGS − VT (10) • per Vin = VDD , VGSn = VDD e VGSp = 0: la situazione è del tutto simmetrica alla precedente: anche qui la corrente è nulla e, poiché l’unico transistore 12 acceso è quello n, la tensione d’uscita è necessariamente 0 fino a quando non si diminuisce Vi n fino a VDD − VT n • nella zona intermedia, tutti i transistori sono accesi. Se Vin − VT n > Vout il transistore n è in zona triodo, mentre se Vin − VT n < Vout esso lavora in zona di saturazione; viceversa per il transistore p. Figura 6: Caratteristica statica dell’invertitore CMOS Quando entrambi i transistori sono in saturazione, dalle espressioni della corrente si ricava che Vin non è più una funzione, bensì un numero: βn βp (Vin − VT n )2 = (Vin − VDD − VT p )2 ⇒ 2 2 s βn ⇒ (Vin − VT n ) = VT p − (Vin − VDD ) βp 13 Quindi qui la caratteristica è verticale e Vin è la soglia logica VLT . Nelle altre due zone, la caratteristica statica si raccorda con le due zone a corrente nulla. La soglia logica o logic threshold VLT dell’invertitore si può trovare semplicemente risolvendo la precedente equazione: r 0 W βn ( ) VDD + VT p + VT n β 0 WL n n ( L )p r 0 W VLT = (11) βn ( L ) n 1+ 0 βn ( W L )p La scelta di una VLT simmetrica è generalmente la migliore. In tal caso, VLT = VDD 2 La condizione affinché l’invertitore sia simmetrico è che i due transistori abbiano le stesse proprietà: W W 0 0 βn = βp L n L p Poiché la differenza fra la conducibilità intrinseca del transistore p e di quello n sta nella differenza fra le mobilità di elettroni e lacune, si ricava facilmente che µn W W = (12) L p µp L n dove generalmente µn µp ≈ 2, 5 ↔ 3. Volendo, spendendo un altro grado di libertà, si può progettare un gate ad area minima e simmetrico ponendo r L W µn = = (13) L p W n µp In realtà, l’invertitore ad area minima non è in generale il più conveniente: infatti ci si priva di un grado di libertà che invece si rivela utile per controllare il tempo di propagazione dell’invertitore. Il transitorio dell’invertitore è legato al suo carico: un oggetto piuttosto complesso poiché a carico di un gate ci saranno diversi altri gate oltre alle linee di interconnessione. In prima approssimazione, considereremo le interconnessioni 14 dei semplici corticircuiti caratterizzati da R = 0, L = 0, C = 0: i gate a carico, poichè il principale effetto parassita del transistore MOS sono le sue varie capacità, costituiscono un carico di tipo capacitivo. La seconda approssimazione è che, essendo tali capacità non lineari, le si assumeranno uguali ad una costante (peggiorativa) Cin che definiremo come capacità d’ingresso di un invertitore (per gate di tipo diverso, assumeremo la stessa Cin . Con tali approssimazioni, consideriamo il transitorio in discesa. All’inizio VDD − VT n 6 V0 , dunque il transistore è in saturazione: dV0 IC = −CL dt dV0 = dt −CL βn (VDD − VT n 2 Integrando fra VDD e VDD − VT n (zona di saturazione), si ottiene che τFsat = CL VT n βn (VDD − VT n )2 2 Per la zona triodo si considera −CL βn dV0 = dt (VDD − VT n )V0 − 21 V02 e si integra fra VDD − VT n e VOLmax : τFlin 1 2CL = βn 2(VDD − VT n ) 2(VDD − VT n ) − VOLmax log VOLmax Sommando le due componenti, si ottiene il tempo di discesa. Poiché, nel dimensionamento simmetrico, questo tempo coincide necessariamente con il tempo di salita, la media fra i due, cioè il tempo di propagazione, è 1 VT n 2(VDD − VT n ) − VOLmax 2CL 1 τPD = W 0 + log V − V V − V 2 VOLmax β DD T n DD T n n L n (14) Gli effetti delle interconnessioni, in effetti, si possono riassumere approssimativamente sostituendo le interconnessioni con celle RC. In tal caso le formule di Elmore permettono di stabilire un limite superiore per il ritardo delle celle: T 1 = R1 C 1 T2 = (R1 + R2 )C2 T3 = (R1 + R2 + R3 )C3 ... 15 (15) Inoltre, ad alte frequenze, gli effetti di tipo propagatorio non sono più secondari: dunque le linee di interconnessione devono essere modellate come celle RLC. Un altro fenomeni che complica ulteriormente la modellizzazione è il crosstalk: linee di interconnessione vicine possono accoppiarsi capacitivamente e quindi scambiarsi parte del segnale. Nel modello più semplice, le varie capacità parassite possono essere portate tutte all’ingresso del gate: le capacità che operano fra ingresso e uscita vengono moltiplicato per 1 − AV (effetto Miller). In questo modo, un modello ragionevole per la capacità d’ingresso dell’invertitore è ! W W + Cin = Ki Cox L2 = Ki Cox (WL)n + (WL)p ≈ 10−14 F (16) L n L p dove Ki è un coefficiente sull’ordine di 1-10 (se non segnalato, lo si suppone uguale a 1). La Cout avrà anch’essa una forma simile. Questo modello è ampiamente semplificato, ma permette di capire il funzionamento di un circuito senza complicazioni matematiche eccessive; per risultati più esatti è necessario simularlo. Un metodo ancora più semplificato per calcolare i tempi di propagazione è considerare il transistor come una resistenza equivalente controllata da un transistore: tale resistenza è calcolata come una media della funzione dVdDS IDS (VDS ) ed è detta resistenza equivalente. In questo modo il resistore può essere trattato esattamente come un comune circuito RC. Il tempo di salita o di discesa fra il 10% e il 90% è dunque t10%−90% = Req CL log 10 (17) mentre quello necessario per raggiungere la soglia logica è t50% = Req CL log 2 (18) Per il dimensionamento dei transistor, spesso conviene definire una resistenza equivalente di riferimento, cioè quella per VGS = VDD per il transitorio 10% − 90% e con W = 1. In tal caso, si può dimensionare un transistor utilizzando L questa formula: W Reqrif W = (19) L n Reqn L rif Ovviamente, lo stesso vale per transistori p. 16 Buffer e tri-state Generalmente i gate CMOS devono tenere a carico capacità dell’ordine di 10−14 F. Se le capacità sono più grandi, come spesso accade quando si esce dal chip, il modo più efficiente per gestirle mantenendo minimo il tempo di propagazione è utilizzare una serie di N invertitori sempre più grandi di un fattore G. Minimizzare il tempo di propagazione significa minimizzare τtot , essendo τtip e Ctip rispettivamente il tempo di propagazione e la capacità d’ingresso dell’invertitore a dimensionamento tipico: τtot = (N + 1)τtip G Ctip GN+1 = CL da cui Ponendo si ottiene G CL τtot = log log G Ctip τtip CL 1 N+1 = log log G Ctip dτtot =0 dG G=e (20) N = log CL Ctipica −1 Questo è anche il buffer ad area minima. In ogni caso, volendo utilizzare un diverso numero N di invertitori nel buffer, la soluzione migliore è porre s CL (21) G = N+1 Ctipica Un altro problema che può essere risolto con l’utilizzo dei buffer, oltre a grandi capacità a carico, è quello dei circuiti che condividono un’uscita. È chiaro se le uscite di due circuiti in parallelo sono ad esempio uno 0 ed 1, si forma sull’uscita comune un nodo di conduzione fra alimentazione e massa che non dovrebbe esistere e che assumerà un potenziale intermedio fra 0 e VDD . Per fare in modo che solo un circuito alla volta utilizzi una certa linea come uscita, e dunque evitare questo problema, si utilizzano i buffer tristate: buffer controllati da un segnale di enable che, se disattivato, porta l’uscita del buffer in uno stato 17 detto di alta impedenza. In tale stato tutti i transistor dello stadio finale del buffer sono spenti e dunque il nodo d’uscita è ad alta impedenza. Un simile buffer può essere realizzato facilmente anteponendo qualche stadio di circuiti logico agli invertitori del buffer. Dal punto di vista del dimensionamento, tali porte logiche (FCMOS) possono essere facilmente ricondotte ad invertitori e dunque non costituiscono un problema ulteriore. Gate FCMOS L’invertitore CMOS costituisce la base su cui vengono costruiti tutti i gate FCMOS. Tutti i gate sono costituiti da una rete di pull up di transistori PMOS e da una di pull down di transistori NMOS, dimensionate generalmente in modo simmetrico. La funzione logica della rete è già contenuta tutta in una delle due reti. Figura 7: Gate FCMOS generico La rete di pull up è posta fra uscita e alimentazione e ha il compito di tenere alta la tensione d’uscita; la rete di pull down è posta fra uscita e massa 18 ed ha il compito esattamente opposto. La procedura per implementare una funzione logica generica consiste solitamente nel ricondursi ad una forma del tipo f = (. . . ). In una forma del genere, nella rete di pull down gli OR sono costituiti da transistori in parallelo e gli AND da transistori in serie. Costruita la rete di pull down, si può costruire in modo simmetrico la rete di pull down, convertendo le serie in paralleli e i paralleli in serie. Alcune difficoltà nel progetto di gate FCMOS più complessi dell’invertitore sono: • transistori con VSB non sempre nullo, quindi presenza dell’effetto Body; • nodi di segnale non collegati a massa o alimentazione, quindi presenza di capacità equivalenti verso massa; • glitch dell’uscita, ovvero commutazioni non desiderate dovute al tempo di propagazione non nullo; • transistori in serie. In particolare, il fatto di avere transistori in serie limita la corrente e dunque rallenta i dispositivi. In prima approssimazione, non considerando l’effetto body, due transistori si comportano come un unico MOS di lunghezza doppia, ovvero, poiché I ∝ W , un unico MOS che conduce la metà. Per non peggiorare il tempo L di propagazione, dunque, è necessario dimensionare con un fattore di forma doppio rispetto al normale. In generale, per non sommare questo effetto a quello della minore mobilità nei transistori p, si cerca di tenere le serie di transistori il più possibile nella rete di pull down: ad esempio, il gate NAND è più piccolo del cugino NOR (se µµnp = 3, il NOR occupa 14 unità di area e il NAND 10). In generale, il fattore di forma equivalente di una serie di n transistor è W 1 W = (22) L eq n L Per non diminuire la velocità del gate, è dunque necessario sovradimensionare i transistor di un fattore n. 19 LOGICHE NON FCMOS Pass transistor e transfer gate Non tutte le funzioni logiche sono convenientemente implementate utilizzando solo logica FCMOS. Il modo più semplice per utilizzare i transistor è sfruttarli semplicemente come interruttori che permettono al segnale di passare oppure no: i pass transistor. Il suo funzionamento di base è ovvio: quando si ha una Figura 8: Pass transistor tensione alta sul gate, il segnale passa, altrimenti non passa. Molto più complessi e interessanti sono i suoi problemi: • portare a 1 l’uscita significa fondamentalmente caricare una capacità CL , operazione che gli NMOS svolgono in modo non molto efficiente. Infatti l’aumento della tensione di uscita (con VDD in ingresso) diminuisce l’overdrive: Vov = VDS − VT n = VDD − VCL − VT n Quando la tensione di uscita raggiunge VDD − VT n , il transistore si spegne, e l’uscita non raggiunge mai la tensione di alimentazione; • il problema al punto precedente è peggiorato dal fatto che VSB aumenta e dunque VT n > VT 0 per l’effetto body; • lo spegnimento del pass transistor (transizione 1 → 0 sul gate) porta alla formazione di un partitore capacitivo fra la capacità CL a carico e la capacità d’uscita del gate stesso: la tensione di uscita dunque si abbassa rispetto a quella a pass transistor acceso; tale fenomeno è denominato ripartizione di carica; • anche in condizioni statiche, con il pass transistor spento, il nodo d’uscita è ad alta impedenza e dunque la carica in esso contenuta tende a “sfuggire” anche per effetti piccolissimi come la corrente in inversa dei diodi contenuti nel transistor; 20 • il potenziale del condensatore è abbassato anche dalla carica contenuta nel canale che, quando il transistore viene spento, defluisce verso drain e source. I numerosi problemi del pass transistor (comunque non sufficienti a renderlo un oggetto inutile) sono in buona parte risolti nel transfer gate, che unisce un transistor NMOS con un PMOS che ha caratteristiche simili ma complementari (non è necessario che sia dimensionato in modo simmetrico). Il transfer gate Figura 9: Transfer gate compensa buona parte dei problemi del transfer gate e permette di portare a VDD l’uscita. Multiplexer a pass transistor Figura 10: Multiplexer a 2 ingressi 21 Un utilizzo particolarmente interessante del pass transistor è il multiplexer, circuito che permette di realizzare funzioni differenziate a seconda degli ingressi Vi . Con un MUX si può realizzare in teoria qualsiasi funzione logica; in pratica questo avviene a scapito della velocità, in particolare per la presenza di serie di molti transistor e per i difetti analizzati precedentemente. Ciononostante, la semplicità di questo circuito lo rende comunque attraente dal punto di vista progettuale. Circuiti domino Poiché in un circuito FCMOS la rete di pull down determina già l’intera funzione logica, è possibile costruire un circuito che comprenda solo questa parte. Tale circuito, però, sarà dinamico e non statico come un circuito FCMOS. Tale tipologia di circuiti è detta domino o ripple. Figura 11: Gate domino generico Il funzionamento del gate domino si suddivide in una fase di precarica in cui l’uscita OUT è incondizionatamente alta: CL = 0 e la “rete di pull up” costituita unicamente da un transistore p mantiene alta l’uscita. Quando CL = 1, si passa alla fase di valutazione, in cui la rete di pull down, attivata dal transistore n, 22 scarica il nodo OUT se necessario, a seconda degli ingressi e della funzione logica implementata. Di fatto, nella fase di precarica si assiste alla carica di un condensatore che nella fase di valutazione può essere scaricato, se si forma un percorso conduttivo verso massa, o mantenuto nel suo stato, nel caso che tale percorso non si ferma. In quest’ultimo caso, il nodo OUT è collegato al resto del circuito mediante transistori spenti: è un nodo ad alta impedenza che tenderà a scaricarsi in qualche modo se CL non è abbastanza rapido. Questo rende i circuiti domino di tipo dinamico. Tuttavia, non si tratta di circuiti sincroni poiché il segnale si propaga come in un blocco combinatorio. L’invertitore alla fine del circuito serve sia ad alzare la capacità per ridurre gli effetti di ripartizione di carica, sia per fare in modo che i transistori del successivo gate rimangano spenti in fase di precarica. La logica domino permette di ridurre l’area occupata da gate con molti transistor (quasi alla metà che nel caso FCMOS) ma in cambio richiede un clock e non è statica. Ripartizione di carica nei circuiti dinamici La ripartizione di carica o charge sharing è un fenomeno tipico dei circuiti dinamici, in cui l’informazione viene immagazzinata temporanemante in nodi ad alta impedenza sotto forma di carica elettrica. Figura 12: Ripartizione di carica Utilizzando un normale interruttore, che viene chiuso fra due capacità C1 e C2 , s ha che C1 V1 + C2 V2 Vf = C1 + C2 Utilizzando un transistor, sono in gioco anche due capacità parassite CA e CB . Se 23 ∆Φ è la variazione del clock che controlla il gate del pass transistor, Vf = V1 (C1 + CA ) + V2 (C2 + CB ) + ∆Φ(CA + CB ) C1 + C2 + CA + CB (23) La ripartizione di carica crea molti problemi per i circuiti dinamici, poiché quando si formano nodi ad alta impedenza (ad esempio nei circuiti domino se OUT non deve essere scaricato in fase di valutazione) si formano ovviamente paralleli di capacità parassite. Tenere alte le tensioni dei nodi per un tempo sufficiente è uno dei problemi principali di progetto nei circuiti dinamici. Circuiti sincroni Nei circuiti sincroni l’elaborazione avviene in due stadi, ripetuti in maniera successiva: una rete combinatoria che elabora i segnali binari in ingresso attraverso opportune funzioni logiche, separati attraverso un interruttore (temporizzato da un segnale di clock da blocchi di memoria che mantengono i valori ricevuti al precedente intervallo di clock e alimentano altre reti combinatorie: e il ciclo ricomincia. In questo modo l’elaborazione si “propaga” e in ogni periodo di clock una rete combinatoria elabora il risultato che la precedente rete combinatoria ha elaborato nel precedente periodo di clock. Figura 13: Esempio di circuito sincrono con due clock sfasati Il modo più inefficiente ma anche più semplice per far propagare l’elaborazione è mediante due clock sfasati Φ1 e Φ2 . È un metodo inefficiente, in quanto bisogna conoscere e mantenere costanti lungo tutto il chip ben due parametri: il periodo di clock (che deve essere paragonabile al tempo di propagazione τPD ) e soprattutto lo sfasamento, che è molto difficile da tenere costante. Nei chip moderni si usano dunque soluzioni differenti, ad esempio pass transistor alternativamente n e p controllati da un unico clock. Nei circuiti sincroni, il blocco di memoria può essere fondamentalmente di due tipi: memoria statica, che sfrutta la retroazione positiva di due invertitori per mantenere immagazzinato un dato, e memoria dinamica, che immagazzina l’informazione in una capacità (ad esempio nella capacità parassita di un transistore MOS), ma solo per un breve periodo di tempo. 24 MULTIVIBRATORI Multivibratori bistabili I multivibratori sono circuiti che sfruttano la retroazione positiva di invertitori per ottenere effetti particolari, quali memorizzare un dato, riportare un’uscita a un certo livello dopo qualche tempo o produrre una oscillazione. Figura 14: Bistabile fondamentale Il multivabratore più semplice, detto bistabile, è costituito da due invertitori chiusi in retroazione l’uno sull’altro. Un circuito di questo tipo ha tre punti di equilibrio: due in cui gli invertitori lavorano in “regime digitale” (con 1 e 0) e a guadagno praticamente nullo, e uno in cui tutte le tensioni corrispondono alla soglia logica VLT , e il guadagno è molto elevato. Mentre i primi due punti sono stabili, in quello ad alto guadagno basta una piccola perturbazione ed il circuito si porta autonomamente in una delle due situazioni stabili (questa è la ragione del suo nome). Aggiungendo qualche circuito per controllare il dato, il bistabile può essere reso adatto a memorizzare informazione in modo statico: questo tipo di circuiti sono denominati flip-flop. Figura 15: Flip-flop set-reset a livello logico Il più semplice flip-flop set-reset (reso sincrono mediante l’aggiunta dei due AND) ha una configurazione vietata: la 11 se è realizzato a NOR, la 00 a NAND. Passando a tale configurazione, infatti, il circuito diventa instabile e 25 quindi l’uscita assume un valore casuale, o 0 o 1. Il clock impedisce all’uscita di modificarsi fintantoché rimane a 0. Finché CK = 1, questo circuito però risente di ogni cambiamento sugli ingressi (anche uno non voluto): si dice che esso è sensibile ai livelli. In effetti non è necessario usare tutti quei gate per implementare un flip-flop SR: sono sufficienti 8 transistor. Il funzionamento del circuito ha comunque come cuore una coppia di invertitori. Figura 16: Flip-flop set-reset a livello circuitale Per eliminare la sensibilità ai livelli, si può rendere sensibile il circuito solo alle variazioni in un tempo pari al ritardo di propagazione di un invertitore, come avviene nel flip-flop SR che segue. Rimane ancora il problema degli ingressi vietati. Per eliminarlo, esistono svariate altre tipologie di flip-flop, quali il JK e il D, realizzabili anteponendo a un flip-flop SR altri circuiti logici. Inoltre, per utilizzare i flip-flop come linee di ritardo, esiste una particolare configurazione di due flip flop in cascata, detta master-slave. Tutte queste configurazioni sono molto utilizzate nei circuiti dinamici 26 Figura 17: Flip-flop set-reset non sensibile ai livelli Multivibratori monostabili Il multivibratore monostabile è un circuito che tende ad assumere un unico valore stabile, anche se viene commutato. La retroazione positiva rende piccolissimo il tempo di propagazione, che tende ad essere nullo rispetto alla costante di tempo RC del circuito. Figura 18: Multivibratore monostabile All’equilibrio, il condensatore C è un circuito aperto e così anche l’invertitore, che ha necessariamente ingresso alto e uscita bassa. Dunque il nodo A si trova a potenziale alto. Questo implica che in equilibrio C sia scarico. Il guadagno d’anello è nullo e il circuito è stabile. Mandando Vin a 1, il nodo A passa istantaneamente (per quanto detto prima sul tempo di propagazione) a 0 e, poiché in un tempo nullo la tensione sul condensatore non può cambiare, trascina a 0 anche il nodo B: questo effetto è denominato bootstrap. Trovandosi a potenziale basso ma collegato a VDD attraverso una resistenza, il condensatore tenderà a ricaricarsi portando in alto VB come un circuito di costante RC. Finché VB rimane sotto la soglia logica VLT , l’uscita del circuito rimane alta (indipendentemente da Vin 27 che nel frattempo può tornare basso). Non appena VB supera VLT , l’invertitore scatta portando a 0 l’uscita e facendo scattare la tensione VB a VDD + VLT (questo fra l’altro è l’unico modo per portare in un circuito digitale una tensione più alta dell’alimentazione). Dopo un tempo di scarica, anch’esso con costante RC, il circuito si ritrova nella situazione iniziale. La durata dell’impulso prodotto, sulla base di questo ragionamento, è data da t VB (t) = VB (∞) + VBin − VB (∞) e− RC t VLT = VDD (1 − e− RC ) per cui ∆t = RC log VDD VDD − VLT (24) Dopo la fine dell’impulso, prima di poterne produrre uno nuovo, bisogna aspettare che il condensatore si scarichi. Considerandolo scarico a VB = 1, 1VDD (in linea di principio ci vuole un tempo infinito per scaricarlo), il tempo di recupero è data da t 0, 1VDD = VLT e− RC e quindi ∆tR = RC log VLT 0, 1VDD (25) Multivibratori astabili Figura 19: Multivibratore astabile Il multivibratore astabile non ha un punto di lavoro stabile: l’unico punto di equilibrio è la soglia logica poiché, in condizioni statiche, il primo invertitore è retroazionato su se stesso e C è un circuito aperto. Se Vout commuta verso il basso, significa che l’ingresso del secondo invertitore ha commutato verso l’alto, 28 ovvero che VA è sceso sotto VLT . VA cerca di risalire verso VDD , ma quando arriva a VLT fa commutare gli invertitori e, per effetto bootstrap, è portato a VDD + VLT : comincia quindi un transitorio di discesa, ma di nuovo quando arriva a VLT fa commutare gli invertitori, e il ciclo ricomincia. L’astabile dunque genera un’onda quadra digitale. Il duty cycle può essere calcolato in modo analogo alla durata dell’impulso nel monostabile: l’intervallo di tempo in cui il segnale è basso è τL = RC log 2VDD − VLT VDD − VLT (26) mentre quello in cui il segnale è alto è τH = RC log VDD + VLT VLT (27) Questo circuito, contrariamente alle apparenze, non può essere utilizzato per generare il segnale di clock perché la costante RC non può essere troppo piccola (altrimenti entrano in gioco capacità e resistenze parassite che la renderebbero imprecisa). Per generare il clock si usano circuiti particolari con isteresi come il trigger di Schmitt. 29 LICENZA Questi appunti sono rilasciati sotto licenza Creative Commons BY-NC-SA. Chiunque è libero • di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest’opera • di modificare quest’opera a patto che • la paternità di questi appunti rimanga attribuita a me • non vengano utilizzati per fini commerciali • se modificati, vengano rilasciati nuovamente sotto licenza CC BY-NC-SA Per ulteriori informazioni sulla licenza, visitate http://creativecommons.org/licenses/by-nc-sa/3.0/deed.it L’immagine sulla copertina, rilasciata sotto licenza Creative Commons BY, è opera dell’utente naotakem su Flickr ed è reperibile all’indirizzo http://www.flickr.com/photos/naotakem/148029355/ Gli appunti sono rilasciati senza alcuna garanzia sulla loro correttezza: sono probabilmente pieni di lacune, errori (di battitura e/o di concetto) ecc. Se qualcuno rilevasse un errore di questo genere, è pregato di segnalarlo con un commento sul mio blog: http://www.arunax.netsons.org 30