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
Formula (ritardo di una catena di inverter). 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 –):
Esempio. Con , e fan-out ogni stadio ritarda .
Dimensionamento ottimo a fissato
Formula (dimensionamento ottimo della catena a N 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 :
Esempio. Con , e : e .
Gli stadi successivi al primo hanno fattori di scala rispetto al primo.
Numero ottimo di stadi
Formula (fan-out ottimo e 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.
Grafico interattivo: Ritardo t_p (ps) di un buffer in funzione del numero N di stadi, per F = C_L/C_in = 64, γ = 1,6, t_p0 = 15,4 ps e fan-out uguale in ogni stadio: 630, 184, 161, 170, 187 ps per N = 1…5, minimo a N = 3 con f = 4 (la curva unisce i valori interi: N non intero non ha significato)
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 inverter grande ha grande e carica la porta precedente, quindi 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 →); si usa una catena di inverter con dimensioni crescenti (buffer).
- Ritardo: con e (tipicamente –), e . Esempio: ps, , : ps per stadio.
- Ottimo a fisso: stesso fan-out per tutti gli stadi, con ; ogni dimensione è la media geometrica dei vicini; . Esempio: , , : e . Scale
- Numero ottimo di stadi: e : per , per , per . La curva è piatta: tra e è quasi equivalente.
- Esempio , : con vale : minimo a . Con i dati del corso (inverter , fF, fF, , ps) i ritardi sono , , , ps per ; dimensionamento .
- Parità: pari non inverte il segnale, dispari sì; se serve la stessa polarità si sceglie il pari vicino.
- Ring oscillator: dispari e almeno (ogni stadio sfasa al massimo di ); : con e ps, ps e GHz. Con un solo inverter l'uscita si ferma in .
- Errori: per l'oscillazione (serve ); invece di ; dimensioni in progressione aritmetica invece che geometrica; parità trascurata.