Salta al contenuto
Note per Studenti Esercizio 5 · NAND e NOR con soglia logica assegnata, ritardi, potenza e uscite in contrasto (tema d'esame luglio 2025)

Esercizio 5NAND e NOR con soglia logica assegnata, ritardi, potenza e uscite in contrasto (tema d'esame luglio 2025)

Esame
In questa pagina 7

Testo (tema d'esame 2 luglio 2025, esercizio 2). Un circuito è formato da porte in CMOS complementare statica: una NAND a due ingressi (bb, cc) la cui uscita GG pilota un ingresso di una NOR a due ingressi (l'altro ingresso è aa), con uscita FF.

  1. Disegnare le due porte in CMOS complementare statica.
  2. Per la NAND Zn=4Z_n=4 e per la NOR Zn=1Z_n=1: calcolare le dimensioni dei p-MOS affinché entrambe le porte abbiano tensione di soglia logica VM=1,5 VV_M=1{,}5\ \mathrm V.
  3. Calcolare tPHLt_{PHL} e tPLHt_{PLH} dagli ingressi della NAND al nodo FF, includendo su FF una capacità estrinseca CL=50 fFC_L=50\ \mathrm{fF}.
  4. Calcolare il consumo totale di potenza dinamica se a=1a=1 mentre bb e cc commutano tra 00 e VDDV_{DD} (b=cb=c) a f=15 MHzf=15\ \mathrm{MHz}.
  5. Nella configurazione in cui le uscite delle due porte sono collegate insieme nel nodo FF, con ingressi NAND =(1,1)=(1,1) e ingressi NOR =(0,0)=(0,0), calcolare la tensione a regime di FF.

Dati. Ln=Lp=0,35 μmL_n=L_p=0{,}35\ \mu\mathrm m; kn′=90k'_n=90, kp′=−40 μA/V2k'_p=-40\ \mu\mathrm A/\mathrm V^2; VT0n=0,6V_{T0n}=0{,}6, VT0p=−0,6 VV_{T0p}=-0{,}6\ \mathrm V; λn=0,2\lambda_n=0{,}2, λp=−0,5 V−1\lambda_p=-0{,}5\ \mathrm V^{-1}; VDD=3 VV_{DD}=3\ \mathrm V; Cd0=Cs0=2 fF/μmC_{d0}=C_{s0}=2\ \mathrm{fF}/\mu\mathrm m; Cox=3 fF/μm2C_{ox}=3\ \mathrm{fF}/\mu\mathrm m^2; Rn0=12 kΩR_{n0}=12\ \mathrm{k\Omega}, Rp0=20 kΩR_{p0}=20\ \mathrm{k\Omega} (per W=1 μmW=1\ \mu\mathrm m). Effetto body trascurato. Due transistor in serie con fattore ZZ equivalgono a uno con Z/2Z/2; in parallelo a uno con 2Z2Z.

Teoria usata: 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 →, 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 →, 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 →.


1. Schema

  • NAND(bb,cc): PDN con due n-MOS in serie (gate bb e cc); PUN con due p-MOS in parallelo (gate bb e cc). Uscita G=bc‾G=\overline{bc}.
  • NOR(aa,GG): PDN con due n-MOS in parallelo (gate aa e GG); PUN con due p-MOS in serie. Uscita F=a+G‾=a‾⋅bcF=\overline{a+G}=\overline a\cdot bc.

2. Dimensionamento per VM=1,5 VV_M=1{,}5\ \mathrm V

Per una porta con tutti gli ingressi collegati insieme l'n-MOS equivalente ha Zn,eqZ_{n,eq} (serie: Zn/NZ_n/N; paralleli: NZnNZ_n) e il p-MOS Zp,eqZ_{p,eq} (paralleli: NZpNZ_p; serie: Zp/NZ_p/N). In Vin=Vout=VMV_{in}=V_{out}=V_M entrambi sono in saturazione (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 →); uguagliando le correnti con λ\lambda: kn′2Zn,eq(VM−VTn)2(1+λnVM)=∣kp′∣2Zp,eq(VDD−VM−∣VTp∣)2(1+∣λp∣(VDD−VM)).\frac{k'_n}2Z_{n,eq}(V_M-V_{Tn})^2(1+\lambda_nV_M)=\frac{\lvert k'_p\rvert}2Z_{p,eq}(V_{DD}-V_M-\lvert V_{Tp}\rvert)^2\big(1+\lvert\lambda_p\rvert(V_{DD}-V_M)\big). Con VM=1,5 VV_M=1{,}5\ \mathrm V: VM−VTn=0,9 VV_M-V_{Tn}=0{,}9\ \mathrm V e VDD−VM−∣VTp∣=0,9 VV_{DD}-V_M-\lvert V_{Tp}\rvert=0{,}9\ \mathrm V (uguali), 1+λnVM=1,31+\lambda_nV_M=1{,}3 e 1+∣λp∣⋅1,5=1,751+\lvert\lambda_p\rvert\cdot1{,}5=1{,}75: Zp,eqZn,eq=kn′∣kp′∣⋅1,31,75=2,25⋅0,743=1,671.\frac{Z_{p,eq}}{Z_{n,eq}}=\frac{k'_n}{\lvert k'_p\rvert}\cdot\frac{1{,}3}{1{,}75}=2{,}25\cdot0{,}743=1{,}671. (Senza λ\lambda sarebbe 2,252{,}25.)

  • NAND: Zn,eq=4/2=2⇒Zp,eq=3,343=2ZpZ_{n,eq}=4/2=2\Rightarrow Z_{p,eq}=3{,}343=2Z_p (due p-MOS in parallelo) ⇒\Rightarrow Zp=1,671, Wp=0,585 μm\boxed{Z_p=1{,}671,\ W_p=0{,}585\ \mu\mathrm m} (n-MOS: Wn=4⋅0,35=1,4 μmW_n=4\cdot0{,}35=1{,}4\ \mu\mathrm m).
  • NOR: Zn,eq=2⋅1=2⇒Zp,eq=3,343=Zp/2Z_{n,eq}=2\cdot1=2\Rightarrow Z_{p,eq}=3{,}343=Z_p/2 (due p-MOS in serie) ⇒\Rightarrow Zp=6,686, Wp=2,34 μm\boxed{Z_p=6{,}686,\ W_p=2{,}34\ \mu\mathrm m} (n-MOS: Wn=0,35 μmW_n=0{,}35\ \mu\mathrm m). Le soglie logiche numeriche con il modello completo sono 1,500 V1{,}500\ \mathrm V per entrambe.

3. Ritardi dagli ingressi della NAND a FF

Le resistenze scalano con WW: R=R0/W[μm]R=R_0/W[\mu\mathrm m].

  • NAND: Rn=12/1,4=8,57 kΩR_n=12/1{,}4=8{,}57\ \mathrm{k\Omega} (ciascun n-MOS), Rp=20/0,585=34,2 kΩR_p=20/0{,}585=34{,}2\ \mathrm{k\Omega}.
  • NOR: Rn=12/0,35=34,3 kΩR_n=12/0{,}35=34{,}3\ \mathrm{k\Omega}, Rp=20/2,34=8,55 kΩR_p=20/2{,}34=8{,}55\ \mathrm{k\Omega} (ciascun p-MOS).

Capacità.

  • Ingresso del NOR (gate di n-MOS e p-MOS): Cg=CoxL(Wn+Wp)=3⋅0,35⋅(0,35+2,34)=2,82 fFC_g=C_{ox}L(W_n+W_p)=3\cdot0{,}35\cdot(0{,}35+2{,}34)=2{,}82\ \mathrm{fF}.
  • Nodo GG: un drain di n-MOS (1,4⋅2=2,8 fF1{,}4\cdot2=2{,}8\ \mathrm{fF}), due drain di p-MOS (2⋅0,585⋅2=2,34 fF2\cdot0{,}585\cdot2=2{,}34\ \mathrm{fF}), più CgC_g: CG=2,8+2,34+2,82=7,96 fFC_G=2{,}8+2{,}34+2{,}82=7{,}96\ \mathrm{fF}; nodo interno della NAND (source/drain dei due n-MOS): 5,6 fF5{,}6\ \mathrm{fF}.
  • Nodo FF: drain del p-MOS vicino all'uscita (2,34⋅2=4,68 fF2{,}34\cdot2=4{,}68\ \mathrm{fF}), due drain di n-MOS (2⋅0,7=1,4 fF2\cdot0{,}7=1{,}4\ \mathrm{fF}) più CLC_L: CF=4,68+1,4+50=56,1 fFC_F=4{,}68+1{,}4+50=56{,}1\ \mathrm{fF}; nodo interno della serie di p-MOS: 2⋅4,68=9,4 fF2\cdot4{,}68=9{,}4\ \mathrm{fF}.

Ritardi delle singole porte (caso peggiore, Elmore con i nodi interni):

  • NAND tpHLt_{pHL} (serie di due n-MOS, nodo interno da scaricare): 0,69 (RnCint+2RnCG)=0,69 (8,57⋅5,6+17,14⋅7,96)=127 ps0{,}69\,(R_nC_{int}+2R_nC_G)=0{,}69\,(8{,}57\cdot5{,}6+17{,}14\cdot7{,}96)=127\ \mathrm{ps}; NAND tpLHt_{pLH} (un solo p-MOS): 0,69⋅34,2⋅7,96=188 ps0{,}69\cdot34{,}2\cdot7{,}96=188\ \mathrm{ps}.
  • NOR tpHLt_{pHL} (un solo n-MOS acceso): 0,69⋅34,3 kΩ⋅56,1 fF=1327 ps0{,}69\cdot34{,}3\ \mathrm{k\Omega}\cdot56{,}1\ \mathrm{fF}=1327\ \mathrm{ps}; NOR tpLHt_{pLH} (serie di due p-MOS): 0,69 (8,55⋅9,4+17,1⋅56,1)=717 ps0{,}69\,(8{,}55\cdot9{,}4+17{,}1\cdot56{,}1)=717\ \mathrm{ps}.

Cammino dagli ingressi della NAND a FF. Quando b=cb=c salgono, GG scende e FF sale; quando scendono, GG sale e FF scende: tPLH(F)=tpHLNAND+tpLHNOR=127+717=844 ps,tPHL(F)=tpLHNAND+tpHLNOR=188+1327=1515 ps.t_{PLH}(F)=t_{pHL}^{NAND}+t_{pLH}^{NOR}=127+717=\boxed{844\ \mathrm{ps}},\qquad t_{PHL}(F)=t_{pLH}^{NAND}+t_{pHL}^{NOR}=188+1327=\boxed{1515\ \mathrm{ps}}. (Senza nodi interni tPLH=756 pst_{PLH}=756\ \mathrm{ps}.) Il ritardo è dominato dalla NOR con Zn=1Z_n=1 che scarica 56 fF56\ \mathrm{fF} con 34 kΩ34\ \mathrm{k\Omega}: un buffer o un n-MOS più grande migliorerebbe molto tPHLt_{PHL}.

4. Potenza dinamica

Con a=1a=1 la NOR ha F=0F=0 sempre: né FF né i nodi interni della NOR commutano. Con b=cb=c che passano da 00 a VDDV_{DD} alla frequenza ff, il nodo GG compie una transizione 0→10\to1 per periodo (e si carica solo attraverso i p-MOS); il nodo interno della NAND resta a 00 (non si ricarica: nessun cammino da VDDV_{DD}). Quindi, trascurando i nodi di ingresso: P=CG VDD2 f=7,96 fF⋅9⋅15 MHz=1,08 μW.P=C_G\,V_{DD}^2\,f=7{,}96\ \mathrm{fF}\cdot9\cdot15\ \mathrm{MHz}=\boxed{1{,}08\ \mu\mathrm W.}

5. Uscite in contrasto

Con NAND(1,1)(1,1) i due n-MOS in serie conducono e cercano di portare FF a 00 (i p-MOS sono spenti); con NOR(0,0)(0,0) i due p-MOS in serie conducono e cercano di portarlo a VDDV_{DD} (gli n-MOS sono spenti). FF è il punto in cui le correnti si uguagliano: è un partitore tra la serie degli n-MOS (Zn,eq=2Z_{n,eq}=2, VGS=VDDV_{GS}=V_{DD}) e quella dei p-MOS (Zp,eq=3,343Z_{p,eq}=3{,}343, VSG=VDDV_{SG}=V_{DD}): kn′Zn,eq[(VDD−VTn)VF−VF22]=∣kp′∣Zp,eq[(VDD−∣VTp∣)(VDD−VF)−(VDD−VF)22]k'_nZ_{n,eq}\Big[(V_{DD}-V_{Tn})V_F-\frac{V_F^2}2\Big]=\lvert k'_p\rvert Z_{p,eq}\Big[(V_{DD}-\lvert V_{Tp}\rvert)(V_{DD}-V_F)-\frac{(V_{DD}-V_F)^2}2\Big] (entrambi in zona lineare: verifica a posteriori). Con VGT=2,4 VV_{GT}=2{,}4\ \mathrm V: 180 (2,4VF−0,5VF2)=133,7 (2,4(3−VF)−0,5(3−VF)2)180\,(2{,}4V_F-0{,}5V_F^2)=133{,}7\,(2{,}4(3-V_F)-0{,}5(3-V_F)^2), da cui VF=1,11 V.\boxed{V_F=1{,}11\ \mathrm V.} Verifica: n-MOS VDS=1,11<2,4V_{DS}=1{,}11<2{,}4 ✓ lineare; p-MOS VSD=1,89<2,4V_{SD}=1{,}89<2{,}4 ✓ lineare. La corrente di contrasto è I=368 μAI=368\ \mu\mathrm A (P=1,1 mWP=1{,}1\ \mathrm{mW} di potenza statica). La tensione è intermedia (né 00 né VDDV_{DD}): non è un livello logico valido, perciò due uscite push-pull non vanno mai collegate insieme senza tri-state (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 →). Con il dimensionamento senza λ\lambda (Zp,eq=4,5Z_{p,eq}=4{,}5 per un rapporto 2,252{,}25) le due reti sarebbero simmetriche e VF=VDD/2=1,5 VV_F=V_{DD}/2=1{,}5\ \mathrm V.

Verifica numerica

Python: VMV_M del modello completo (1,500 V1{,}500\ \mathrm V per NAND e NOR con i ZpZ_p trovati); ritardi di Elmore (127127, 188188, 13271327, 717 ps717\ \mathrm{ps}); VF=1,107 VV_F=1{,}107\ \mathrm V risolvendo In=IpI_n=I_p con le formule del corso.

Errori comuni

  • Dimenticare di usare ZeqZ_{eq} (serie e paralleli) per calcolare VMV_M di una porta.
  • Usare la formula di VMV_M senza λ\lambda quando i dati lo includono e i valori sono grandi: cambia il rapporto da 2,252{,}25 a 1,671{,}67.
  • Sommare i ritardi delle due porte con le transizioni sbagliate: GG e FF hanno transizioni opposte (tPHL(F)t_{PHL}(F) somma il tpLHt_{pLH} della NAND e il tpHLt_{pHL} della NOR).
  • Calcolare la tensione di contrasto assumendo uno dei transistor in saturazione senza verificare.

Versione ripasso

Testo. NAND(bb,cc) →G→\to G\to NOR(aa,GG) →F\to F; Zn=4Z_n=4 (NAND), 11 (NOR); VM=1,5V_M=1{,}5 V; CL=50C_L=50 fF; f=15f=15 MHz; kn′=90k'_n=90, kp′=−40k'_p=-40, VT=±0,6V_T=\pm0{,}6, λn=0,2\lambda_n=0{,}2, λp=−0,5\lambda_p=-0{,}5, VDD=3V_{DD}=3, L=0,35 μL=0{,}35\ \mum, Rn0=12R_{n0}=12 k, Rp0=20R_{p0}=20 k (W=1 μW=1\ \mum), Cd0=2C_{d0}=2, Cox=3C_{ox}=3.

  • VMV_M: Zp,eq/Zn,eq=9040⋅1+0,2⋅1,51+0,5⋅1,5=1,671Z_{p,eq}/Z_{n,eq}=\frac{90}{40}\cdot\frac{1+0{,}2\cdot1{,}5}{1+0{,}5\cdot1{,}5}=1{,}671; NAND (Zn,eq=2Z_{n,eq}=2, p in parallelo): Zp=1,671Z_p=1{,}671, Wp=0,585W_p=0{,}585; NOR (Zn,eq=2Z_{n,eq}=2, p in serie): Zp=6,686Z_p=6{,}686, Wp=2,34 μW_p=2{,}34\ \mum.
  • Capacità: CG=2,8+2,34+2,82=7,96C_G=2{,}8+2{,}34+2{,}82=7{,}96 fF; CF=4,68+1,4+50=56,1C_F=4{,}68+1{,}4+50=56{,}1 fF.
  • Ritardi: NAND 127/188127/188 ps (tpHL/tpLHt_{pHL}/t_{pLH}), NOR 1327/7171327/717 ps; tPLH(F)=127+717=844t_{PLH}(F)=127+717=844 ps; tPHL(F)=188+1327=1515t_{PHL}(F)=188+1327=1515 ps.
  • Potenza: a=1a=1: solo GG commuta: CGVDD2f=1,08 μC_GV_{DD}^2f=1{,}08\ \muW.
  • Contrasto: NAND(1,1) Zn,eq=2Z_{n,eq}=2 contro NOR(0,0) Zp,eq=3,343Z_{p,eq}=3{,}343, entrambi lineari: VF=1,11V_F=1{,}11 V (I=368 μI=368\ \muA); senza λ\lambda sarebbe 1,51{,}5 V.
  • Errori: ZeqZ_{eq} dimenticato; λ\lambda trascurato; transizioni G/F; regione assunta senza verifica.

Teoria collegata