Catene di inverter e buffer CMOS
In questa pagina 6
Un inverter minimo ha una capacità di ingresso piccola ( di due transistor piccoli) ma una corrente piccola; se deve pilotare un carico grande (una linea lunga, un'uscita del chip, il decoder di una memoria) diventa enorme. Ingrandire direttamente l'inverter rende veloce l'uscita ma rende grande la capacità di ingresso, che carica la porta precedente: il ritardo si sposta a monte (Invertitore CMOS - ritardo di propagazioneIn commutazione l'inverter è un circuito RC del primo ordine: il tempo di propagazione al 50% vale t_p = ln2·τ = 0,69·R·C. Con R_n e R_p resistenze equivalenti e C_L = C_int + C_ext (intrinseca = capacità di drain di n-MOS e p-MOS; estrinseca = gate delle porte pilotate e interconnessioni): t_pHL = 0,69 R_n C_L, t_pLH = 0,69 R_p C_L. Con Z_p = βZ_n, R_p/R_n = r/β (r = R_p0/R_n0 ≈ 2,4): il bilanciamento dinamico (t_pHL = t_pLH) richiede β = r, mentre il minimo del ritardo medio con carico a gate si ha per β = √r. Moltiplicando Z_n e Z_p per S: t_p = t_p0 (1 + C_ext/(S C_int,ref)): a carico estrinseco dominante raddoppiare le larghezze dimezza il ritardo; con carico intrinseco dominante non cambia (autocaricamento).Invertitore CMOS - ritardo di propagazione →). La soluzione è un buffer: una catena di inverter di dimensioni gradualmente crescenti.
Domande: quanti stadi servono per minimizzare il ritardo, e come dimensionarli?
Ritardo di una catena
Siano inverter in cascata, con capacità di gate in ingresso e carico finale . Lo stadio è dimensionato come l'inverter di riferimento scalato di , quindi e . Il suo carico è la capacità intrinseca più l'ingresso dello stadio seguente: . Definito il fan-out e (rapporto tra capacità intrinseca e capacità di gate: tipicamente –):
Dimensionamento ottimo a fissato
Le incognite sono ( valori). Annullando le derivate parziali di si ottiene cioè tutti gli stadi hanno lo stesso fan-out (la dimensione di ciascuno è la media geometrica di quelle dei vicini, ) e quindi lo stesso ritardo. Posto , si ha : Gli stadi successivi al primo hanno fattori di scala rispetto al primo.
Numero ottimo di stadi
Con fissato, e il ritardo come funzione di è . Annullando la derivata: Per (autocaricamento trascurabile) e ; per , ; per , . La soluzione è piatta: scegliere tra e è quasi equivalente.
Esempio (con , in unità di ) per :
| 1 | 64 | 65 |
| 2 | 8 | 18 |
| 3 | 4 | 15 |
| 4 | 2,83 | 15,3 |
Il minimo è a (); con stadi si peggiora di poco () e si spreca area; con un solo inverter si è oltre quattro volte più lenti.
Esempio numerico con i dati del corso. L'inverter di riferimento ha , , , , , . Per un carico (): : ; (): ; (): ; (): ; : . Il minimo è a , con , e il dimensionamento è (e ): ogni inverter è quattro volte il precedente.
Parità degli stadi. Un numero pari di inverter non inverte il segnale, un numero dispari lo inverte: se serve la stessa polarità e l'ottimo è un numero dispari si sceglie pari vicino (di solito nell'esempio).
Altri vincoli
Altri requisiti possono alterare l'ottimo: la capacità di ingresso massima concessa alla porta che pilota il buffer, la minima potenza o area, il numero di stadi imposto dalla polarità. Il metodo è lo stesso: si fissa e si ripartisce il fan-out totale in parti uguali.
Ring oscillator
Collegando l'uscita di una catena di inverter al suo ingresso si ottiene un oscillatore ad anello. Perché oscilli servono un numero dispari di stadi (inversione totale: con un numero pari l'anello ha due stati stabili e memorizza un bit, come i due inverter di un latch: Latch, registri e parametri temporaliUn circuito sequenziale ha uno stato memorizzato in due modi: retroazione positiva (due inverter in anello, bistabile, i latch statici) o immagazzinamento di carica (circuiti dinamici). Un latch è sensibile al livello del clock (trasparente quando il clock è attivo, memorizza quando non lo è), un registro (flip-flop) è sensibile al fronte e si realizza con due latch sulle fasi opposte (master-slave). Il latch SR a porte NOR/NAND non ammette la combinazione S = R = 1 perché passando da lì alla memoria lo stato finale è imprevedibile. Parametri temporali del registro: ritardo clock-uscita t_c-q, tempo di setup t_su (dato stabile prima del fronte), tempo di hold t_hold (dato stabile dopo il fronte). Periodo minimo: T_min = t_c-q + t_p,logic(max) + t_su; vincolo di hold: t_cd,reg + t_cd,logic > t_hold. La pipeline spezza la logica con registri per aumentare la frequenza (a spese della latenza).Latch, registri e parametri temporali →) e almeno tre stadi: ogni stadio è un sistema del primo ordine, che sfasa al massimo di , e per ottenere di sfasamento complessivo con guadagno maggiore di servono almeno tre stadi ( ciascuno); con un solo inverter in retroazione l'uscita si ferma in (il punto instabile della VTC) senza oscillare. Il periodo è (il segnale deve attraversare l'anello due volte, una per la salita e una per la discesa di ogni nodo): con e , e . L'anello è usato per misurare di una tecnologia.
Errori comuni
- Usare come minimo per l'oscillazione: serve dispari, quindi .
- Sbagliare : (, rapporto totale), non .
- Dimensionare gli stadi in progressione aritmetica: devono essere in progressione geometrica.
- Dimenticare di verificare la parità: un buffer deve avere pari se non si vuole invertire il segnale.
Versione ripasso
- Perché: un solo inverter grande sposta il ritardo a monte (la sua è grande); si usa una catena con dimensioni crescenti.
- Ritardo: , , (–); .
- Ottimo a fisso: stesso fan-out (), dimensioni in media geometrica, stesso ritardo per stadio; ; scale
- ottimo: ( per ; per ; per ), ; minimo piatto.
- Esempio , : (minimo a , ); con i dati del corso ps per .
- Parità: pari non inverte, dispari inverte.
- Ring oscillator: dispari e ; (, ps: ps, GHz); con l'uscita resta in .
- Errori: per l'oscillazione; ; progressione aritmetica; parità trascurata.