Salta al contenuto
Note per Studenti Logica a pass-transistor e gate di trasmissione

Logica a pass-transistor e gate di trasmissione

In questa pagina 5

Nella CMOS complementare (Porte logiche CMOS - struttura statica complementare e dimensionamentoUna porta CMOS statica complementare ha una rete di pull-down (PDN, n-MOS) verso massa e una di pull-up (PUN, p-MOS) verso V_DD, duali tra loro: serie ↔ parallelo. La PDN conduce quando la funzione f degli ingressi vale 1 e porta l'uscita a 0, quindi F = NOT f (le porte a uno stadio sono invertenti). Serie di n-MOS = AND, parallelo = OR; i p-MOS (chiusi con ingresso basso) fanno l'opposto. Escursione completa, nessun consumo statico, ritardo da R e C di uscita. Dimensionamento: si parte dall'inverter di riferimento (Z_n = 1, Z_p = r ≈ 2,4) e si scala ogni transistor del numero di transistor della serie peggiore a cui appartiene, così che la resistenza nel caso peggiore uguagli quella dell'inverter (NAND2: Z_n = 2, Z_p = r; NOR2: Z_n = 1, Z_p = 2r). Per un obiettivo R_pd = R*: Z_n = m R_n0/R* con m transistor in serie nel cammino peggiore. Per minimizzare la capacità di uscita si collegano all'uscita meno drain possibile.Porte logiche CMOS - struttura statica complementare e dimensionamento →) gli ingressi comandano solo i gate e le sorgenti sono VDDV_{DD} e massa. Nella logica a pass-transistor gli ingressi comandano anche i terminali di conduzione: una rete di interruttori trasmette direttamente un segnale di ingresso (o una costante) all'uscita. Caratteristiche:

  • servono NN transistor per NN ingressi (circa la metà della CMOS complementare);
  • consumo statico nullo (nessun cammino fisso tra VDDV_{DD} e massa);
  • per alcune funzioni (AND, OR, XOR, multiplexer) la realizzazione è molto più semplice;
  • permette di realizzare funzioni non invertenti, ma l'uscita non è rigenerata: ogni passaggio degrada il segnale e non c'è un guadagno che lo ripristini.

Livelli trasmessi da n-MOS e p-MOS

Un n-MOS con il gate a VDDV_{DD} trasmette bene il livello basso: porta il nodo di uscita a 00 perché VGS=VDD>VTnV_{GS}=V_{DD}>V_{Tn} finché il nodo scende. Trasmette invece male il livello alto: se l'ingresso è VDDV_{DD} l'uscita sale finché VGS=VDD−VoutV_{GS}=V_{DD}-V_{out} scende fino a VTnV_{Tn}, quindi si ferma a VOH=VDD−VTn,V_{OH}=V_{DD}-V_{Tn}, dove VTnV_{Tn} include l'effetto body perché il source (l'uscita) è a tensione alta (VSB=VoutV_{SB}=V_{out}) e quindi la soglia è maggiore di quella nominale (Il transistor MOS come interruttore - soglia, caratteristiche e capacitàIl MOS ha quattro terminali (gate, source, drain, bulk); il bulk dell'n-MOS va a massa, quello del p-MOS a V_DD. Il canale esiste (inversione) per V_GS > V_T nell'n-MOS (V_T > 0) e per V_GS < V_T nel p-MOS (V_T < 0). La soglia cresce in modulo con la tensione di source rispetto al bulk (effetto body): V_T = V_T0 + γ(√|−2Φ_F+V_SB| − √|2Φ_F|). Corrente: lineare per V_DS < V_GS − V_T, I_D = k'(W/L)[(V_GS−V_T)V_DS − V_DS²/2]; saturazione per V_DS > V_GS − V_T, I_D = (k'/2)(W/L)(V_GS−V_T)²(1+λV_DS). In digitale il transistor è un interruttore con resistenza equivalente R_eq ∝ 1/Z (Z = W/L) e capacità di gate C_g = C_ox W L, di drain e source ∝ W. Raddoppiando Z la resistenza dimezza e le capacità raddoppiano.Il transistor MOS come interruttore - soglia, caratteristiche e capacità →). Esempio (VDD=2,5 VV_{DD}=2{,}5\ \mathrm V, VT0=0,4 VV_{T0}=0{,}4\ \mathrm V, γ=0,4 V1/2\gamma=0{,}4\ \mathrm V^{1/2}, 2ΦF=0,6 V2\Phi_F=0{,}6\ \mathrm V): si risolve Vout=VDD−VT(Vout)V_{out}=V_{DD}-V_T(V_{out}) con VT=0,4+0,4(0,6+Vout−0,6)V_T=0{,}4+0{,}4(\sqrt{0{,}6+V_{out}}-\sqrt{0{,}6}): Vout=1,79 VV_{out}=1{,}79\ \mathrm V, VT=0,71 VV_T=0{,}71\ \mathrm V (non 2,1 V2{,}1\ \mathrm V). Il p-MOS fa il contrario: trasmette bene l'11 (VDDV_{DD}) e male lo 00 (si ferma a ∣VTp∣\lvert V_{Tp}\rvert, con effetto body, perché il bulk è a VDDV_{DD}).

Casi da ricordare:

  • Serie di n-MOS con i gate tutti a VGV_G e ingresso VDDV_{DD}: l'uscita è VG−VTnV_G-V_{Tn} (per VG=VDDV_G=V_{DD}: VDD−VTnV_{DD}-V_{Tn}). Aggiungere transistor in serie con lo stesso gate non degrada ulteriormente il livello: ogni transistor si ferma allo stesso valore. (In un tema con VTn<VG<VDDV_{Tn}<V_G<V_{DD} la risposta esatta è VG−VTnV_G-V_{Tn}, minore di VDD−VTnV_{DD}-V_{Tn}; l'opzione VDD−VTnV_{DD}-V_{Tn} vale se VG=VDDV_G=V_{DD}.)
  • n-MOS e p-MOS in serie (non in parallelo) tra VinV_{in} e VoutV_{out}, con i gate GG (n) e nG (p) che commutano da 00 a VDDV_{DD} e viceversa: l'uscita alta è limitata dall'n-MOS, quella bassa dal p-MOS: VOH=VDD−VTnV_{OH}=V_{DD}-V_{Tn} e VOL=∣VTp∣=−VTpV_{OL}=\lvert V_{Tp}\rvert=-V_{Tp} (con VTn=−VTpV_{Tn}=-V_{Tp} e VinV_{in} che va da 00 a VDDV_{DD}).
  • Una rete di soli n-MOS che pilota un inverter: l'ingresso alto dell'inverter vale VDD−VTn<VDDV_{DD}-V_{Tn}<V_{DD}, quindi il p-MOS dell'inverter non è del tutto spento e conduce una corrente di regime: consumo statico e uscita bassa dell'inverter non nulla ma di alcune decine di millivolt. Soluzioni: transistor di ripristino (level restorer) in retroazione, oppure gate di trasmissione.

Gate di trasmissione

La gate di trasmissione (transmission gate) è un n-MOS e un p-MOS in parallelo pilotati da segnali complementari: GG al gate dell'n-MOS e G‾\overline G (nG) al gate del p-MOS. Quando G=VDDG=V_{DD} sono entrambi accesi; quando G=0G=0 entrambi spenti. Trasmette bene sia gli 00 (l'n-MOS) sia gli 11 (il p-MOS): nell'intervallo 0…VDD0\ldots V_{DD} almeno uno dei due è in conduzione. La resistenza equivalente è il parallelo Rn∥RpR_n\parallel R_p, che resta quasi costante al variare di VoutV_{out}, perché dove RnR_n cresce (uscita alta) RpR_p cala e viceversa. Il prezzo: due transistor, due segnali di controllo (GG e G‾\overline G) e capacità maggiori al nodo di uscita.

Capacità: un'AND a pass-transistor n-MOS con Cg=Cd=Cs=1 fFC_g=C_d=C_s=1\ \mathrm{fF} che pilota un carico esterno di 5 fF5\ \mathrm{fF} ha al nodo di uscita due capacità di drain/source (i due transistor →\to 2 fF2\ \mathrm{fF}) più il carico: 7 fF7\ \mathrm{fF}. Sostituendo i pass-transistor con gate di trasmissione con un p-MOS uguale all'n-MOS, si aggiungono altri due drain/source: 9 fF9\ \mathrm{fF}.

Porte a pass-transistor

Ritardo di una catena di pass-transistor

Una catena di nn pass-transistor equivale a una scala RC: nn resistenze ReqR_{eq} in serie, con una capacità CC (somma di source, drain) per nodo. Il ritardo di Elmore (peso kk per la capacità del nodo kk, perché vede kk 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 →) è tp=0,69 ReqC (1+2+⋯+n)=0,69 ReqC n(n+1)2 ∝n2.t_p=0{,}69\,R_{eq}C\,\big(1+2+\dots+n\big)=0{,}69\,R_{eq}C\,\frac{n(n+1)}2\ \propto n^2. Il ritardo cresce col quadrato del numero di stadi. Per ridurlo si inseriscono buffer (inverter, che rigenerano il livello e interrompono la scala) ogni mm pass-transistor: tp=nm⋅0,69 ReqC m(m+1)2+(nm−1)tbuf ≈ n(0,345 mReqC+tbufm),t_p=\frac nm\cdot0{,}69\,R_{eq}C\,\frac{m(m+1)}2+\Big(\frac nm-1\Big)t_{buf}\ \approx\ n\Big(0{,}345\,mR_{eq}C+\frac{t_{buf}}m\Big), con minimo per mopt=tbuf0,345 ReqC≈1,7tbufReqC.m_{opt}=\sqrt{\frac{t_{buf}}{0{,}345\,R_{eq}C}}\approx1{,}7\sqrt{\frac{t_{buf}}{R_{eq}C}}. Esempio: n=16n=16, Req=5 kΩR_{eq}=5\ \mathrm{k\Omega}, C=2 fFC=2\ \mathrm{fF} (ReqC=10 psR_{eq}C=10\ \mathrm{ps}), tbuf=50 pst_{buf}=50\ \mathrm{ps}. Senza buffer tp=0,69⋅10 ps⋅136=938 pst_p=0{,}69\cdot10\ \mathrm{ps}\cdot136=938\ \mathrm{ps}; con un buffer ogni mm stadi: m=2m=2: 516 ps516\ \mathrm{ps}; m=3m=3: 437 ps437\ \mathrm{ps}; m=4m=4: 426 ps426\ \mathrm{ps}; m=6m=6: 470 ps470\ \mathrm{ps}; mopt=1,75=3,8m_{opt}=1{,}7\sqrt5=3{,}8. 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.

Errori comuni

  • Dire che il pass-transistor n-MOS trasmette bene l'11: trasmette bene lo 00.
  • Dimenticare l'effetto body nel calcolo di VDD−VTnV_{DD}-V_{Tn}: la soglia è più alta di VT0V_{T0}.
  • Scambiare serie e parallelo nella gate di trasmissione: sono in parallelo.
  • Collegare un'uscita degradata a un inverter e non considerare il consumo statico.
  • Usare tp∝nt_p\propto n per la catena: è proporzionale a n2n^2.

Versione ripasso

  • Idea: rete di interruttori pilotati dagli ingressi (anche ai terminali S/D); NN transistor per NN ingressi; consumo statico nullo; AND/MUX/XOR semplici; non rigenerativa.
  • Livelli: n-MOS: 00 forte, 11 debole VDD−VTnV_{DD}-V_{Tn} con effetto body (2,5→1,792{,}5\to1{,}79 V, VT=0,71V_T=0{,}71); p-MOS: 11 forte, 00 debole ∣VTp∣\lvert V_{Tp}\rvert. Serie di n-MOS con gate VGV_G: uscita VG−VTnV_G-V_{Tn} (nessun degrado ulteriore). n e p in serie: VOH=VDD−VTnV_{OH}=V_{DD}-V_{Tn}, VOL=∣VTp∣V_{OL}=\lvert V_{Tp}\rvert. Uscita degradata su inverter: consumo statico.
  • Gate di trasmissione: n-MOS ∥\parallel p-MOS con GG, nG; trasmette bene 00 e 11; Rn∥Rp≈R_n\parallel R_p\approx costante; due transistor, capacità maggiori (AND n-MOS 77 fF; con TG 99 fF).
  • Porte: AND (gate BB passa AA, gate B‾\overline B passa 00); MUX (F=C‾X+CYF=\overline CX+CY); XOR a TG (serve A‾\overline A).
  • Catena: tp=0,69ReqC n(n+1)/2∝n2t_p=0{,}69R_{eq}C\,n(n+1)/2\propto n^2; buffer ogni mopt=1,7tbuf/(ReqC)m_{opt}=1{,}7\sqrt{t_{buf}/(R_{eq}C)} (n=16n=16: 938→426938\to426 ps con m=4m=4); i buffer ripristinano i livelli.
  • Errori: n-MOS 11 forte; body dimenticato; serie/parallelo nella TG; inverter su livello degradato; tp∝nt_p\propto n.

Esercizi su questo argomento

Teoria collegata