Salta al contenuto
Note per Studenti Logica pseudo-nMOS e logiche a carico

Logica pseudo-nMOS e logiche a carico

In questa pagina 6

La logica 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 →) usa 2N2N transistor per NN ingressi: ogni ingresso carica un n-MOS e un p-MOS. Se si accetta di perdere qualcosa sul livello basso si può sostituire la PUN con un solo transistor che fa da carico: si ottiene una logica a rapporto (ratioed logic), perché i livelli logici dipendono dal rapporto tra le dimensioni dei transistor.

Struttura della porta pseudo-nMOS

  • PDN: la stessa rete di n-MOS della CMOS complementare, tra l'uscita e massa.
  • Carico: un p-MOS con il gate collegato a massa (sempre acceso, VSG=VDDV_{SG}=V_{DD}) tra VDDV_{DD} e l'uscita.

Funzionamento: se la PDN non conduce (tutti i rami aperti) l'uscita è tirata a VDDV_{DD} dal p-MOS: VOH=VDDV_{OH}=V_{DD}. Se la PDN conduce, p-MOS e PDN formano un partitore: l'uscita non va a 00 ma a un livello VOL>0V_{OL}>0 e scorre corrente continua da VDDV_{DD} a massa. La funzione è F=f‾F=\overline f come nella CMOS statica. Per NN ingressi servono N+1N+1 transistor (invece di 2N2N): meno area e minore capacità sugli ingressi. Per questo è usata in strutture molto larghe (decoder, PLA, ROM: Memorie a semiconduttore - struttura a matrice, decoder e ROMLe memorie a semiconduttore si classificano in lettura/scrittura (SRAM, DRAM: volatili) e sola lettura (ROM a maschera, PROM, EPROM, EEPROM, Flash: non volatili); l'accesso è casuale o non casuale (FIFO, registri a scorrimento, CAM). La struttura è a matrice di celle: una word line (WL) seleziona una riga attraverso il decoder di riga (N indirizzi → 2^N WL), una bit line (BL) porta il dato alla colonna scelta dal decoder/multiplexer di colonna e dal sense amplifier. La ROM a NOR ha per ogni bit line un p-MOS di carico e n-MOS dove il bit è 0 (con WL alta tirano la BL a massa): compatta e veloce; la ROM a NAND ha serie di n-MOS ed è molto più piccola ma più lenta. Ritardo di una WL: R del polisilicio × C dei gate (Elmore); di una BL: C dei drain con la R dei transistor o del carico.Memorie a semiconduttore - struttura a matrice, decoder e ROM →).

Livello logico basso VOLV_{OL}

Con Vin=VDDV_{in}=V_{DD} e un solo ramo conduttivo (caso peggiore, PDN equivalente con fattore ZnZ_n) l'n-MOS ha VDS=VOLV_{DS}=V_{OL} piccolo ed è in zona lineare, il p-MOS ha VSD=VDD−VOLV_{SD}=V_{DD}-V_{OL} grande ed è in saturazione (per VSD≥VDD−∣VTp∣V_{SD}\ge V_{DD}-\lvert V_{Tp}\rvert). Uguagliando le correnti: kn′Zn[(VDD−VTn)VOL−VOL22]=∣kp′∣2Zp (VDD−∣VTp∣)2 (1+∣λp∣(VDD−VOL)).k'_nZ_n\Big[(V_{DD}-V_{Tn})V_{OL}-\frac{V_{OL}^2}2\Big]=\frac{\lvert k'_p\rvert}2Z_p\,(V_{DD}-\lvert V_{Tp}\rvert)^2\,\big(1+\lvert\lambda_p\rvert(V_{DD}-V_{OL})\big). Equazione di secondo grado in VOLV_{OL} (scegliere la radice con VOL<VDD−VTnV_{OL}<V_{DD}-V_{Tn}). Si verifica poi la regione dei due transistor. Per VOL≪VDD−VTnV_{OL}\ll V_{DD}-V_{Tn} e λ=0\lambda=0 vale l'approssimazione VOL≈∣kp′∣Zp (VDD−∣VTp∣)22 kn′Zn (VDD−VTn).V_{OL}\approx\frac{\lvert k'_p\rvert Z_p\,(V_{DD}-\lvert V_{Tp}\rvert)^2}{2\,k'_nZ_n\,(V_{DD}-V_{Tn})}. Esempio (kn′=115k'_n=115, kp′=−30 μA/V2k'_p=-30\ \mu\mathrm A/\mathrm V^2, VTn=0,4V_{Tn}=0{,}4, VTp=−0,4 VV_{Tp}=-0{,}4\ \mathrm V, λn=0,06\lambda_n=0{,}06, λp=−0,1 V−1\lambda_p=-0{,}1\ \mathrm V^{-1}, VDD=2,5 VV_{DD}=2{,}5\ \mathrm V). Inverter pseudo-nMOS con Zn=4Z_n=4, Zp=2Z_p=2: VOL=0,176 VV_{OL}=0{,}176\ \mathrm V (con λ=0\lambda=0: 0,142 V0{,}142\ \mathrm V; l'approssimazione dà 0,137 V0{,}137\ \mathrm V). Con Zn=6Z_n=6, Zp=2Z_p=2: 0,116 V0{,}116\ \mathrm V. Più grande è Zn/ZpZ_n/Z_p, più basso è il livello; ma VOLV_{OL} non può mai raggiungere 00. La porta riesce a pilotare un ingresso solo se VOL<VILV_{OL}<V_{IL} della porta pilotata con margine sufficiente; ogni riduzione di VOLV_{OL} costa area.

Potenza statica

Quando l'uscita è bassa la corrente di regime è quella del carico: I=IDnI=I_{Dn} calcolata al punto di lavoro, e Pstat=VDD IP_{stat}=V_{DD}\,I. Nell'esempio Zn=4Z_n=4, Zp=2Z_p=2: I=163 μAI=163\ \mu\mathrm A e P=2,5⋅163 μA=0,41 mWP=2{,}5\cdot163\ \mu\mathrm A=0{,}41\ \mathrm{mW}, anche senza commutazioni. Quando l'uscita è alta la PDN non conduce e il consumo statico è (ideale) nullo. Perciò la pseudo-nMOS si usa solo dove il numero di ingressi o la velocità giustificano il costo. Il consumo statico dipende dal p-MOS di carico: un carico più debole riduce corrente e potenza ma allunga il ritardo di salita.

Ritardi

Il compromesso di dimensionamento: ZpZ_p piccolo ⇒\Rightarrow VOLV_{OL} basso e potenza bassa, ma salita lenta; Zn/ZpZ_n/Z_p grande ⇒\Rightarrow VOLV_{OL} bassa, ma ZnZ_n più grande aumenta le capacità.

Altri carichi e altre applicazioni

Errori comuni

  • Dire che VOL=0V_{OL}=0: dipende dal rapporto delle dimensioni.
  • Dimenticare la potenza statica: la porta consuma corrente per tutto il tempo in cui l'uscita è bassa.
  • Calcolare tpLHt_{pLH} con RnR_n (la salita è del p-MOS di carico).
  • Usare la zona lineare per il p-MOS: ha VSDV_{SD} grande (quasi VDDV_{DD}) ed è in saturazione, e l'n-MOS è lineare (verificare comunque).

Versione ripasso

  • Struttura: PDN a n-MOS + un p-MOS con gate a massa (sempre acceso) come carico; N+1N+1 transistor invece di 2N2N; F=f‾F=\overline f; VOH=VDDV_{OH}=V_{DD}.
  • VOLV_{OL}: n-MOS lineare = p-MOS saturazione: kn′Zn[VGTnVOL−VOL2/2]=∣kp′∣2Zp(VDD−∣VTp∣)2(1+∣λp∣(VDD−VOL))k'_nZ_n[V_{GTn}V_{OL}-V_{OL}^2/2]=\frac{\lvert k'_p\rvert}2Z_p(V_{DD}-\lvert V_{Tp}\rvert)^2(1+\lvert\lambda_p\rvert(V_{DD}-V_{OL})); VOL≈∣kp′∣Zp(VDD−∣VTp∣)22kn′ZnVGTnV_{OL}\approx\frac{\lvert k'_p\rvert Z_p(V_{DD}-\lvert V_{Tp}\rvert)^2}{2k'_nZ_nV_{GTn}}. Esempio Zn=4Z_n=4, Zp=2Z_p=2: 0,1760{,}176 V (0,1420{,}142 senza λ\lambda); Zn=6Z_n=6: 0,1160{,}116 V.
  • Potenza statica: P=VDDIP=V_{DD}I con uscita bassa (163 μ163\ \muA, 0,410{,}41 mW); nulla con uscita alta.
  • Ritardi: tpLH=0,69RpCLt_{pLH}=0{,}69R_pC_L (solo carico, lento); tpHL≈0,69RnCLt_{pHL}\approx0{,}69R_nC_L (VFL≈0V_{FL}\approx0): 250250 e 5252 ps con 2323 fF.
  • Compromesso: ZpZ_p piccolo ⇒\Rightarrow VOLV_{OL} e potenza bassi, salita lenta. Usi: ROM a NOR, PLA, decoder.
  • Errori: VOL=0V_{OL}=0; potenza statica dimenticata; tpLHt_{pLH} con RnR_n; regioni invertite.

Esercizi su questo argomento

Teoria collegata