FormularioElettronica dei Sistemi Digitali: definizioni, teoremi e formule delle note, in ordine di capitolo
In questa pagina 8
I. Fondamenti dei sistemi digitali
Segnali digitali, livelli logici e margini di rumore
Definizione (livelli logici di uscita e soglie di ingresso). In una porta reale i valori logici corrispondono a intervalli di tensione, non a valori esatti. Per l'uscita si definiscono
- : la tensione massima che l'uscita può avere quando rappresenta lo (uscita valida come se );
- : la tensione minima quando rappresenta l' ().
Per l'ingresso si definiscono
- : tensione massima interpretata come dalla porta che riceve ();
- : tensione minima interpretata come ().
Gli intervalli di ingresso sono più ampi di quelli di uscita: . Fra e si trova la regione di transizione (non valida). I valori che separano le due rappresentazioni sono le soglie logiche.
Esempio. Una porta con , , e rispetta ; una tensione di cade nella regione di transizione.
Definizione (margini di rumore). Quando la porta A pilota la porta B, il segnale può essere disturbato; il disturbo massimo tollerabile senza errori è il margine di rumore:
Esempio. Un'uscita garantisce e e l'ingresso della porta seguente legge sotto e sopra . Allora e : un disturbo di sovrapposto a un livello alto o basso non cambia il valore logico; uno di potrebbe farlo.
Definizione (caratteristica di trasferimento statica e soglie). La caratteristica di trasferimento statica (VTC, voltage transfer characteristic) è il grafico di in funzione di in condizioni stazionarie. Per un inverter (Invertitore CMOS - caratteristica di trasferimento staticaL'inverter CMOS ha un p-MOS verso V_DD e un n-MOS verso massa con gli ingressi collegati: V_OH = V_DD, V_OL = 0, nessun cammino diretto in continua (consumo statico nullo). La VTC ha cinque regioni (n-MOS off; n sat/p lin; entrambi sat in V_M; n lin/p sat; p off). Con entrambi in saturazione e λ = 0: V_M = (V_Tn + r(V_DD + V_Tp))/(1 + r) con r = √(|k'_p|Z_p/(k'_n Z_n)). Bilanciamento statico (V_M = V_DD/2 con V_Tn = |V_Tp|): Z_p/Z_n = k'_n/|k'_p| (circa 3,8). Scalare Z_n e Z_p dello stesso fattore lascia V_M invariata e moltiplica la corrente di picco; aumentare Z_p/Z_n alza V_M, V_IL e V_IH; V_M segue V_DD. Margini NM_L = V_IL, NM_H = V_DD − V_IH (circa 1 V a 2,5 V).Invertitore CMOS - caratteristica di trasferimento statica →) è decrescente: bassa alta e viceversa.
- La tensione di soglia logica è il punto in cui (l'intersezione della VTC con la retta a ): .
- e sono i due punti in cui la pendenza (guadagno) vale : tra di loro il guadagno in modulo è maggiore di (zona di transizione), fuori è minore di .
- e sono le uscite corrispondenti agli ingressi estremi ( e ); per l'inverter CMOS sono e .
Esempio. Per l'inverter di riferimento con : , e , con e .
Grafico interattivo: VTC di un inverter CMOS (V_DD = 2,5 V, Z_n = 3, Z_p = 11,5, tecnologia a 0,25 µm): V_out in funzione di V_in, tratto piatto a 2,5 V fino a circa 1 V, transizione ripida in V_M ≈ 1,26 V, poi 0 V
Definizione (porta rigenerativa). Una porta è rigenerativa se, applicando in ingresso un livello degradato (lontano dai valori nominali ma dalla parte giusta di ), l'uscita è più vicina al valore nominale: collegando in cascata più porte, i livelli si ripuliscono stadio dopo stadio. Condizione: la VTC ha pendenza (in modulo) maggiore di nella regione di transizione, e quindi guadagno minore di fuori di essa, dove i livelli vengono "schiacciati" verso i valori nominali.
Esempio numerico (inverter di riferimento del grafico, ). Un ingresso è uno degradato (sotto ma lontano da ): la catena di inverter dà . Un ingresso è un degradato, appena sopra : la catena dà . Già dal secondo stadio i livelli sono quelli nominali, anche se il segnale di partenza era quasi a metà strada. I valori di per questo inverter sono circa e , quindi i margini valgono circa e (con e ).
Grafico interattivo: VTC di un inverter bilanciato (V_DD = 2,5 V, modello a λ = 0) con i punti a pendenza −1: V_IL = 1,04 V (uscita 2,29 V) e V_IH = 1,46 V (uscita 0,21 V); con V_OH = V_DD = 2,5 V e V_OL = 0 i margini sono NM_L = 1,04 − 0 = 1,04 V e NM_H = 2,5 − 1,46 = 1,04 V
Definizione (tempi di propagazione, di salita e di discesa). Altre figure di merito sono il consumo di potenza (energia assorbita per operazione) e i tempi di propagazione (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 →):
- e si misurano dal dell'escursione dell'ingresso al di quella dell'uscita; l'etichetta indica la transizione dell'uscita (HL: alto basso). In generale ; spesso si usa la media .
- Tempi di salita e discesa e : variazione dell'uscita dal al (e viceversa).
Esempio. Con e : .
Rappresentazione dei numeri e dell'informazione
Definizione (numeri senza segno su N bit). Con bit il valore è e l'intervallo rappresentabile è . Il bit è il più significativo (MSB), il meno significativo (LSB).
Esempio. Con : , nell'intervallo –.
Definizione (complemento a due). Nel complemento a due su bit il bit più significativo ha peso negativo:
Esempio. Su bit: .
Proprietà (negazione, estensione di segno, sottrazione e overflow nel complemento a due).
- Negare un numero: si invertono tutti i bit e si somma . ; invertendo ; sommando : (controllo: ).
- Estensione di segno: per passare da a bit si replica l'MSB: su bit non esiste, su bit diventa su .
- Sottrazione : è la riga
A + (not B) + 1dell'ALU di esempio (Blocchi logici di un microprocessore - ALU, bus e logica tri-stateUn microprocessore semplice è formato da un'unità di controllo (decodifica le istruzioni e abilita gli altri blocchi), una ALU (operazioni aritmetiche e logiche), la memoria e i registri, collegati da bus (linee condivise unidirezionali o bidirezionali). La ALU combina un sommatore con un'unità logica e un multiplexer di selezione dell'operazione: la sottrazione è A + B̄ + 1 (XOR su B e riporto in ingresso a 1), le flag (zero, riporto, segno, overflow) descrivono il risultato. Un bus è una linea pilotata da più sorgenti: per evitare conflitti ogni uscita collegata è tri-state (il segnale enable la mette in alta impedenza) oppure open-drain (solo PDN: ciascuna può imporre 0, serve un pull-up per l'1).Blocchi logici di un microprocessore - ALU, bus e logica tri-state →).- Overflow: il risultato esce dall'intervallo quando due operandi dello stesso segno danno un risultato di segno opposto (su bit: dà ).
Esempio. ; invertendo i bit si ha e sommando si ottiene .
Proprietà (conversione da binario a BCD, double dabble). Conversione binario BCD (double dabble). Si scorre il binario a sinistra un bit alla volta nel registro BCD; prima di ogni shift, se un gruppo di bit del BCD è maggiore di , gli si somma . Il motivo: un gruppo che vale raddoppiato darebbe (non ammesso in BCD), mentre , cioè una decina e zero unità; per un gruppo il doppio è e non crea problemi. Per (8 passi):
Esempio. Per servono passi e si ottiene (cifre , , ); un gruppo che vale prima dello shift diventa e raddoppiato dà , cioè una decina.
Definizione (codice Gray). Nel codice Gray due valori consecutivi differiscono per un solo bit: . Per bit: . Serve dove un conteggio potrebbe essere letto durante una transizione (codificatori ottici, contatori che attraversano domini di clock diversi): in binario il passaggio cambia tre bit, e con tempi diversi si potrebbe leggere o ; in Gray si legge sempre o il vecchio o il nuovo valore.
Esempio. Con : ; con : . Il passaggio cambia tre bit in binario () e uno solo in Gray ().
II. Il transistor MOS
Il transistor MOS come interruttore - soglia, caratteristiche e capacità
Formula (tensione di soglia ed effetto body). La tensione di soglia è il valore minimo di che porta il canale in inversione. Dipende anche dalla polarizzazione del bulk rispetto al source:
Esempio numerico (, , ): per , ; per , ; per , . L'effetto è rilevante nei circuiti digitali quando il source di un n-MOS si innalza (porte in serie, pass-transistor: Logica a pass-transistor e gate di trasmissioneNella logica a pass-transistor gli ingressi pilotano sia i gate sia i terminali di source/drain di una rete di interruttori (N transistor per N ingressi, nessun consumo statico, alcune funzioni, come AND, MUX e XOR, richiedono pochi transistor). Gli n-MOS trasmettono bene gli 0 ma male gli 1 (V_DD − V_Tn, con effetto body: circa 1,8 V da 2,5 V), i p-MOS al contrario (V_Tp in modulo per lo 0): il livello degradato non è rigenerato e può far condurre un inverter successivo (consumo statico). Il gate di trasmissione (n-MOS e p-MOS in parallelo, con G e nG complementari) trasmette bene entrambi i livelli, con resistenza R_n‖R_p quasi costante, ma costa due transistor e raddoppia le capacità. Una catena di n pass-transistor ha ritardo ∝ n² (Elmore, 0,69 R C n(n+1)/2): si inseriscono buffer ogni m = 1,7√(t_buf/(R_eq C)) stadi.Logica a pass-transistor e gate di trasmissione →); nei temi d'esame, dove manca il valore di , si assegna direttamente la variazione ().
Formula (corrente del MOS nelle tre regioni di funzionamento).
regione condizione n-MOS corrente n-MOS spento lineare (resistiva) saturazione
Esempio. n-MOS con , , , : e . Con è lineare: . Con è in saturazione: (senza : ).
Grafico interattivo: Corrente di drain I_D (µA) di un n-MOS con k'_n Z = 345 µA/V², V_T = 0,4 V, V_GS = 2,5 V, in funzione di V_DS (V), con λ = 0: tratto lineare fino a V_DS = 2,1 V, poi saturazione
Formula (capacità di gate e di giunzione del MOS). Il comportamento dinamico dipende dalle capacità parassite tra i terminali (gate-canale, gate-source/drain per sovrapposizione, giunzioni source-bulk e drain-bulk):
- Capacità di gate (modello semplificato): , con (fF/). È proporzionale all'area del gate (), non solo a . Esempio: , , : .
- Capacità di giunzione di source e di drain: , con , in fF/ (– negli esempi d'esame). Sono proporzionali a e indipendenti da (dipendono dall'area di diffusione, larga , e dal suo bordo; le due componenti sono "fondo" e "bordo"). Il drain e il source diffusi hanno una giunzione verso il bulk: raddoppiando la capacità source-bulk raddoppia.
Esempio. , : .
Formula (resistenza equivalente del MOS e dipendenza da Z). Quando è al massimo () il transistor è una resistenza tra source e drain; durante una commutazione il punto di lavoro percorre la caratteristica tra saturazione e zona lineare. Si definisce una resistenza equivalente (media di nel tratto da a ): Poiché , : si indica (n-MOS) e (p-MOS) il valore per , e per un transistor di fattore
Esempio di scalatura (tema d'esame). Un n-MOS con () ha e . Con (, quadruplicata e uguale): le capacità di drain e source diventano e la resistenza diventa . Ricorda: più grande è il transistor, più velocemente carica o scarica (resistenza minore) ma più carica (capacità maggiore) il nodo che lo precede.
III. L'invertitore CMOS
Invertitore CMOS - caratteristica di trasferimento statica
Formula (soglia logica dell'inverter CMOS). La soglia logica è il valore di per cui . Con i due transistor sono necessariamente entrambi in saturazione, qualunque sia : per l'n-MOS , e per il p-MOS . Con si uguagliano le correnti di saturazione: e, estraendo la radice (stesso segno delle tensioni di gate-soglia),
Esempio (, , , , ). Con , : e , minore di . Con : ; con : .
Grafico interattivo: Soglia logica V_M (V) di un inverter a 0,25 µm in funzione del rapporto Z_p/Z_n (da 0,5 a 16): V_M cresce con Z_p/Z_n e vale V_DD/2 = 1,25 V per Z_p/Z_n = 3,83
Formula (bilanciamento statico dell'inverter CMOS). Si dice staticamente bilanciato un inverter con (caratteristica simmetrica, margini di rumore uguali, e simmetrici). Imponendo nella relazione precedente:
Esempio. Con , e : ; per serve .
Formula (margini di rumore dell'inverter CMOS). e sono i punti con pendenza (le uscite e sono le tensioni nominali):
Esempio. Per l'inverter bilanciato con : e , quindi e .
Invertitore CMOS - ritardo di propagazione
Formula (tempi di propagazione dell'inverter CMOS). Quando passa da a il p-MOS si spegne e l'n-MOS si accende: la capacità di carico (carica a ) si scarica attraverso (transizione alto basso, HL). Quando passa da a il p-MOS carica attraverso (transizione basso alto, LH). Entrambi sono circuiti RC con costante di tempo ; la tensione di uscita in una carica da è e raggiunge il di quando : Quindi
Esempio. Con e : .
Definizione (capacità di carico: intrinseca ed estrinseca). è la somma di due contributi:
- capacità intrinseca : dovuta ai transistor che pilotano il nodo di uscita, cioè le capacità di drain di n-MOS e p-MOS, (più, in modelli accurati, l'accoppiamento gate-drain);
- capacità estrinseca : i gate delle porte pilotate ( se il carico è un altro inverter) più la capacità dell'interconnessione .
Quindi .
Esempio numerico (dati d'esame a : , , , ). Inverter con () e ():
- , (uguali: bilanciato dinamicamente);
- , , ;
- senza carico esterno: ; con : .
Grafico interattivo: Tensione di uscita (V) dell'inverter bilanciato (R = 6,5 kΩ, C_L = 23,42 fF, τ = RC_L = 152 ps, V_DD = 2,5 V) dopo la commutazione dell'ingresso a t = 0, tempo in ps: la salita (carica da 0) e la discesa (scarica da V_DD) passano per il 50% di V_DD nello stesso istante t_p = 0,69τ = 105 ps
Formula (ritardi dell'inverter con Zp = β Zn, solo carico intrinseco). Posto e (con ; qui ):
Esempio. Con e si ha e quindi ; con è e risulta maggiore di .
Formula (bilanciamento dinamico e rapporto ottimo per il ritardo medio).
- Il bilanciamento dinamico è la condizione , cioè , cioè . Diverso dal bilanciamento statico ( per i dati del corso): il primo uguaglia le resistenze, il secondo le soglie.
- Con un carico a gate (inverter che ne pilota un altro, del p-MOS ): e Se è trascurabile, , e annullando la derivata () si trova il minimo per (con interconnessioni, ): il rapporto che minimizza il ritardo medio è più piccolo di quello del bilanciamento (qui contro ), perché un p-MOS più largo carica di più anche il gate dello stadio precedente. Il guadagno è modesto: con , , per : per , per e per , per (la curva è simmetrica in ).
Esempio. Con : il bilanciamento dinamico richiede , mentre il ritardo medio con carico a gate è minimo per .
Grafico interattivo: Ritardo medio t_p (ps) di un inverter con carico a gate in funzione di β = Z_p/Z_n (r = 2,42, C_w = 0): minimo per β = √r = 1,56 (23,8 ps); β = 2,42 (bilanciamento dinamico) dà 24,9 ps
Formula (ritardo di un inverter scalato di un fattore S). Sia (bilanciato dinamicamente), e la capacità intrinseca dell'inverter di riferimento (quello minimo). Allora Moltiplicando e per un fattore : e , quindi
Esempio. Inverter di riferimento , (, ): . Con : : ; : ; : ; : ; : ; limite . Da in poi il guadagno marginale è piccolo mentre area e capacità di ingresso (che carica lo stadio precedente) crescono: è l'idea del buffer (Catene di inverter e buffer CMOSPer pilotare un carico grande C_L partendo da un ingresso piccolo C_in si usa una catena di N inverter di dimensioni crescenti (buffer). Il ritardo totale è t_p = t_p0 Σ (1 + f_j/γ), con f_j = C_gin,j+1/C_gin,j il fan-out dello stadio j e γ = C_int/C_g (circa 1-2). Il minimo, a N fissato, si ha con lo stesso fan-out in tutti gli stadi, f = F^(1/N) con F = C_L/C_in (ogni stadio è la media geometrica dei vicini e ha lo stesso ritardo): t_p = N t_p0 (1 + F^(1/N)/γ). Il numero ottimo di stadi si trova da ln f = 1 + γ/f (f = e per γ = 0, f ≈ 3,6 per γ = 1, N = ln F / ln f). Un anello di N inverter (N dispari, N ≥ 3) oscilla con periodo 2N t_p.Catene di inverter e buffer CMOS →).
Grafico interattivo: Ritardo t_p (ps) in funzione del fattore di scala S (asse logaritmico) per C_ext = 50 fF: da 464 ps (S = 1) a 240, 105 e 60 ps (S = 2, 5, 10), poi la curva si appiattisce sul limite t_p0 = 15,3 ps del solo carico intrinseco
Catene di inverter e buffer CMOS
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 .
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 .
Formula (fan-out ottimo e numero ottimo di stadi). Con fissato, e il ritardo come funzione di è . Annullando la derivata:
Esempio (con , in unità di ) per :
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)
Consumo di potenza nei circuiti CMOS
Definizione (potenza istantanea e potenza media). La potenza istantanea assorbita dall'alimentazione è ; la potenza di picco è e la potenza media su un periodo è
Esempio. Una corrente di alimentazione di per il del periodo (e nulla altrove) con dà .
Formula (energia assorbita dall'alimentazione nella carica di una capacità). Carica (uscita attraverso il p-MOS): la corrente fornita da è quella che entra in , , quindi
Esempio. Con e : , di cui restano in e altrettanti sono dissipati nel p-MOS.
Formula (potenza dinamica della logica CMOS). Un ciclo completo (carica e scarica) assorbe . Se l'uscita compie transizioni al secondo,
Esempio. , , , : . A : . Con (metà): , un quarto.
Grafico interattivo: Potenza dinamica P = C_L·V_DD²·f (µW) in funzione della frequenza f (MHz) per C_L = 50 fF e α = 1: retta di pendenza 0,3125 µW/MHz a V_DD = 2,5 V (31,25 µW a 100 MHz, 312,5 µW a 1 GHz) e quattro volte più bassa a V_DD = 1,25 V (7,8 µW a 100 MHz)
IV. Porte logiche CMOS e processo di fabbricazione
Porte logiche CMOS - struttura statica complementare e dimensionamento
Definizione (porta CMOS statica complementare: reti PDN e PUN duali). Una porta statica complementare è formata da
- una rete di pull-down (PDN) di n-MOS tra l'uscita e massa;
- una rete di pull-up (PUN) di p-MOS tra e l'uscita;
- gli stessi ingressi pilotano i gate di entrambe.
La PDN, con i transistor chiusi sugli ingressi alti, realizza la funzione e, quando conduce, porta l'uscita a : l'uscita è . La PUN è la duale della PDN: dove la PDN ha una serie, la PUN ha un parallelo, e viceversa. Per costruire la PDN a partire dalla funzione: , con in forma AND (serie) / OR (parallelo) di sottoreti; la PUN si ottiene scambiando serie e parallelo (scomposizione gerarchica in sottoreti). Così per ogni combinazione degli ingressi esattamente una delle due reti conduce: non c'è mai un cammino diretto -massa (consumo statico nullo) e l'uscita non è mai flottante.
Esempio. La NAND2 ha PDN con due n-MOS in serie e PUN con due p-MOS in parallelo: per conduce solo la PDN (), per solo la PUN ().
Formula (dimensionamento con la regola del cammino più lungo).
porta (n-MOS) (p-MOS) inverter NAND2 ciascuno (serie di 2) ciascuno (paralleli) NOR2 ciascuno (paralleli) ciascuno (serie di 2) NAND3 NOR3 : ; : (cammini , di 2) : (cammino di 3); : (cammino di 2)
Esempio. Con : la NAND2 ha e , la NOR2 ha e , la NAND3 ha e .
Formula (dimensionamento per una resistenza assegnata). Dimensionamento per un valore assegnato. Dato che nel caso peggiore la resistenza del pull-down vale ( n-MOS in serie di fattore uguale), per ottenere occorre . Analogamente per il pull-up (con p-MOS in serie nel cammino peggiore). Per avere pull-up uguale al pull-down basta .
Esempio. , , . PDN: serie di e in parallelo a ; PUN: in serie al parallelo di e . Il cammino peggiore del pull-down è – (): per serve per tutti gli n-MOS ( ciascuno). Il cammino peggiore del pull-up è + uno tra , (): . Esercizio completo: Esercizio 1 · porta AOI a tre ingressi, dimensionamento, ritardi e consumo dinamico (tema d'esame giugno 2025).
Porte logiche CMOS - ritardo di Elmore, fan-in e consumo
Formula (caso peggiore di NAND2 e NOR2). Se (n-MOS e p-MOS con resistenze equivalenti uguali), nel caso peggiore e , quindi . Per una NOR a 2 ingressi i ruoli si invertono: (un solo n-MOS acceso nel caso peggiore) e , quindi (con ). Per questo, se tutti i transistor sono di dimensione minima, è conveniente dimensionare la porta con la regola del cammino più lungo (così nel caso peggiore).
Esempio. NAND2 con e : e .
Formula (ritardo di Elmore per una catena di transistor in serie). Con transistor in serie si ha una catena con una capacità a ciascun nodo. Il ritardo al del nodo di uscita, approssimato con il metodo di Elmore, è dove è la resistenza condivisa tra il cammino della corrente verso il nodo e quello verso l'uscita: per una catena a partire dal generatore (massa o ), la resistenza totale tra il nodo e il generatore. Per n-MOS in serie con resistenza equivalente ciascuno, numerando il nodo vicino a massa e l'uscita:
Esempio numerico. NAND a 3 ingressi, , (dati del corso: , , , ), .
- per transistor; .
- , .
- Nodi interni (tra due n-MOS: source e drain): ; uscita: un drain n-MOS e tre drain p-MOS più il carico: .
- .
- (caso peggiore, un solo p-MOS acceso): (migliore: ). Con lo stesso carico un inverter di riferimento impiega : la NAND3 è più lenta di circa il nel caso peggiore, anche se è stata dimensionata per uguagliarne la resistenza, a causa dei nodi interni e delle capacità di uscita maggiori.
Formula (ritardo di NOR e NAND a N ingressi: dipendenza quadratica dal fan-in). Con tutti i transistor della stessa dimensione e trascurando le capacità dei nodi interni, per una NOR a ingressi (PUN: p-MOS in serie; PDN: n-MOS in parallelo), detta la capacità di drain e source di ogni transistor:
- il nodo di uscita ha drain di n-MOS e uno di p-MOS: ;
- (caso peggiore: p-MOS in serie, resistenza , capacità ) — quadratico in ;
- (un solo n-MOS acceso): lineare. Analogamente per una NAND a ingressi: e . Se si considerassero anche i nodi interni, con capacità , il ritardo diventerebbe .
Esempio. , : : : ; : ( volte); : ( volte). In generale : dipendenza quadratica dal fan-in (resistenza e capacità crescono entrambe) e lineare dal fan-out (ogni porta pilotata aggiunge due capacità di gate a ). Si evitano porte con fan-in maggiore di 4.
Grafico interattivo: t_pLH (ps) di una NOR a N ingressi (R_p = 10 kΩ, C = 2 fF, nodi interni trascurati) in funzione del fan-in N: 13,8·N(N+1) cresce in modo quadratico, 83 ps per N = 2, 276 ps per N = 4 (3,3 volte), 994 ps per N = 8 (12 volte)
Processo di fabbricazione CMOS, layout e parassiti
Formula (resistenza di una pista e resistenza quadra).
- Resistenze: ogni layer ha resistività non nulla. Per una pista di lunghezza , larghezza e spessore : , con la resistenza quadra (in ) e numero di quadrati. Esempio: pista di polisilicio con , lunga e larga : quadrati, . Solo e sono parametri del progettista.
Esempio. Pista di polisilicio con , lunga e larga : quadrati e .
Formula (capacità di una pista: area e bordo). 2. Capacità: ogni layer forma con il bulk una capacità con l'ossido come dielettrico, (sottile sotto il gate; spesso, e quindi molto più piccola per unità di area, altrove). Per una pista si conta l'area e il bordo (i campi di bordo, fringing): con in fF/ e in fF/. Ci sono anche le capacità tra layer sovrapposti e le capacità mutue tra piste parallele (inversamente proporzionali alla distanza: cross-talk).
Esempio. Pista di con e : .
Logica pseudo-nMOS e logiche a carico
Formula (livello logico basso della logica pseudo-nMOS). Con e un solo ramo conduttivo (caso peggiore, PDN equivalente con fattore ) l'n-MOS ha piccolo ed è in zona lineare, il p-MOS ha grande ed è in saturazione (per ). Uguagliando le correnti: Equazione di secondo grado in (scegliere la radice con ). Si verifica poi la regione dei due transistor. Per e vale l'approssimazione
Esempio (, , , , , , ). Inverter pseudo-nMOS con , : (con : ; l'approssimazione dà ). Con , : . Più grande è , più basso è il livello; ma non può mai raggiungere . La porta riesce a pilotare un ingresso solo se della porta pilotata con margine sufficiente; ogni riduzione di costa area.
Formula (ritardi della logica pseudo-nMOS).
- Salita (): l'uscita è caricata dal solo p-MOS di carico (la PDN è aperta): con , e è piccolo: la transizione è lenta.
- Discesa (): l'uscita è scaricata dalla PDN (nel caso peggiore con tutti i transistor in serie del ramo, valutato con Elmore: Porte logiche CMOS - ritardo di Elmore, fan-in e consumoIl ritardo di una porta dipende dalla configurazione degli ingressi: si calcola il caso peggiore (un solo cammino conduttivo, il più resistivo) e il caso migliore. Per una rete RC con transistor in serie si usa il ritardo di Elmore: t = 0,69 Σ_k C_k · R_k, con R_k la resistenza totale tra il nodo k e il generatore (massa o V_DD) lungo il cammino e C_k la capacità del nodo. Per NAND2 con R_n = R_p: t_pLH (caso peggiore) = 0,69 R_p C, t_pHL = 0,69·2R_n C, quindi t_pHL = 2 t_pLH; per NOR2 è l'opposto. Una NOR a N ingressi (tutti i transistor uguali, nodi interni trascurati): t_pLH = 0,69 R_p C N(N+1), t_pHL = 0,69 R_n C (N+1): il ritardo cresce col quadrato del fan-in, perciò si evitano fan-in maggiori di 4. Rimedi: dimensionamento progressivo (transistor più grandi dal lato opposto all'uscita), riordino degli ingressi (il più tardivo vicino all'uscita), cascata di porte con meno ingressi, buffer. La potenza dinamica dipende dalla probabilità di commutazione.Porte logiche CMOS - ritardo di Elmore, fan-in e consumo →), con grande: veloce. Il p-MOS di carico sottrae parte della corrente (contrasto): si approssima e si trascura il contrasto, ma è un'approssimazione ottimistica.
Esempio. Con , e : e .
Logica a pass-transistor e gate di trasmissione
Formula (livello alto trasmesso da un pass-transistor n-MOS). Un n-MOS con il gate a trasmette bene il livello basso: porta il nodo di uscita a perché finché il nodo scende. Trasmette invece male il livello alto: se l'ingresso è l'uscita sale finché scende fino a , quindi si ferma a
Esempio. Con e una soglia (con effetto body) l'uscita alta è .
Formula (ritardo di Elmore di una catena di pass-transistor). Una catena di pass-transistor equivale a una scala RC: resistenze in serie, con una capacità (somma di source, drain) per nodo. Il ritardo di Elmore (peso per la capacità del nodo , perché vede resistenze: Porte logiche CMOS - ritardo di Elmore, fan-in e consumoIl ritardo di una porta dipende dalla configurazione degli ingressi: si calcola il caso peggiore (un solo cammino conduttivo, il più resistivo) e il caso migliore. Per una rete RC con transistor in serie si usa il ritardo di Elmore: t = 0,69 Σ_k C_k · R_k, con R_k la resistenza totale tra il nodo k e il generatore (massa o V_DD) lungo il cammino e C_k la capacità del nodo. Per NAND2 con R_n = R_p: t_pLH (caso peggiore) = 0,69 R_p C, t_pHL = 0,69·2R_n C, quindi t_pHL = 2 t_pLH; per NOR2 è l'opposto. Una NOR a N ingressi (tutti i transistor uguali, nodi interni trascurati): t_pLH = 0,69 R_p C N(N+1), t_pHL = 0,69 R_n C (N+1): il ritardo cresce col quadrato del fan-in, perciò si evitano fan-in maggiori di 4. Rimedi: dimensionamento progressivo (transistor più grandi dal lato opposto all'uscita), riordino degli ingressi (il più tardivo vicino all'uscita), cascata di porte con meno ingressi, buffer. La potenza dinamica dipende dalla probabilità di commutazione.Porte logiche CMOS - ritardo di Elmore, fan-in e consumo →) è
Esempio. Con e : .
Formula (buffer in una catena di pass-transistor: m ottimo). Il ritardo cresce col quadrato del numero di stadi. Per ridurlo si inseriscono buffer (inverter, che rigenerano il livello e interrompono la scala) ogni pass-transistor: con minimo per
Esempio: , , (), . Senza buffer ; con un buffer ogni stadi: : ; : ; : ; : ; . Il buffer è utile anche perché ripristina il livello degradato: perciò inserire buffer in una lunga catena di pass-transistor serve a ripristinare i livelli logici e a ridurre il ritardo complessivo.
Logiche dinamiche - precarica e valutazione
Definizione (porta dinamica: fasi di precarica e di valutazione). Funzionamento in due fasi:
- Precarica (): acceso, spento. L'uscita viene caricata a (attraverso , con costante di tempo , della precarica), indipendentemente dagli ingressi (nessun cammino a massa).
- Valutazione (): spento, acceso. Se la PDN conduce (ingressi tali che ) l'uscita si scarica a ( con la serie di PDN e ); altrimenti l'uscita resta a , conservata come carica su . Dunque dopo la valutazione .
Esempio. Con : in precarica () l'uscita sale a ; in valutazione (), se la PDN conduce, scende a con (per e : ), altrimenti resta a .
V. Elementi di memoria
Latch, registri e parametri temporali
Definizione (latch e registro). Nel libro adottato un latch è sensibile al livello del clock, un registro è edge-triggered (sensibile al fronte). Molti testi chiamano flip-flop i dispositivi edge-triggered. Le due famiglie:
- latch trasparente a clock alto (positivo): se l'uscita segue l'ingresso (), se l'uscita mantiene il valore. Equazione: (un multiplexer con uscita retroazionata). Il latch negativo è il duale (trasparente per ).
- registro: campiona sul fronte del clock (di salita, per convenzione) e mantiene per tutto il periodo.
Esempio. Latch positivo con e : ; se poi e torna a , resta . Un registro invece campiona solo sul fronte di salita del clock.
Definizione (tempo clock-uscita, di setup e di hold). Per un registro D (campionamento sul fronte di clock):
- tempo di propagazione clock-uscita : ritardo tra il fronte di clock e la commutazione dell'uscita (non tra e );
- tempo di setup : tempo per cui il dato deve rimanere stabile prima del fronte;
- tempo di hold : tempo per cui deve rimanere stabile dopo il fronte. Se cambia dentro la finestra attorno al fronte, il registro può non campionare correttamente o entrare in metastabilità (uscita a un livello intermedio per un tempo imprevedibile, che si ripercuote sugli stadi successivi).
Esempio. Con , e : il dato deve restare stabile da prima a dopo il fronte, e l'uscita cambia dopo il fronte.
Formula (periodo minimo e frequenza massima di clock). Tra due registri c'è una logica combinatoria con ritardo di propagazione massimo e minimo (di contaminazione) . Il dato lanciato dal primo registro deve arrivare al secondo prima che il fronte successivo cominci la sua finestra di setup:
Esempio. Con , e logica massima : e .
Formula (vincolo di hold). Per l'hold: il nuovo dato non deve arrivare al secondo registro troppo presto, cioè prima che sia scaduto il tempo di hold del fronte appena passato: (con ritardo di contaminazione del registro, ). Il vincolo di hold non dipende dalla frequenza: se è violato non si risolve rallentando il clock. Si ripara aumentando il ritardo minimo (inserendo, per esempio, inverter in cascata tra i due registri).
Esempio. , , logica massima : , . Hold: con e logica minima : : rispettato. Se i due registri fossero collegati direttamente () con la condizione sarebbe violata e il dato sbagliato si propagherebbe: la soluzione è inserire logica o ritardi (due inverter aggiungerebbero circa ciascuno).
Registri dinamici, C2MOS, TSPC e registri a scorrimento
Definizione (registro a scorrimento). Un registro a scorrimento (shift register) è una cascata di registri D con lo stesso clock: l'uscita di ciascuno è l'ingresso del successivo e a ogni fronte il dato avanza di una posizione. Il primo registro riceve l'ingresso seriale; l'ultimo dà l'uscita seriale. Applicazioni:
- conversione serie-parallelo: dopo fronti i bit entrati uno alla volta sono disponibili contemporaneamente sulle uscite;
- conversione parallelo-serie: con un multiplexer in ingresso a ciascun registro che sceglie tra il dato parallelo (caricamento, load) e l'uscita del registro precedente (scorrimento);
- linee di ritardo (un dato esce periodi dopo essere entrato), code FIFO, generatori di sequenze (LFSR).
Esempio. Registro a bit, inizialmente , ingresso seriale (un bit per fronte, scorrimento verso destra): .
Memorie a semiconduttore - struttura a matrice, decoder e ROM
Definizione (decoder di riga). Decoder di riga. Per bit di indirizzo ci sono WL; solo se l'indirizzo vale : (AND di tutte le variabili o negate: una NOR di ). Con ingressi servono WL, con ingressi WL (porte con tanti ingressi sarebbero lentissime: Porte logiche CMOS - ritardo di Elmore, fan-in e consumoIl ritardo di una porta dipende dalla configurazione degli ingressi: si calcola il caso peggiore (un solo cammino conduttivo, il più resistivo) e il caso migliore. Per una rete RC con transistor in serie si usa il ritardo di Elmore: t = 0,69 Σ_k C_k · R_k, con R_k la resistenza totale tra il nodo k e il generatore (massa o V_DD) lungo il cammino e C_k la capacità del nodo. Per NAND2 con R_n = R_p: t_pLH (caso peggiore) = 0,69 R_p C, t_pHL = 0,69·2R_n C, quindi t_pHL = 2 t_pLH; per NOR2 è l'opposto. Una NOR a N ingressi (tutti i transistor uguali, nodi interni trascurati): t_pLH = 0,69 R_p C N(N+1), t_pHL = 0,69 R_n C (N+1): il ritardo cresce col quadrato del fan-in, perciò si evitano fan-in maggiori di 4. Rimedi: dimensionamento progressivo (transistor più grandi dal lato opposto all'uscita), riordino degli ingressi (il più tardivo vicino all'uscita), cascata di porte con meno ingressi, buffer. La potenza dinamica dipende dalla probabilità di commutazione.Porte logiche CMOS - ritardo di Elmore, fan-in e consumo →). Si usa un decoder multistadio (predecodifica): si decodificano gruppi di indirizzi (per esempio ) e se ne combinano le uscite con porte a due ingressi, riducendo fan-in e ritardo.
Esempio. Con bit di indirizzo ci sono word line; con bit sono .
Definizione (ROM a MOS con struttura NOR). Per ogni bit line () c'è un dispositivo di pull-up (un p-MOS con gate a massa: è la logica pseudo-nMOS, Logica pseudo-nMOS e logiche a caricoNella logica pseudo-nMOS (a rapporto, ratioed) la PUN della CMOS complementare è sostituita da un solo p-MOS con gate a massa, sempre acceso, che fa da carico per la PDN a n-MOS. Così servono N+1 transistor invece di 2N e la capacità di ingresso è minore, ma l'uscita bassa non è 0: V_OL si ricava uguagliando la corrente dell'n-MOS (zona lineare) a quella del p-MOS (saturazione), ed esiste potenza statica quando l'uscita è bassa (P = V_DD·I). V_OH = V_DD. Per V_OL piccola serve Z_n ≫ Z_p; il ritardo di salita è lento (carica solo il p-MOS debole: t_pLH = 0,69 R_p C_L), quello di discesa è più veloce (t_pHL ≈ 0,69 R_n C_L). Lo stesso schema (carichi p-MOS a massa) si ritrova nelle ROM a NOR.Logica pseudo-nMOS e logiche a carico →), e le celle sono n-MOS con gate sulla WL e drain sulla BL, source a massa.
- Se la riga selezionata () ha un n-MOS sulla colonna , il transistor conduce e porta la BL a (quasi ): bit .
- Se in quella cella manca il transistor (o il contatto), nessun cammino a massa: la BL rimane a tirata dal carico: bit . Le WL non selezionate sono a . Si programma con la maschera della regione attiva (si disegna o no il transistor) oppure con la maschera dei contatti (il transistor c'è sempre ma il drain può non essere collegato): la seconda lascia la cella più grande ( contro dei layout tipici) ma permette di programmare all'ultimo passo del processo. È una funzione combinatoria: una ROM con indirizzi e bit di uscita realizza funzioni di variabili (Dispositivi logici programmabili - PROM, PLA, PAL e CPLDUn componente logico programmabile (PLD) è un circuito integrato a catalogo la cui funzione logica viene fissata da una programmazione che altera la struttura del circuito (non va confusa con la programmazione software di un microprocessore). I meccanismi sono fusibili, antifusibili (una volta), EPROM/EEPROM/Flash (reversibili e non volatili) e celle SRAM (reversibili ma volatili). Le architetture semplici (SPLD) sono due piani AND-OR: PROM (AND fisso, cioè un decoder di tutti i mintermini, OR programmabile), PLA (entrambi programmabili, dimensione indipendente dal numero di ingressi, più lenta) e PAL (AND programmabile, OR fisso, più veloce). I CPLD sono matrici di blocchi SPLD con interconnessioni programmabili, le FPGA hanno molti blocchi logici piccoli (LUT + registro) in una griglia di interconnessioni complessa, configurata da SRAM.Dispositivi logici programmabili - PROM, PLA, PAL e CPLD →).
Esempio. Tre WL e quattro BL con transistor in , e memorizzano , , (si legge ; dove c'è il transistor). Il caso è quello del tema Esercizio 8 · memoria ROM a NOR, contenuto, ritardo di word line, carichi e potenza (tema d'esame settembre 2026).
Definizione (ROM a MOS con struttura NAND). In ogni colonna gli n-MOS sono in serie (una catena per bit line). Tutte le WL sono alte tranne quella selezionata (bassa): il transistor della riga selezionata, se c'è, si spegne e interrompe la catena (la BL resta a : ); se la cella è programmata con un transistor "sempre acceso" (o è un semplice cortocircuito) la catena conduce e la BL va a . Quindi la logica è inversa a quella della NOR.
- Non servono contatti verso massa o per ogni cella: la cella è drasticamente più piccola.
- Prestazioni peggiori: la catena di n-MOS ha resistenza e la scarica della BL è lenta (ritardo dominato dalla resistenza della serie). Confrontando una ROM a NOR con una a NAND: la struttura a NAND è più compatta ma meno veloce; la NOR è più veloce ma meno compatta.
Esempio. In una catena di n-MOS con la resistenza della serie è circa , otto volte quella di una cella di ROM a NOR: la scarica della bit line è otto volte più lenta.
Memorie non volatili - gate flottante, EPROM, EEPROM e Flash
Definizione (transistor a gate flottante). Per rendere riprogrammabile la cella si inserisce un secondo gate di polisilicio, il gate flottante (floating gate, FAMOS), completamente isolato da ossido, tra il canale e il gate di controllo.
- Una carica (elettroni) intrappolata sul gate flottante vi rimane per anni (ritenzione tipica di circa anni) perché è circondata da ossido.
- Gli elettroni sul gate flottante schermano il canale: la tensione di soglia vista dal gate di controllo aumenta di , dove è la capacità tra gate di controllo e gate flottante. Esempio: elettroni su : .
- Un transistor programmato (carico) ha una soglia così alta da restare spento a tutte le tensioni di gate di lettura, fino a (): equivale all'assenza del transistor nella ROM a NOR (la bit line resta a : bit ). Un transistor non programmato ha la soglia nominale e conduce con : bit .
- La lettura non altera la carica: si porta la WL a e si osserva se la bit line viene tirata giù.
Esempio. Con elettroni sul gate flottante e : .
Definizione (confronto tra le memorie non volatili).
tipo programmazione cancellazione transistor/cella ROM a maschera in fabbricazione no 1 (o nessuno) PROM elettrica, una volta no 1 EPROM portatori caldi collettiva, UV 1 EEPROM tunnel (FLOTOX) elettrica, per cella 2 Flash portatori caldi o tunnel elettrica, per blocco 1
Esempio. Per cancellare un solo bit: la EPROM cancella tutto il chip con UV ( transistor per cella), la EEPROM la singola cella ( transistor per cella), la Flash un blocco ( transistor per cella).
SRAM e DRAM
Proprietà (dimensionamento della cella SRAM a 6 transistor). La SRAM ha quindi un dimensionamento con vincoli opposti: driver > accesso (lettura) e accesso > pull-up (scrittura): pull-up < accesso < driver.
Esempio. Con fattori di forma , e si rispetta la condizione pull-up accesso driver, sia in lettura sia in scrittura.
Formula (lettura della DRAM a un transistor: condivisione di carica).
- Lettura: si precarica la BL (capacità ) a una tensione intermedia () e si abilita WL: la carica si ridistribuisce tra e (charge sharing) e il potenziale finale è :
Esempio. Con , , e : .
VI. Blocchi funzionali dei sistemi digitali
Blocchi logici di un microprocessore - ALU, bus e logica tri-state
Formula (sottrazione in complemento a due con lo stesso sommatore). Sottrazione. In complemento a due (Rappresentazione dei numeri e dell'informazioneUn'informazione digitale è una stringa di bit. Numeri senza segno: N bit rappresentano 0…2^N − 1; in esadecimale ogni cifra raggruppa 4 bit. Numeri con segno: complemento a due (range −2^(N−1)…2^(N−1) − 1; si nega invertendo i bit e sommando 1; il bit più significativo è il segno e l'estensione di segno lo replica). Il BCD codifica ogni cifra decimale con 4 bit (0…9) e si ottiene dal binario con l'algoritmo double dabble (shift a sinistra, e +3 a ogni gruppo maggiore di 4 prima dello shift). Il codice Gray cambia un solo bit tra valori consecutivi. I numeri frazionari si trattano in virgola fissa (4 bit di parte frazionaria = multipli di 1/16), i caratteri in ASCII, gli errori con un bit di parità.Rappresentazione dei numeri e dell'informazione →): si usano gli stessi sommatori, con una porta XOR su ogni ingresso comandata da un segnale "sottrai" (che inverte quando vale ) e lo stesso segnale come riporto in ingresso .
Esempio (). (), (): somma (); sottrazione: , , risultato () con riporto ; AND: ; OR: .
Definizione (flag della ALU). Flag:
- Z (zero): tutti i bit del risultato sono ;
- C (carry): riporto dell'ultimo stadio (per i numeri senza segno, indica overflow nella somma e assenza di prestito nella sottrazione);
- N (negativo): bit più significativo del risultato;
- V (overflow, numeri con segno): vale se gli operandi hanno lo stesso segno e il risultato il segno opposto: con () e () il risultato ( in complemento a due, invece di ) segnala overflow. Equivale a (riporto in ingresso e in uscita dell'ultimo stadio). Il percorso critico di una ALU è quello della somma: la velocità dipende dal sommatore usato (Sommatori veloci - carry-bypass, carry-select e square-rootIl ripple-carry ha ritardo lineare in N. Il carry-bypass divide i bit in blocchi da M: se tutti i propagate del blocco valgono 1 (BP = P0P1…P_{M−1} = 1) un multiplexer fa saltare il riporto dall'ingresso all'uscita del blocco. Ritardo: t = t_setup + M t_carry + (N/M − 1) t_mux + (M−1) t_carry + t_sum, ottimo per M = √(N t_mux/(2 t_carry)); è determinato principalmente dal tempo di riporto. Il carry-select calcola in ogni blocco le somme per riporto 0 e per riporto 1 e un mux sceglie quella giusta: t = t_setup + M t_carry + (N/M) t_mux + t_sum, M ottimo √(N t_mux/t_carry); lo square-root carry-select usa blocchi di dimensione crescente (M, M+1, M+2…) perché il riporto arriva ogni volta un mux dopo: N ≈ K²/2 e t = t_setup + M t_carry + √(2N) t_mux + t_sum, cioè ritardo ∝ √N.Sommatori veloci - carry-bypass, carry-select e square-root →).
Esempio. Con () e () su bit: la somma è , con (operandi positivi e risultato negativo), , e .
Sommatori - full adder e ripple-carry
Formula (full adder). Il full adder (sommatore completo a un bit) ha per tabella di verità
Esempio. Con , e : e (almeno due ingressi valgono ).
Definizione (generate, propagate, delete e riporto). Il riporto d'uscita è la funzione maggioranza: vale se almeno due ingressi valgono . Si ottimizza il circuito con tre segnali:
- generate : lo stadio genera un riporto indipendentemente da ;
- propagate (o ): lo stadio propaga il riporto d'ingresso;
- delete (kill) : lo stadio cancella il riporto (uscita qualunque ). Allora
Esempio. Con e : e , quindi ; con : e qualunque sia .
Formula (ritardo del sommatore ripple-carry, caso peggiore). Un sommatore a bit si ottiene collegando full adder in cascata: . Il riporto "si propaga a onda" (ripple) dal bit meno significativo al più significativo. Indicati il ritardo del sum (da a ) e il ritardo di carry (da a ) di un full adder, e con :
- il bit dà la somma al tempo ;
- nel caso peggiore (riporto che attraversa tutti gli stadi: tutti ) l'ultimo bit attende ritardi di carry:
Esempio numerico. , : : ; : ; : : raddoppiando il numero di bit il ritardo raddoppia circa. È il sommatore più semplice e compatto, ma lento: per le larghezze maggiori si usano architetture più veloci (Sommatori veloci - carry-bypass, carry-select e square-rootIl ripple-carry ha ritardo lineare in N. Il carry-bypass divide i bit in blocchi da M: se tutti i propagate del blocco valgono 1 (BP = P0P1…P_{M−1} = 1) un multiplexer fa saltare il riporto dall'ingresso all'uscita del blocco. Ritardo: t = t_setup + M t_carry + (N/M − 1) t_mux + (M−1) t_carry + t_sum, ottimo per M = √(N t_mux/(2 t_carry)); è determinato principalmente dal tempo di riporto. Il carry-select calcola in ogni blocco le somme per riporto 0 e per riporto 1 e un mux sceglie quella giusta: t = t_setup + M t_carry + (N/M) t_mux + t_sum, M ottimo √(N t_mux/t_carry); lo square-root carry-select usa blocchi di dimensione crescente (M, M+1, M+2…) perché il riporto arriva ogni volta un mux dopo: N ≈ K²/2 e t = t_setup + M t_carry + √(2N) t_mux + t_sum, cioè ritardo ∝ √N.Sommatori veloci - carry-bypass, carry-select e square-root →).
Sommatori veloci - carry-bypass, carry-select e square-root
Formula (ritardo del carry-bypass e dimensione ottima dei blocchi). Ritardo nel caso peggiore ( bit, blocchi da ): il riporto deve (1) essere generato nel primo stadio del primo blocco e attraversare lo stesso blocco (), (2) saltare i blocchi successivi attraverso i loro multiplexer ( multiplexer in totale, uno per ogni blocco dopo il primo), (3) attraversare i stadi dell'ultimo blocco e produrre la somma: Il termine in è : aumentando cresce la parte di ripple dentro i blocchi estremi, diminuendo crescono i multiplexer. Derivando rispetto a :
Esempio. Con e tutti i ritardi uguali a : e .
Formula (ritardo del linear carry-select e dimensione ottima dei blocchi). Linear carry-select (blocchi tutti da bit, blocchi):
Esempio. Con , e tutti i ritardi uguali a : .
Formula (ritardo del square-root carry-select). Nel linear carry-select il blocco aspetta il riporto del blocco , che arriva un multiplexer dopo il precedente: nel frattempo ha già finito di calcolare le due alternative. Si può quindi dare ai blocchi successivi un bit in più del precedente: ciascuno impiega in più per il riporto, e può quindi elaborare un bit in più in parallelo (con per bit). Blocchi di bit:
Esempio. Con e : blocchi da bit ( bit), e, con ritardi tutti uguali a , .
Traslatori, comparatori e moltiplicatori
Definizione (traslatori: shift logico, aritmetico e rotazione). Un traslatore sposta i bit di una parola di posizioni. Tipi, per una parola :
- shift logico a sinistra (LSL): i bit si spostano verso l'MSB, si entra con da destra: equivale a moltiplicare per (senza overflow);
- shift logico a destra (LSR): si entra con da sinistra: divisione per per i numeri senza segno;
- shift aritmetico a destra (ASR): si replica il bit di segno da sinistra: divisione per per i numeri in complemento a due;
- rotazione (ROL, ROR): i bit usciti da un lato rientrano dall'altro.
Esempio. (), LSL di : (); (), ASR di : ().
Formula (comparatore di grandezza). Grandezza (senza segno). Si confrontano i bit a partire dal più significativo: se al primo bit in cui differiscono e . Con (qui ) e come sopra:
Esempio: , : (1,1), (0,0), il bit : (): quindi , ().
Proprietà (confronto tramite sottrazione e flag). Con la sottrazione. Si calcola e si legge: per l'uguaglianza; per i numeri senza segno se il riporto d'uscita vale (nessun prestito); per i numeri con segno se vale (segno del risultato corretto dall'overflow). È il metodo dei processori (flag , , , ).
Esempio. Con () e () su bit senza segno: , con riporto d'uscita , quindi .
Definizione (prodotto come somma di prodotti parziali traslati). Il prodotto di due numeri senza segno di bit ha bit. Per ogni bit del moltiplicatore si forma un prodotto parziale (un AND per bit) traslato di posizioni e si sommano tutti.
Esempio ( bit): , :
Formula (moltiplicatore a matrice: numero di celle e ritardo). Moltiplicatore a matrice (array): porte AND generano i prodotti parziali e una matrice di full adder ne somma le righe (il riporto di ciascuna riga si propaga alla successiva): : AND e full adder. Il cammino critico attraversa circa celle: ritardo , lineare in ma con area quadratica ( celle).
Esempio. Con : porte AND e full adder; con e il ritardo è circa .
VII. Circuiti logici programmabili e FPGA
Dispositivi logici programmabili - PROM, PLA, PAL e CPLD
Definizione (PROM, PLA e PAL: piani AND e OR).
architettura piano AND piano OR caratteristiche PROM fisso (decoder: tutti i mintermini) programmabile semplice; prodotti: impraticabile per molti ingressi PLA programmabile programmabile dimensione del piano AND indipendente dagli ingressi; più lenta (due livelli di collegamenti programmabili, più lenti dei fissi) PAL programmabile fisso più veloce della PLA; il piano OR fisso limita il numero di implicanti per uscita
Esempio. Con ingressi una PROM ha prodotti nel piano AND; la funzione in una PLA ne richiede solo .
FPGA - LUT, slice e risorse della famiglia 7
Definizione (LUT a k ingressi). La look-up table (LUT) a ingressi è una piccola memoria di celle SRAM da bit, indirizzata dai ingressi, con un multiplexer in uscita: gli ingressi della funzione sono i segnali di selezione del multiplexer, e il contenuto delle celle è la tabella di verità della funzione. Qualsiasi funzione combinatoria di variabili si realizza riscrivendo le celle, con ritardo costante attraverso la LUT: il tempo dipende solo dal numero di ingressi, non dalla complessità della funzione. Il numero di funzioni diverse è : per , per .
Esempio: con LUT a ingressi. Tabella per : ; i bit programmati sono quindi (indirizzo ). Se la funzione ha più ingressi di quelli della LUT si combinano più LUT attraverso multiplexer dedicati.
VIII. VHDL e progetto su FPGA
Simulazione, testbench, vincoli di temporizzazione e flusso su FPGA
Formula (slack di setup, slack di hold e frequenza massima). L'analisi statica di temporizzazione controlla ogni cammino tra due registri (e da/verso i pin) con gli stessi vincoli visti per il registro (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 →):
- slack di setup: ; se il cammino rispetta il periodo di clock ; il minimo su tutti i cammini è il WNS (worst negative slack). Il cammino con lo slack minore è il cammino critico.
- slack di hold: (indipendente da ).
- Frequenza massima: se .
Esempio. (). Un cammino ha , logica e routing , (): ritardo totale , slack , . Se il cammino fosse lungo : slack : la frequenza di non è raggiungibile, .