RACCOLTA ESERCIZI Circuiti Digitali
Transcript
RACCOLTA ESERCIZI Circuiti Digitali
Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica Corso di Elettronica Digitale Anno Accademico 2008/2009 RACCOLTA ESERCIZI Circuiti Digitali LOGICA CMOS STATICA ESERCIZIO 1 Dato il layout nella figura della pagina successiva e sapendo che il processo è un processo CMOS 0.6 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.6µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 2 25e-6 (A/V2) 74e-6 (A/V ) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito corrispondente ed identificare la funzionalità logica implementata (A e B sono gli ingressi, Z l’uscita) b) Spiegare, senza fare conti ma ragionando sulle capacità, quale è la combinazione di ingressi che dà luogo alla commutazione di caso peggiore c) Calcolare il tempo di propagazione nel caso peggiore supponendo che il carico sia equivalente ad una capacità di 10fF d) Scrivere la netlist spice per la verifica dei tempi di propagazione calcolati 2 LOGICA CMOS STATICA 10 quadrati = 3um Figura 1 3 LOGICA CMOS STATICA a) Circuito e funzione logica Per identificare i MOS si cercano le intersezioni fra poly e nplus (nmos) o poly e pplus (pmos). I 4 mos presenti nel layout sono interconnessi a formare una porta NOR. b) Transizione di caso peggiore Innanzitutto bisogna notare che i 4 mos sono tutti equivalenti fra loro ed in prima approssimazione equivalenti a 4 resistenze uguali, infatti il rapporto fra mobilità di lacune ed elettroni è 3, ma i due pmos sono 3 volte più larghi dei due nmos. Il caso peggiore è dato dalla transizione B=0, A:1=>0. Infatti in tale caso il percorso di carica del nodo di uscita Z passa attraverso la serie dei due pmos M1 e M2 (quindi resistenza maggiore che nel caso di un solo nmos o addirittura di due nmos in parallelo, come per i vari percorsi di scarica), inoltre in tale combinazione il nodo intermedio 1 è inizialmente connesso all’uscita da M2 e le capacità parassite associate saranno sul percorso di carica andando ad aumentare il prodotto RC che determina il ritardo. 4 LOGICA CMOS STATICA c) Tempo di propagazione In primo luogo è necessario calcolare le capacità parassite coinvolte nella transizione di caso peggiore. Esaminando i nodi interni che devono commutare vediamo le capacità parassite che vanno pilotate: Nodo Z: Cpz = Cdb3+Cdb4+Cdb2+2Cgd3+Cgd4+Cgd2 (Cgd3 contata doppia per via dell’effetto Miller, le altre sono tutte le capacità che sono connesse fra il nodo Z ed una tensione costante) Nodo N1: Cpn1=Cdb1+Csb2+2Cgd1+Cgs2 (Cgd1 contata doppia per via dell’effetto Miller, le altre sono tutte le capacità che sono connesse fra il nodo N1 ed una tensione costante, il nodo N1 infatti deve essere caricato perché inizialmente è connesso all’uscita Z tramite M2) Dal layout si vede che il drain di M1 ed il source di M2 coincidono (sono realizzati con una sola diffusione) quindi considereremo metà del perimetro e dell’area della diffusione come appartenenti al drain di M1 e l’altra metà appartenente al source di M1. Dal layout si vede anche che il drain di M3 e quello di M4 coincidono (sono realizzati con una sola diffusione) quindi considereremo metà del perimetro e dell’area della diffusione come appartenenti al drain di M3 e l’altra metà appartenente al drain di M4. Le dimensioni dei transistor necessarie per il calcolo delle capacità suddette sono: PMOS NOME W L AD PD AS PS M1 3.6E-06 0.6E-06 1.62E-12 0.9E-06 M2 3.6E-06 0.6E-06 8.64E-12 8.4E-06 1.62E-12 0.9E-06 NOME W L AD PD AS PS M3 1.2E-06 M4 1.2E-06 0.6E-06 2.34E-12 3.6E-06 0.6E-06 2.34E-12 3.6E-06 NMOS Dalle dimensioni si possono calcolare tutte le capacità parassite: Cdb1 = Csb2 = Keq(CJ AD1 + CJSW PD1) = 0.82fF Cgd1 = Cgd2 = COV W1 = 0.5fF Cgs2 = 2/3CoxWL + COV W1 = 5.53fF Cdb2 = 5fF Cdb3 = Cdb4 = 1.5fF Cgd3 = Cgd4 = 0.1656fF E’ possibile ora calcolare le capacità ai 2 nodi sul percorso di carica (N1 e Z): CL = CL’+ Cpz = 19 fF Cpn1 = 8.17 fF Per calcolare la costante di tempo bisogna calcolare la resistenza di ciascun PMOS sul 5 LOGICA CMOS STATICA percorso (i due PMOS sono uguali quindi sono uguali le rispettive resistenze equivalenti). Per fare questo, innanzitutto, serve la corrente di saturazione: Isatp1 = Isatp2 = up COX (W/L)1 VDSATp (VDD - VTH - VDSATp/2) = 154uA Si può così calcolare la resistenza equivalente: Reqp = 3/4 VDD/Isatp = 16kΩ Il tempo di propagazione si ottiene dalla formula di Elmore: tpLH = 0.69 Reqp ( Cpn1 + 2 CL ) = 509.7 psec d) Netlist spice *Netlist di simulazione tempo propagazione * Inclusione .include models.dat * Netlist m1 1 a vdd vdd p1 w=3.6u l=0.6u ad=1.62e-12 pd=0.9u m2 z b 1 vdd p1 w=3.6u l=0.6u ad=8.64e-12 pd=8.4u as=1.62e-12 ps=0.9u * Metà della diffusione la considero drain di m1 e metà source di m2 m3 z a 0 0 n1 w=1.2u l=0.6u ad=2.34e-12 pd=3.6u m4 z b 0 0 n1 w=1.2u l=0.6u ad=2.34e-12 pd=3.6u * Metà della diffusione la considero drain di m3 e metà drain di m4 cl z 0 10f * Generatori vdd vdd 0 3.3 va a 0 pulse 3.3 0 10n 10p 10p 5n 10n vb b 0 dc 0 * Analisi .tran 10p 12n .end 6 LOGICA CMOS STATICA ESERCIZIO 2 Avendo a disposizione un processo CMOS 0.5 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 2 25e-6 (A/V2) 100e-6 (A/V ) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Trovare la funzione logica implementata dal circuito in Figura 1 (pagina seguente) e dire a quale famiglia logica appartiene il circuito b) Dimensionare i transistor in modo da ottenere VTC simmetrica e tempi di propagazione di caso peggiore uguali (dimensionamento ottimo, NON semplificato) usando MOS a lunghezza minima (scrivere la dimensione effettiva della W, espressa in um, sapendo che il valore minimo di W realizzabile è 0.5um) c) Dire quale è la combinazione di ingressi (in cui l’ingresso che varia è uno solo fra A, B, C e D) di caso peggiore per la commutazione HL e spiegare qualitativamente per quale motivo d) Supponendo che tutte le capacità Cdb e Csb (dei pmos come degli nmos) siano pari a 1fF calcolare il tempo di propagazione tpHL nel caso peggiore con un carico di 10fF e) Scrivere la netlist spice per la verifica del tempo di propagazione calcolato 7 LOGICA CMOS STATICA Figura 1 a) Funzione logica a1) La funzione logica implementata è: Z=B’+[A’(D’+C’)]= =[B(A+DC)]’ partendo dal PUN partendo dal PDN ovviamente, per De Morgan, le due espressioni coincidono. a2) Il circuito appartiene alla famiglia logica: Logica CMOS statica b) Dimensionamento Per tutti i MOS la lunghezza è sempre: L=Lmin=0.5um Per le W dobbiamo dimensionare per avere tutti i percorsi a massa equivalenti al nMOS con W minima (0.5um) ed i percorsi a VDD equivalenti al pMOS con: up COX Wp/Lmin VDSATp = un COX Wn/Lmin VDSATn ossia: Wp = un / up Wn = 4Wn = 2um Questo è il dimensionamento ottimo NON semplificato, ossia come ricavato dalla formula 8 LOGICA CMOS STATICA e non utilizzando il valore semplificato Wp = 2Wn che si usa solitamente. M1 e M2, in serie devono essere equivalenti ad un MOS con W=0.5um quindi, W1=W2=1um M3 e M4, in serie, devono essere equivalenti ad un MOS con W=1um così che, messi poi in serie con M2 (che ha W=1um), risultino equivalenti al MOS con W=0.5um W3=W4=2um M8 è un singolo pMOS quindi deve avere W8 =2um M5 e M6 in serie, oppure M5 e M7, devono essere equivalenti ad un pMOS con W=2um W5=W6=W7=4um c) Commutazione di caso peggiore A=0 B=1 C=commuta D=1 Perché: I percorsi di scarica sono 2 (attraverso A e B oppure attraverso B, D e C). Dal punto di vista della resistenza equivalente i due percorsi sono uguali (dimensionamento ottimo), il caso peggiore si ha quando si hanno il maggior numero di capacità parassite coinvolte (ossia il maggior numero di nodi intermedi coinvolti, N2 e N3, quindi inizialmente cortocircuitati all’uscita). Questo avviene appunto se D=1 e B=1 e C commuta. d) Tempo di propagazione tpHL = 0.69 (R4 Cpn3 + (R3+R4) Cpn2 + (R4+R3+R2) CL + (R4+R3+R2) Cpn1) La corrente di scarica è quella che scorre attraverso un transistor a dimensione minima (W=0.5u, L=0.5u) per via del dimensionamento ottimo: Isatn2=kn (W/L)2 VDSATn (VDD - VTH - VDSATn2/2) = 205 uA Isatn4=kn (W/L)4 VDSATn (VDD - VTH - VDSATn2/2) = 410 uA R2 = ¾ VDD/Isatn2 = 12 kΩ R4 = R3= ¾ VDD/Isatn4 = 6 kΩ Le capacità di gate-drain e gate-source vanno calcolate, mentre quelle drain-body e source-body sono tutte pari a 1fF: Cgd1 = Cgd2 = Cov*W1,2 = 0.138fF Cgs2 = 2/3Cox*W2*L2 + Cov*W2 = 1.3fF Cgd3 = Cgd4 = Cov*W3,4 = 0.276fF Cgs3 = 2/3Cox*W3*L3 + Cov*W3 = 2.609fF Cgd6 = Cgd7 = Cov*W6,7 = 0.552fF Cgd5 = Cgs5 = 1/2Cox*W5*L5 + Cov*W5 = 4.05fF (pmos in triodo) Cgd8 = Cov*W8 = 0.276fF Calcoliamo le capacità parassite considerando le varie componenti: Nodo N1: Cpn1=Cgs5+Csb5+2Cgd6+Cdb6+Cgd7+Cdb7= 8.708 fF (Cgd6 pesato 2 per Miller) Nodo N2: Cpn2=Cdb1+Cdb3+Csb2+Cgd1+Cgd3+Cgs2= 4.714 fF Nodo N3: Cpn3=Cdb4+Csb3+2Cgd4+Cgs3 = 5.161 fF (Cgd4 pesato 2 per Miller) Nodo Z: Cpz=Cdb2+Cdb5+Cdb8+Cgd2+Cgd5+Cgd8 = 7.464 fF CL = CL’ + Cpz = 17.464 fF 9 LOGICA CMOS STATICA tpHL=0.69(R4 Cpn3 + (R3+R4)Cpn2 + (R4+R3+R2) CL + (R4+R3+R2)Cpn1)= 493.7 psec e) Netlist spice * Simulazione porta CMOS .include models.dat * Netlist * PDN m1 1 A 0 0 n1 w=1u l=0.5u m2 Z B 1 0 n1 w=1u l=0.5u m3 1 D 2 0 n1 w=2u l=0.5u m4 2 C 0 0 n1 w=2u l=0.5u * PUN m5 Z A 3 vdd p1 w=4u l=0.5u m6 Z B vdd vdd p1 w=2u l=0.5u m7 3 D vdd vdd p1 w=4u l=0.5u m8 3 C vdd vdd p1 w=4u l=0.5u * Carico cl z 0 10f * Generatori vdd vdd 0 3.3 va A 0 0 vb B 0 3.3 vd D 0 3.3 vc C 0 pulse 0 3.3 5n 1p 1p 5n 10n .tran 1p 12n .end 10 LOGICA CMOS STATICA ESERCIZIO 2 Avendo a disposizione un processo CMOS 0.5 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 2 75e-6 (A/V ) 25e-6 (A/V2) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito corrispondente alla netlist in Figura 1 b) Identificare la funzione logica implementata c) Dire quale è la combinazione di ingressi (in cui l’ingresso che varia è uno solo fra A, B e C) di caso peggiore per la commutazione HL e spiegare qualitativamente perché d) Calcolare il tempo di propagazione tpHL nel caso peggiore supponendo di avere un carico costituito da un inverter a dimensionamento ottimo semplificato * Function Z * Modelli (n1=nmos, p1=pmos) .include models.dat * Netlist m4 Z A 2 0 n1 w=0.5u l=0.5u ad=1e-12 as=1e-12 pd=2u ps=2u m5 2 B 0 0 n1 w=0.5u l=0.5u ad=1e-12 as=1e-12 pd=2u ps=2u m6 Z C 0 0 n1 w=0.5u l=0.5u ad=1e-12 as=1e-12 pd=2u ps=2u m1 1 A vdd vdd p1 w=0.5u l=0.5u ad=1e-12 as=1e-12 pd=2u ps=2u m2 1 B vdd vdd p1 w=0.5u l=0.5u ad=1e-12 as=1e-12 pd=2u ps=2u m3 Z C 1 vdd p1 w=0.5u l=0.5u ad=1e-12 as=1e-12 pd=2u ps=2u vdd vdd 0 3.3 va A 0 pulse 0 3.3 0 10p 10p 5n 10n vb B 0 pulse 0 3.3 0 10p 10p 10n 20n vc V 0 pulse 0 3.3 0 10p 10p 20n 40n .tran 10p 40n .end Figura 1 11 LOGICA CMOS STATICA a) Circuito b) Funzione logica Z= (A’+B’) C’ = (AB+C)’ c) Commutazione di caso peggiore A=1 B=commuta C=0 Perché: In tale situazione è massima la resistenza attraverso cui avviene la scarica (i MOS hanno tutti la stessa W/L ed è quindi massima la resistenza di due MOS in serie) ed anche la capacità parassita visto che tutte le capacità parassite introdotte dal nodo intermedio N2 sono da considerare. 12 LOGICA CMOS STATICA d) Tempo di propagazione Le capacità di diffusione dei pmos sono tutte uguali fra loro perché sono tutti i uguali i perimetri e le aree dei MOS indicati nella netlist. Così per le capacità di diffusione degli nmos. Cdbp=Csbp=Keq(CJp*ADp+CJSWp*PDp)=(0.816*1+0.355*2)fF=0.763fF Cdbn=Csbn=Keq(CJn*ADn+CJSWn*PDn)=(0.776*1+0.345*2)fF=0.733fF Cgd1,2,4,5,6 = Cov*W = 0.138*W = 0.069fF Cgs4 = 2/3Cox*WL + Cov*W=0.652fF (mos in saturazione) Cgd3 = Cgs3 =1/2Cox*WL + Cov*W=0.506fF (mos in triodo) Il contributo al carico dovuto alle capacità parassite dei vari nodi è: Nodo 1: Cpn1 = Cgs3+Csb3+2Cgd2+Cdb2+Cgd1+Cdb1= 3.002 fF (Cgd2 pesato 2 per Miller) Nodo N2: Cpn2 = Cdb5 + Csb4 + 2Cgd5 + Cgs4 = 2.256 fF (Cgd5 pesato 2 per Miller) Nodo Z: Cpz = Cdb3 + Cdb4 + Cdb6 + Cgd3 + Cgd4 + Cgd6 = 2.873 fF Il carico offerto dall’inverter è pari a: CL’=COX (WL)p + COX (WL)n La L del p e del n è minima (0.5um) la Wn=0.5u e Wp=1u (dimensionamento ottimo semplificato: Wp = 2Wn ) CL’ = COX ( Wp + Wn ) Lmin = 2.625 fF CL = CL’ + Cpz = 5.498 fF La resistenza di ciascun MOS sul percorso di scarica è: Isatn = un COX W/L VDSATn (VDD – VTH –VDSATn/2) = 77 uA Reqn = ¾ VDD / IDSATn = 32 kΩ Applicando la formula di Elmore, il tempo di propagazione HL è dunque: tpHL = 0.69 (R5Cpn2 + (R5+R4) CL + (R5+R4) Cpn1) tpHL = 0.69 Reqn ( Cpn2 + 2 CL + 2 Cpn1) = 425.17 psec 13 LOGICA CMOS STATICA ESERCIZIO 4 Avendo a disposizione un processo CMOS 0.5 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 2 75e-6 (A/V ) 25e-6 (A/V2) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito che corrisponde al layout in Figura 1 ed identificare la porta logica implementata. (N.B. NPLUS è la zona attiva N o diffusione N, PPLUS la zona attiva P o diffusione P) b) Dire quale commutazione di un singolo segnale di ingresso costituisce il caso peggiore per la commutazione HL e spiegare brevemente perché c) Calcolare il tpHL nella commutazione identificata al caso precedente nel caso in cui il carico sia costituito da un inverter pseudo-NMOS (lo nMOS del carico ha la stessa dimensione di quelli della porta di Figura 1, mentre il pMOS ha W=1u L=2u) d) Scrivere la netlist spice per la verifica del tempo di propagazione calcolato (nello scrivere la netlist sono sufficienti le W e L dei MOS senza gli altri parametri geometrici) 14 LOGICA CMOS STATICA 10λ = 2.5µm Figura 1 15 LOGICA CMOS STATICA a) Circuito e funzionalità Il circuito implementa evidentemente una NAND a 4 ingressi in tecnologia CMOS statico. b) Commutazione di caso peggiore Il caso peggiore è ovviamente quello in cui A commuta da 0 a 1 mentre B=C=D=1. In questo caso infatti è massima la resistenza (la serie dei 4 nMOS) e la capacità parassita (che comprende tutte le capacità parassite dei nodi intermedi fra il drain di M8 e l’uscita). 16 LOGICA CMOS STATICA c) Tempo di propagazione Formula di Elmore (tenendo conto che le resistenze sono tutte uguali poiché sono uguali gli NMOS) tpHL= 0.69 Req8 ( Cpn3 + 2Cpn2 + 3Cpn1 + 4CL) Per prima cosa è necessario calcolare tutte le dimensioni dei MOS, ricavandole direttamente dal layout, tenendo conto che per i transistor che condividono una diffusione (perché hanno in comune i due drain come M1 e M2 oppure drain e source come M8 e M7) si considera metà di area e perimetro appartenente ad un MOS e metà all’altro: Parametri geometrici e capacità parassite dei MOS PMOS NOME W L AD PD AS PS CDB CSB CGD CGS Isat M1 3.00E-06 5.00E-07 3.00E-12 2.00E-06 5.25E-12 6.50E-06 1.58E-15 3.30E-15 4.14E-16 3.914E-15 5.37E-04 M2 3.00E-06 5.00E-07 3.00E-12 2.00E-06 3.00E-12 2.00E-06 1.58E-15 1.58E-15 4.14E-16 3.914E-15 5.37E-04 M3 3.00E-06 5.00E-07 3.00E-12 2.00E-06 3.00E-12 2.00E-06 1.58E-15 1.58E-15 4.14E-16 3.914E-15 5.37E-04 M4 3.00E-06 5.00E-07 3.00E-12 2.00E-06 5.25E-12 6.50E-06 1.58E-15 3.30E-15 4.14E-16 3.914E-15 5.37E-04 NMOS NOME W L AD PD AS PS CDB CSB CGD CGS Isat M5 1.00E-06 5.00E-07 2.75E-12 6.00E-06 3.75E-13 7.50E-07 2.10E-15 2.75E-16 1.38E-16 1.304E-15 5.37E-04 M6 1.00E-06 5.00E-07 3.75E-13 7.50E-07 3.75E-13 7.50E-07 2.75E-16 2.75E-16 1.38E-16 1.304E-15 5.37E-04 M7 1.00E-06 5.00E-07 3.75E-13 7.50E-07 3.75E-13 7.50E-07 2.75E-16 2.75E-16 1.38E-16 1.304E-15 5.37E-04 M8 1.00E-06 5.00E-07 3.75E-13 7.50E-07 2.75E-12 6.00E-06 2.75E-16 2.10E-15 1.38E-16 1.304E-15 5.37E-04 Corrente di ciascun NMOS: Isat8 = Kn VDSATn (VDD-VTH-VDSATn/2) = 154 uA Req8 = Req7 = Req6 = Req5 = ¾ VD/Isat8 = 16 kΩ Capacità di carico (la sola capacità di ossido del nMOS perché il carico è una porta pseudo-NMOS): CL’= 3.5 * W * L = 1.75 fF Cgs5,6,7 = 2/3Cox*Wn*L + Cov*Wn Cgd5,6,7,8 = Cov*Wn Cgs1,2,3,4 = Cov*Wp Capacità parassite della porta. Nodo N1: Cpn1 = Cdb6+Csb5+Cgd6+Cgs5 = 1.992 fF Nodo N2: Cpn2 = Cdb7+Csb6+Cgd7+Cgs6 = 1.992 fF Nodo N3: Cpn3 = Cdb8+Csb7+2Cgd8+Cgs7 = 2.13 fF (Cgd8 pesata 2 per effetto Miller) Nodo Z: Cpz = CL’+Cdb5+Cdb1+Cdb2+Cdb3+Cdb4+2Cgd1+Cgd2+Cgd3+Cgd4+Cgd5 = 12.378 fF (Cgd1 pesata 2 per effetto Miller) Le capacità da prendere in considerazione sono evidenziate nella tabella: tpHL = 680 psec 17 LOGICA CMOS STATICA d) Netlist ** Porta NAND a 4 ingressi, CMOS ** Inclusione modelli dei MOS .include models.mod ** Netlist * Porta m1 Z A vdd vdd p1 w=3u l=0.5u m2 Z B vdd vdd p1 w=3u l=0.5u m3 Z C vdd vdd p1 w=3u l=0.5u m4 Z D vdd vdd p1 w=3u l=0.5u m5 Z D 1 0 n1 w=1u l=0.5u m6 1 C 2 0 n1 w=1u l=0.5u m7 2 B 3 0 n1 w=1u l=0.5u m8 3 A 0 0 n1 w=1u l=0.5u * Carico m9 Z2 0 vdd vdd p1 w=1u l=2u m10 Z2 Z 0 0 n1 w=1u l=0.5u ** Generatori vdd vdd 0 3.3 va A 0 pulse 0 3.3 5n 10p 10p 5n 10n vb B 0 dc 3.3 vc C 0 dc 3.3 vd D 0 dc 3.3 ** Analisi .tran 10p 12n .end 18 LOGICA CMOS STATICA ESERCIZIO 5 Avendo a disposizione un processo CMOS 0.5 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 75e-6 (A/V2) 25e-6 (A/V2) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.816 (fF/µm2) 0.776 (fF/µm ) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito che implementa la funzione logica: Z=[(A+B+C)(A+D+E)(A+F)]' con il minor numero di transistor possibile ipotizzando che F sia un segnale critico. b) Dimensionare il circuito in modo ottimo (tempi di propagazione uguali e VTC simmetrica, dimensionamento NON semplificato, considerare Wmin=0.5um) c) Dire quale è la commutazione di caso peggiore e spiegare brevemente perché. d) Supponendo che ogni capacità di diffusione (di drain o di source, sia dei pmos che degli nmos) valga 1fF calcolare il tpHL nella commutazione identificata al caso precedente nel caso in cui il carico sia costituito da un inverter realizzato in logica dinamica (i cui nmos hanno tutti W=1u e L=0.5u ed i pmos W=3u L=0.5u) 19 LOGICA CMOS STATICA a) Circuito Z’=(A+B+C)(A+D+E)(A+F)=(A+(B+C)(D+E))(A+F)=A+(B+C)(D+E)F Il transistor pilotato da F deve essere il più vicino all’uscita, in tal modo quando commuta deve pilotare la sola capacità di carico e non le capacità parassite dei nodi che si trovano più vicini ad un’alimentazione. b) Dimensionamento Con le solite regole del dimensionamento ottimo si impone che tutti i possibili percorsi di scarica siano equivalenti ad un singolo nMOS a dimensione minima e tutti i percorsi di carica siano equivalenti ad un solo pMOS con dimensione un/up=3 (essendo VDSATp=VDSATn). Quindi: W1=Wmin W2=W3=W4=W5=W6=3 Wmin W11=W12=6 Wmin W7=W8=W9=W10=12 Wmin 20 LOGICA CMOS STATICA c) Commutazione di caso peggiore La commutazione di caso peggiore nel caso HL è data da: A=0, B=1, C=0, D:0->1, E=0, F=1; infatti tutti i percorsi di scarica (che non contengano percorsi in parallelo) hanno stessa resistenza (per via del dimensionamento ottimo) e la capacità parassita è massima perché i nodi interni N2, N3, N4 e N5 sono sul percorso di scarica. Nel caso LH: A:1->0, B=1, C=0, D=0, E=0, F=1; d) Tempo di propagazione Formula di Elmore (tutti i MOS sul percorso hanno stessa Req) tpHL= 0.69 Req(Cpn5 + 2Cpn4 + 3CL + 3Cpn2 + 3Cpn3) Corrente del nMOS equivalente alla serie dei 3 MOS (supponendo che Wmin=Lmin=0.5u): Isat2= Kn VDSATn (VDD-VTH-VDSATn/2) = 231 uA Req = Req2 = Req3 = Req4 = ¾ VDD/Isat2 = 11 kΩ Capacità di carico (la sola capacità di ossido del nMOS perché il carico è una porta in logica dinamica): CL’= 3.5 * W * L = 1.75fF Calcoli capacità Cgd2 = Cgd3 = Cgd4 = Cgd5 = Cgd6 = Cgs5 = 0.207 fF Cgd1 = 0.069 fF Cgd11 = 0.414 fF Cgd7 = Cgs7 = Cgd9 = Cgs9 = ½ Cox*WL + Cov*W = 6.078 fF (mos in triodo) Cgd8 = Cgd10 = 0.828 fF (mos in cut-off) Cgs4 = Cgs3 =2/3 Cox*WL + Cov*W = 1.957 fF (mos in saturazione) Capacità parassite della porta: Nodo N2: Cpn2 = Cdb8+Csb7+2*Cgd8+Cgs7 = 9.734 fF Nodo N3: Cpn3 = Cdb10+Csb9+Cgd10+Cgs9 = 8.906 fF Nodo N4: Cpn4 = Cdb3+Cdb5+Csb4+Cgd3+Cgd5+Cgs4 = 5.371 fF Nodo N5: Cpn5 = Cdb2+Cdb6 +Csb3+Csb5+2*Cgd2+Cgd6+Cgs3+Cgs5 = 6.785 fF Nodo Z: Cpz = CL’+Cdb7+Cdb9+Cdb11+Cdb1+Cdb4+Cgd7+Cgd9+Cgd11+Cgd1+Cgd4 = = 19.596 fF tpHL = 1 nsec 21 LOGICA CMOS STATICA ESERCIZIO 6 Dato il processo CMOS 0.5um con i parametri definiti di seguito: Processo CMOS 0.5µm – VDD=3.3V NMOS 0.6 (V) VTH 0.4 (V) VDSAT 75e-6 (A/V2) µCOX COX 3.5 (fF/µm2) COV 0.1 (fF/µm) CJ 1 (fF/µm2) CJSW 0.5 (fF/µm) 0.5 Keq PMOS 0.6 (V) 0.4 (V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Disegnare lo schematico del circuito che implementa la funzione Z=A’B’+C’D’E’F’ in logica CMOS statica (dimensionamento ottimo NON semplificato) b) Determinare il tempo di propagazione di caso peggiore HL, spiegando bene i passaggi, supponendo che ogni diffusione sia un rettangolo largo quanto il MOS e lungo 1um e che il carico sia costituito da una porta NAND a 3 ingressi a dimensionamento ottimo (non semplificato) c) Scrivere la netlist spice per la simulazione del tempo di propagazione calcolato al punto precedente d) Calcolare la potenza dinamica dissipata dal circuito, nel caso che la porta sia operata alla massima velocità possibile (considerare la sola potenza dissipata dalla porta Z, non quella della carico) 22 LOGICA CMOS STATICA a) Schematico (SCRIVERE IL NOME AFFIANCO A CIASCUN TRANSISTOR) W1=W2=6Wmin ; W3=W4=W5=W6=12Wmin; W7=W8=W9=W10=W11=W12=2Wmin b) Calcolo del tp (con passaggi e spiegazioni) SCRIVERE IN STAMPATELLO Per tutti i calcoli servono le dimensioni geometriche che sono le seguenti PD [um] AS [um2] NOME W [um] L [um] AD [um2] M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 3 3 6 6 6 6 1 1 1 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 3 3 6 6 6 6 1 1 1 1 1 1 5 5 8 8 8 8 3 3 3 3 3 3 3 3 6 6 6 6 1 1 1 1 1 1 PS [um] 5 5 8 8 8 8 3 3 3 3 3 3 Il caso peggiore è dato da: A=1, B=0, C:0→1, D=0, E=0,F=0 23 LOGICA CMOS STATICA I valori di capacità calcolati con le formule: CGS = 2/3 Cox WL + Cov W , CGD = COV W (mos in saturazione) CGS = CGD = Cov W (mos in cut-off) CGS = CGD = 1/2 Cox WL + Cov W (mos in triodo) CDB (SB) = Keq ( CJ AD + CJSW PD) sono riportati in tabella: NOME M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 CDB [F] 2.75f 2.75f 5f 5f 5f 5f 1.25f 1.25f 1.25f 1.25f 1.25f 1.25f CSB [F] 2.75f 5f 5f 5f 1.25f 1.25f CGD [F] 0.3f 2.925f 0.6f 5.85f 5.85f 5.85f 0.1f 0.1f 0.1f 0.1f 0.1f 0.1f CGS [F] 2.925f 5.85f 5.85f 5.85f 1.26f 0.1f Il tempo di propagazione HL di caso peggiore è dato dalla formula: tpHL = 0.69 τHL dove la costante di tempo τHL si ricava applicando il modello di Elmore al percorso in esame: τHL = R9 CpN1+(R9 + R7)CL+(R9 + R7)CpN2+ (R9 + R7)CpN3+(R9 + R7)CpN4+ (R9 + R7)CpN5 NODO N1: CpN1 = Cgs7+Csb7+Cgs8+Csb8+2*Cgd9+Cdb9+Cgd10+Cdb10+Cgd11+Cdb11+ Cgd12+Cdb12 = 9.36fF NODO N2: CpN2 = Cgd1+Cdb1+Cgs2+Csb2 = 8.725fF NODO N3: CpN3 = Cgd5+Cdb5+Cgs6+Csb6 = 21.7fF NODO N4: CpN4 = Cgd4+Cdb4+Cgs5+Csb5 = 21.7fF NODO N5: CpN5 = 2*Cgd3+Cdb3+Cgs4+Csb4 = 17.05fF NODO Z: CpZ = Cgd7+Cdb7+ Cgd8+Cdb8+ Cgd2+Cdb2+ Cgd6+Cdb6 = 19.225fF CL’ è la capacità dovuta al carico, costituito da una porta NAND a 3 ingressi a dimensionamento ottimo non semplificato. La rete PDN di tale porta è costituita da 3 nMOS in serie aventi W/L=3, mentre la PUN è costituita da 3 pMOS in parallelo, aventi W/L=3. 24 LOGICA CMOS STATICA CL’=CGp+CGn=Cox(WpLp+WnLn)=3.5*(1.5*0.5+1.5*0.5)=5.25fF CL = CL’ + CpZ = 24.475fF R7 = 3/4 (VDD/ Isat7) R9 = 3/4 (VDD/ Isat9) Le correnti Isat7 e Isat9 sono uguali perché i due nmos hanno la stessa dimensione: Isat7 = Isat9 = unCOX VDSAT W/L (VDD-VTH-VDSAT/2) = 150uA R7 =R9 = Req =16.5KΩ τHL = Req (CpN1 + 2 CL + 2 CpN2+ 2 CpN3+ 2 CpN4 + 2 CpN5) = 3nsec tpHL = 0.69* τHL = 2.11nsec 25 LOGICA CMOS STATICA c) Netlist spice (SCRIVERE GLI OPPORTUNI COMMENTI PER LA COMPRENSIONE DEL CODICE) * Simulazione gate * Compito di ESD1 * -- Inclusione modelli – * Il modello del pmos è P1 * mentre il modello del nmos è N1 .include models.dat * -- Netlist – * Gate M1 n1 A vdd vdd p1 W=3u L=0.5u AD=3p PD=5u M2 Z B n1 vdd p1 W=3u L=0.5u AD=3p PD=5u AS=3p PS=5u M3 n2 C vdd vdd p1 W=6u L=0.5u AD=6p PD=8u M4 n3 D n2 vdd p1 W=6u L=0.5u AD=6p PD=8u AS=6p PS=8u M5 n4 E n3 vdd p1 W=6u L=0.5u AD=6p PD=8u AS=6p PS=8u M6 Z F n4 vdd p1 W=6u L=0.5u AD=6p PD=8u AS=6p PS=8u M7 Z A n5 0 n1 W=1u L=0.5u AD=1p PD=3u AS=1p PS=3u M8 Z B n5 0 n1 W=1u L=0.5u AD=1p PD=3u AS=1p PS=3u M9 n5 C 0 0 n1 W=1u L=0.5u AD=1p PD=3u M10 n5 D 0 0 n1 W=1u L=0.5u AD=1p PD=3u M11 n5 E 0 0 n1 W=1u L=0.5u AD=1p PD=3u M12 n5 F 0 0 n1 W=1u L=0.5u AD=1p PD=3u * -- Generatori – vdd vdd 0 3.3 va A 0 3.3 vb B 0 0 vc C 0 dc 0 pulse 0 3.3 1n 1p 1p 1n 2n vd D 0 0 ve E 0 0 vf F 0 0 * -- Analisi – .tran 1p 2n .end d) Potenza dinamica dissipata (SCRIVERE IN STAMPATELLO) La potenza dissipata si ottiene dividendo l’energia totale dissipata in una doppia transizione per il tempo impiegato per la transizione stessa. Pdin=CL*Vdd2*f= 0.38mW Questo se la porta è pilotata alla frequenza massima. 26 LOGICA CMOS STATICA ESERCIZIO 7 Dato un processo CMOS, con parametri seguenti, ed il circuito in Figura 1: VTH VDSAT µCOX COX COV CJ CJSW Keq Processo CMOS 0.4µm – VDD=3.3V NMOS 0.6 (V) 0.4 (V) 75e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 PMOS 0.6 (V) 0.4(V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Ricavare la tabella di verità (con spiegazione) e dire che tipo di porta implementa. b) Dimensionare i transistor in modo che rete di pull-up e di pull-down siano entrambe equivalenti ad un nMOS con W/L=1 c) Calcolare il tempo di propagazione HL nel caso in cui EN=1 ed il segnale A commuta supponendo di avere come carico un inverter pseudo-NMOS (con Wn=Ln=0.4um, Wp=0.4um, Lp=2um) e che tutte le diffusioni dei transistor abbiamo come area un rettangolo con un lato pari alla W del transistor e l’altro lato pari a 0.4um sapendo inoltre che MP1 e MP2 (così come MN2 e MN1) hanno rispettivamente drain e source ricavati dalla stessa diffusione. d) Fare un esempio di applicazione della porta in questione e) Dare una descrizione verilog della porta N1 N2 Figura 1 27 LOGICA CMOS STATICA a) Tabella di verità e porta logica implementata dal circuito EN A OUT 0 0 Z 0 1 Z 1 0 1 (A’) 1 1 0 (A’) Perché: Quando il segnale EN è basso MN1 e MP2 sono interdetti entrambi quindi sia il PUN che il PDN sono aperti e l’uscita si trova in alta impedenza (non connessa né a massa né all’alimentazione). Quando EN diventa 1 la porta si riduce ad un semplice inverter (MN1 e MP2 si chiudono) e l’uscita è quindi A’ La tabella è quella di una porta: Inverter tri-state b) Dimensionamento (scrivere anche i passaggi intermedi del procedimento) Nella rete di pull-down ci sono 2 MOS in serie, perché siano globalmente equivalenti ad 1 transistor a dimensione minima bisogna che singolarmente abbiano W doppia del transistor equivalente. Analogo discorso per il pull-up ma in questo caso bisogna anche considerare che i pMOS hanno minore mobilità e bisogna tenerne conto al momento del dimensionamento, quindi: WMN1 = WMN2 = 2Wmin = 2*0.4um = 0.8um LMN1 = LMN2 = Lmin = 0.4um WMP1 = WMP2 = 2 un/up Wmin = 2*3*0.4um = 2.4um LMP1 = LMP2 = Lmin = 0.4um 28 LOGICA CMOS STATICA c) Tempo di propagazione (scrivere anche i passaggi intermedi del procedimento) La commutazione HL dovuta ad A avviene con A:0->1 . Per il calcolo del tempo di propagazione usiamo l’approssimazione del primo ordine: tpHL=0.69τHL dove τHL è la costante di Elmore del percorso di scarica, ovvero τHL=RMN2CN2+(RMN2+RMN1)*CL+(RMN2+RMN1)*CN1 dove CN2 è la capacità associata al nodo 2, CN1 è la capacità associata al nodo 1, mentre CL è la capacità complessiva presente al nodo d’uscita. Il nodo N1 deve essere considerato perché MP2 è acceso e dunque (EN=1 -> EN’=0) il nodo N1 è connesso all’uscita e subisce la stessa transizione dell’uscita. Durante la commutazione, il transistor MN1 è in saturazione (attraversato dalla corrente di scarica e con VDS elevata) mentre il transitor MP2 è in triodo (perché nodo N1 e OUT sono cortocircuitati). Capacità di gate-drain CGDMN1 = CGDMN2 = COV WMN1 = 0.1 * 0.8 fF = 0.08 fF CGDMP1 = COV WMP1 = 0.1 * 2.4 fF = 0.24 fF (MP1 è in cut-off) CGDMP2 = COV WMP2 + ½ COX WMP2LMP2 = 0.1 * 2.4 fF = 1.92 fF (MP2 è in triodo) Capacità di gate-source CGSMN1 = COV WMN1 + 2/3 COX WMN1LMN1 = 0.64 fF (MN1 è in saturazione) CGSMP2 = COV WMP2 + ½ COX WMP2LMP2 = 1.92 fF (MP2 è in triodo) Aree e perimetri PDMN1 = (0.4 + 0.8 + 0.4)um = 1.6 um ADMN1 = 0.4 * 0.8 um2 = 0.32 um2 ASMN1 = ADMN2 = (0.4 * 0.8)/2 um2 = 0.16 um2 PSMN1 = PDMN2 = (0.4 + 0.4)/2 um = 0.4 um ADMP2 = 0.4 * 2.4 um2 = 0.96 um2 PDMP2 = (0.4 + 2.4 + 0.4)um = 3.2 um ASMP2 = ADMP1 = (0.4 * 2.4)/2 um2 = 0.48 um2 PSMP2 = PDMP1 = (0.4 + 0.4)/2 um = 0.4 um Capacità di diffusione CDBMN1 = Keq (Cj AD + CJSW PD) = 0.56fF CSBMN1 = CDBMN2 = 0.18fF CDBMP2 = Keq (Cj AD + CJSW PD) = 1.28fF CSBMP2 = CDBMP1 = 0.34fF Capacità di carico (dovuta all’inverter pseudo-NMOS) CL’ = COX WL = 0.4*0.4*3.5 fF = 0.56fF Calcolando quindi i valori delle capacità e delle resistenze che rientrano nel calcolo della costante di Elmore si ottiene CL =CL’+ CDBMN1 + CDBMP2 + CGDMN1 + CGDMP2 = 4.4 fF CN2 = CDBMN2 + CSBMN1 + 2*CGDMN2 + CGSMN1 = 0.6fF CN1 = CDBMP1 + CSBMP2 + 2*CGDMP1 + CGSMP2 = 3.08fF RMN2=RMN1=16.5 KΩ τHL=RMN2CN2+(RMN2+RMN1)*CL +(RMN2+RMN1)*CN1= 257psec tpHL = 0.69τHL = 177psec 29 LOGICA CMOS STATICA d) Esempio di applicazione La porta in questione può essere utilizzata quando bisogna pilotare un bus bidirezionale a cui debbano potere accedere due dispositivi in scrittura (in momenti diversi). Per fare questo basterà abilitare il primo dispositivo (tramite il segnale EN) e disabilitare il secondo o viceversa. e) Modulo verilog module tri_inv(A,EN,Z); input A,EN; output Z; Z=(EN)?(~A):1’bz; endmodule 30 LOGICA PSEUDO-NMOS ESERCIZIO 8 Avendo a disposizione un processo CMOS 0.6 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.6µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 2 75e-6 (A/V ) 25e-6 (A/V2) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito che implementa una NOR pseudo-NMOS a 3 ingressi (A, B, C) b) Supponendo che tutti gli NMOS del pull-down abbiano W/L=1.2/0.6 calcolare il W/L del transistor di pull-up necessario per avere al massimo VOL=0.1V (utilizzare le espressioni delle correnti dei MOS, nell’espressione della corrente del MOS in triodo trascurare il termine quadratico di VDS). Fissare infine la W e la L sapendo che la minima W realizzabile è 1.2um c) Dire in quali condizioni si ha consumo di potenza statica e calcolarne il valore d) Calcolare il tpHL e tpLH nel caso in cui uno solo degli ingressi commuti e che il carico sia equivalente ad una capacità di 4fF, trascurando tutte le capacità parassite tranne quelle legate ai gate (CGD e CGS) e) Scrivere la netlist spice per la verifica dei tempi di propagazione al variare dell’ingresso A con B=0 e C=0 31 LOGICA PSEUDO-NMOS a) Circuito b) Dimensionamento pull-up Il pull-up è costituito dall’unico PMOS (M1) sempre acceso. La tensione nominale bassa deve essere pari a 0.1V quando anche solo uno dei MOS del pull-down è acceso. Per dimensionare M1 si impone, come al solito, l’uguaglianza delle correnti del pull-up e del pull-down (ovviamente nel caso che uno solo fra M2, M3 e M4 conduca): IM1=IM2 Con uscita bassa M1 risulta essere in saturazione (VSD>|VDSATp|) e M2 in triodo (VDS<VDSATn) quindi: IM1= kp VDSATp ( VSG1 - VTH - VDSATp/2) IM2= kn [ ( VGS2-VTH ) VDS2 - VDS22 / 2 ] ≈ kn ( VGS2 - VTH ) VDS2 (trascuriamo il termine quadratico) Ovviamente risulta: VDS2=VOL VGS2=VDD VSG1=VDD quindi kp VDSATp ( VDD - VTH - VDSATp/2) = kn (VDD - VTH ) VOL kp = kn [ (VDD - VTH ) / ( VDSATp ( VDD - VTH - VDSATp/2) ) ] VOL kp = 0.26 kn kp = µpCOX (W/L)p = 0.26 kn = 0.26 µnCOX (W/L)n= 1.56 µpCOX 32 LOGICA PSEUDO-NMOS (W/L)p = 1.56 Se la W minima realizzabile è 1.2um, allora: Lp = Wmin / 1.56 = 0.77 um Ma le dimensioni possono scalare solo di multipli della metà della lunghezza minima (0.3um) quindi la dimensione accettabile che più si avvicina al valore desiderato (per non fare salire la VOL bisognerà che il W/L sia eventualmente inferiore a quello calcolato, non superiore) è: Lp = 0.9 um c) Potenza statica Si ha consumo di potenza statica quando l’uscita è bassa (una qualsiasi combinazione degli ingressi per cui almeno un ingresso sia alto). In tale caso infatti la rete di pull-up e pull-down conducono contemporaneamente e la corrente di cortocircuito (la corrente di saturazione del pmos) causa consumo di potenza. IM1sat = kp VDSATp (VDD - VTH - VDSATp/2) = 34uA La potenza dissipata è: Pstat=VDD IM1sat = 112uW d) Tempi di propagazione Il tempo di propagazione LH dipende interamente dalla resistenza equivalente del pmos M1 (dalla sua corrente di saturazione) e dalla capacità di carico attraverso la formula del modello di Elmore (il percorso di carica è costituito da un solo nodo, quello di uscita). Per calcolare la capacità di carico, come richiede il testo, terremo conto solo delle capacità di overlap (non abbiamo informazioni sulle dimensioni delle diffusioni quindi non avremmo le informazioni sufficienti per calcolare gli altri contributi). CGDn=COV Wn=0.1656 fF CGDp=COV Wp=0.1656 fF ovviamente la CGD del nmos che commuta sarà contata per 2 per effetto Miller CL=CL’+4CGDn+CGDp= 4.82fF Reqp = ¾ VDD / IDSATp = 73kΩ tpLH = 0.69 CLReqp = 252 psec Il tempo di propagazione HL nel caso in cui commuti un solo nmos dipende dalla costante RC. La capacità di carico è evidentemente la stessa del caso precedente: IM2sat = kn VDSATn (VDD - VTH - VDSATn/2) = 154 uA Reqn = ¾ VDD / IDSATn = 16kΩ tpHL=0.69 CLReqn = 53 psec Tenendo conto della corrente di saturazione del pmos che si sottrae a quella del nmos si otterrebbe 33 LOGICA PSEUDO-NMOS tpHL = 0.69 CL [ ¾ VDD/ (IM2sat - IM1sat) ] = 68.5 psec e) Netlist spice *Netlist di simulazione tempo propagazione * Modelli .include models.dat * Netlist m1 z 0 vdd vdd p1 w=1.2u l=0.9u m2 z a 0 0 n1 w=1.2u l=0.6u m3 z b 0 0 n1 w=1.2u l=0.6u m4 z c 0 0 n1 w=1.2u l=0.6u cl z 0 4f * Generatori vdd vdd 0 3.3 va a 0 pulse 3.3 0 5n 1p 1p 5n 10n vb b 0 dc 0 vc c 0 dc 0 * Analisi .tran 1p 15n .end 34 LOGICA PSEUDO-NMOS ESERCIZIO 9 Avendo a disposizione un processo CMOS 0.5 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 100e-6 (A/V2) 25e-6 (A/V2) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito che implementa una porta NOR a 4 ingressi in logica pseudoNMOS. Dimensionare tutti gli NMOS a dimensione minima ed il PMOS con W/L=0.5 sapendo che Wmin=Lmin b) Calcolare VOL nel caso in cui uno solo dei 4 ingressi sia pari a 1 e nel caso che tutti e 4 gli ingressi siano pari a 1 c) Calcolare il tempo di propagazione tpHL nel caso in cui commuti uno solo degli ingressi (A commuta, B=C=D=0) sapendo che il carico della porta è costituito da un inverter CMOS a dimensionamento ottimo. Per calcolare le capacità di diffusione supporre che tutti i drain ed i source abbiano forma rettangolare con un lato pari alla W del MOS e l’altro pari a 1um d) Calcolare la potenza statica dissipata quando l’uscita è pari a 0 e) Scrivere la netlist spice per la verifica del tempo di propagazione calcolato. 35 LOGICA PSEUDO-NMOS a) Circuito I MOS da M2 a M5 hanno tutti W=0.5um L=0.5um Il pmos M1 ha W=0.5um L=1um (in modo che W/L=0.5 sapendo che W non può essere inferiore a 0.5um) b) Calcolo di VOL Quando l’uscita è bassa (VOL) il PMOS è in saturazione e gli NMOS in triodo: Idp = kp VDSATp (VDD-VTH-VDSATp/2) Idn = kn[(VDD-VTH)VOL-VOL2/2] ≈kn(VDD-VTH)VOL (trascurando il termine quadratico) Se uno solo degli NMOS è acceso: Idp = Idn kp VDSATp (VDD-VTH-VDSATp/2) = kn(VDD-VTH)VOL VOL = (kp VDSATp (VDD-VTH-VDSATp/2)) / (kn (VDD-VTH))=0.05V Se tutti e quattro gli NMOS sono accesi: Idp = 4Idn kp VDSATp (VDD-VTH-VDSATp/2) = 4kn(VDD-VTH)VOL VOL = (kp VDSATp (VDD-VTH-VDSATp/2)) / (4kn (VDD-VTH))=0.012V 36 LOGICA PSEUDO-NMOS c) Tempo di propagazione HL tpHL= 0.69*Reqn*CL nel caso in cui si trascuri la corrente del PMOS Calcolo di Idn: Isatn = kn VDSATn (VDD-VTH-VDSATn/2) = 102.5uA Reqn = ¾ VDD/Isatn = 24 kΩ Calcolo di CL: Carico: CL’=COX (WnLn+WpLp)=COX Lmin (Wn+Wp) = 5 COX Wmin Lmin=4.375 fF Contributi capacità parassite dei nodi coinvolti nella transizione: L’unico nodo presente è Z. Nodo Z: Cpz=Cdb1+Cdb2+Cdb3+Cdb4+Cdb5+Cgd1+2Cgd2+Cgd3+Cgd4+Cgd5 (Cgd1 contato 2 per effetto Miller) Se il PMOS è a dimensione minima ed ha W/L=0.5 allora W=Wmin, L=2Lmin, l’area ed il perimetro delle diffusioni risulta quindi essere: Adp=Asp=(0.5u*1u)=0.5um2 Pdp=Psp=1u+1u+0.5u=2.5um Cdb1=0.5(0.816*0.5+0.355*2.5)fF=0.648fF Cgd1=0.138*0.5 fF=0.069 fF NMOS: Gli NMOS sono a dimensione minima quindi W=L=0.5u Adn=Asn=(0.5u*1u)=0.5um2 Pdn=Psn=1u+1u+0.5u=2.5um Cdb2=Cdb3=Cdb4=Cdb5=0.5(0.776*0.5+0.345*2.5)fF=0.625fF Cgd2=Cgd3=Cgd4=Cgd5=0.138*0.5fF=0.069fF CL = CL’+4Cdb2+5Cgd2+Cdb1+Cgd1 = 7.937 fF tpHL = 0.69 (CL Reqn) = 131 psec 37 LOGICA PSEUDO-NMOS d) Potenza statica La potenza statica è data da: Pstat = VDD IDD quando Vout=VOL la corrente è la corrente di saturazione del PMOS Idp = kp VDSATp (VDD-VTH-VDSATp/2) = 12.8 uA Pstat = 42 uW e) Netlist * Simulazione tempi di propagazione * Inclusione modelli .include models.dat * Netlist m1 Z 0 vdd vdd p1 w=0.5u l=1u m2 Z A 0 0 n1 w=0.5u l=0.5u m3 Z B 0 0 n1 w=0.5u l=0.5u m4 Z C 0 0 n1 w=0.5u l=0.5u m5 Z D 0 0 n1 w=0.5u l=0.5u *Carico m6 Z2 Z vdd vdd p1 w=2u l=0.5u m7 Z2 Z 0 0 n1 W=0.5u l=0.5u vdd vdd 0 3.3 va A 0 dc 0 pulse 0 3.3 2n 1p 1p 2n 4n vb B 0 0 vc C 0 0 vd D 0 0 .tran 1p 6n .end 38 LOGICA PSEUDO-NMOS ESERCIZIO 10 Dato il layout di Figura 1 ed un processo CMOS con parametri: VTH VDSAT µCOX COX COV CJ CJSW Keq Processo CMOS 0.4µm – VDD=3.3V NMOS 0.6 (V) 0.4 (V) 75e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 PMOS 0.6 (V) 0.4 (V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Disegnare il circuito corrispondente (per chiarezza di disegno il metal1 non è colorato internamente, ma è rappresentato da un riquadro vuoto, seguitene i contorni per capire le interconnessioni). b) Trovare la funzionalità logica implementata c) Dire a quale famiglia logica appartiene la porta d) Dire quale è la commutazione HL di caso peggiore e spiegare dettagliatamente perché. e) Determinare le dimensioni (W e L) di tutti i MOS, e solo le capacità parassite (ed eventualmente aree e perimetri di diffusioni necessari per calcolarle) necessarie al calcolo del tempo di propagazione per la commutazione individuata al punto d). Si richiede di indicare come nome dei transistor Mxxx, dove xxx è il nome del segnale che ne pilota il gate. f) Calcolare il tempo di propagazione per la commutazione al punto d) nel caso che il carico sia un inverter con transistor di dimensioni: Wn=1um, Ln=0.4um, Wp=3um Lp=0.4um. Indicare di quali capacità parassite si tiene conto. g) Scrivere la netlist spice corrispondente per la verifica del tempo di propagazione calcolato al punto e) 39 LOGICA PSEUDO-NMOS 1 QUADRATO = 0.2um 40 LOGICA PSEUDO-NMOS a) Circuito (dare a ciascun MOS il nome Mxxx, dove xxx è il segnale che ne pilota il gate) B N2 N1 N3 b) Funzione logica Z=(AC+BEF)’ 41 LOGICA PSEUDO-NMOS c) Famiglia logica PSEUDO-NMOS d) Commutazione HL di caso peggiore A B 0 1 C E F 1 0->1 1 Perché: La commutazione indicata è una delle commutazioni di caso peggiore poiché il fenomeno di scarica avviene attraverso il percorso col maggior numero di transistor (tutti gli nMOS hanno la stessa dimensione), e quindi è anche massimo il numero di capacità parassite coinvolte. e, f) Dimensioni e capacità (compilare solo le caselle richieste dal testo, cioè tutte le W e L e solo le caselle necessarie al calcole delle capacità parassite individuate al punto d). NOME W L AD AS PD PS Cdb Csb Cgd Cgs MVSS 1.20E-06 1.20E-06 1.68E-12 1.68E-12 4.00E-06 4.00E-06 1.84E-15 1.20E-16 MA 2.00E-06 4.00E-07 6.00E-13 2.80E-12 6.00E-07 4.80E-06 4.50E-16 2.00E-16 MC 2.00E-06 4.00E-07 1.60E-12 6.00E-13 1.60E-06 6.00E-07 1.20E-15 4.50E-16 1.6E-15 1.6E-15 MB 2.00E-06 4.00E-07 1.60E-12 6.00E-13 1.60E-06 6.00E-07 1.20E-15 4.50E-16 2.00E-16 2.06E-15 MF 2.00E-06 4.00E-07 6.00E-13 6.00E-13 6.00E-07 6.00E-07 4.50E-16 4.50E-16 2.00E-16 2.06E-15 ME 2.00E-06 4.00E-07 6.00E-13 2.80E-12 6.00E-07 4.80E-06 4.50E-16 2.00E-16 f) Tempo di propagazione Il tempo di propagazione si calcola con l’approssimazione del primo ordine tpHL=0.69τHL dove τHL è la costante di Elmore del percorso in esame: τHL=REC3+(RE+RF)C2+(RE+RF+RB)CL +(RE+RF+RB)C1 τHL=R(C3+2C2+3CL +3C1) = 350.1 psec con RB = RE = RF = R= 6.6 KΩ IDSAT= 375 µA CL’= CoxWnLn + CoxWpLp= 5.6 fF CL = CDB,B+CGD,B+CGD,VSS +CDB,C+CGD,C+CDB,VSS +CL’ = 4.76 fF + 5.6 fF = 11.76 fF C2 = CDB,F+CGD,F+CSB,B+CGS,B = 3.16 fF C3 = CDB,E+2*CGD,E+CSB,F+CGS,F = 3.36 fF C1 = CDB,A+CGD,A+CSB,C+CGS,C = 2.7fF tpHL= 241.6 psec 42 LOGICA PSEUDO-NMOS d) Netlist spice * Simulazione porta pseduo-NMOS * -- Inclusione modelli – .include models.dat * -- Netlist – * Porta pseudo-NMOS MSS Z 0 vdd vdd p W=1.20U L=1.20U AD=1.68E-12 AS=1.68E-12 PD=4U PS=4U MA Z A 1 0 n W=2U L=4E-07 AD=6E-13 AS=2.80E-12 PD=6E-07 PS=4.80U MC 1 C 0 0 n W=2U L=4E-07 AD=1.60E-12 AS=6E-13 PD=1.60U PS=6E-07 MB Z B 2 0 n W=2U L=4E-07 AD=1.60E-12 AS=6E-13 PD=1.60U PS=6E-07 MF 2 F 3 0 n W=2U L=4E-07 AD=6E-13 AS=6E-13 PD=6E-07 PS=6E-07 ME 3 E 0 0 n W=2U L=4E-07 AD=6E-13 AS=2.80E-12 PD=6E-07 PS=4.80U * Carico MP Z2 Z vdd vdd p W=3u L=0.4u MN Z2 Z 0 0 n W=1u L=0.4u * Generatori vdd vdd 0 dc 3.3 va A 0 dc 3.3 vc C 0 dc 0 vb B 0 dc 3.3 vf F 0 dc 3.3 ve E 0 pulse 0 3.3 1n 1p 1p 1n 2n * -- Analisi – .tran 1p 3n .end 43 LOGICA PSEUDO-NMOS ESERCIZIO 11 Dato un processo CMOS, con i parametri seguenti, si progetti una porta logica pseudoNMOS che implementi la funzione Z=(A+BC)’ VTH VDSAT µCOX COX COV CJ CJSW Keq Processo CMOS 0.4µm – VDD=3.3V NMOS 0.6 (V) 0.4 (V) 75e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 Wmin=0.4um Lmin=0.4um PMOS 0.6 (V) 0.4(V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Disegnare lo schematico della porta b) Dimensionare i transistor in modo che ciascun percorso di scarica nella rete di pulldown, sia equivalente ad un nMOS con W/L=1 e che la potenza statica dissipata quando l’uscita è bassa sia, al massimo, pari a 16.5 µW c) Calcolare il valore di VOL nel caso peggiore d) Calcolare il tempo di propagazione HL nel caso peggiore supponendo di avere come carico un inverter a dimensionamento ottimo e che tutte le capacità di diffusione di drain e source (per i pmos e gli nmos) siano pari a 1fF e) Scrivere la netlist spice del circuito 44 LOGICA PSEUDO-NMOS a) Circuito 45 LOGICA PSEUDO-NMOS b) Dimensionamento (scrivere anche i passaggi intermedi del procedimento) MA: WA=0.4um LA=0.4um MB, MC (poiché sono in serie): WB=WC=0.8um LB=LC=0.4um c) VOL di caso peggiore La potenza dissipata quando l’uscita è bassa è determinata dalla corrente di saturazione del PMOS (che è acceso ed in saturazione, mentre la rete di pull-down risulta equivalente ad un NMOS in triodo): Pstat = VDD * Ipsat Sapendo che Pstat=16.5uW e VDD=3.3V possiamo ricavare Ipsat: Ipsat = Pstat / VDD = 5uA Ora bisogna imporre che la corrente del PMOS in saturazione sia uguale al valore ottenuto: Ipsat = upCOX (W/L)p [(VDD-VTH)VDSAT-VDSAT2/2] (W/L)p = Ipsat / {upCOX [(VDD-VTH)VDSAT-VDSAT2/2]}= 0.2 Per minimizzare l’area si considera W=Wmin e si dimensiona opportunamente L: Wp = Wmin = 0.4um Lp = Wp/0.2 = 2um Conoscendo tutte le dimensioni dei transistor è possibile ricavare la VOL nel caso peggiore, quando cioè si abbia un solo percorso (dei due possibili) chiuso verso massa nel PDN. In tale situazione il PMOS è appunto in saturazione (Ipsat=5uA come visto sopra) e lo NMOS equivalente (che abbiamo già dimensionato al punto (b) in modo che avesse W/L=1) è in triodo, dunque: Intriode = Ipsat = 5uA unCOX (W/L) ( (VDD-VTH)VOL –VOL2/2) = Ipsat risolvendo l’equazione di secondo grado: VOL = 0.025 V 46 LOGICA PSEUDO-NMOS d) Tempo di propagazione Il carico è dato da un inverter a dimensionamento ottimo quindi con: Wn = Ln = Lp = 0.4um Wp = 3Wn = 1.2um CL’ = COX (WnLn + WpLp) = 2.24 fF Il caso peggiore si ha quando il fenomeno di scarica avviene attraverso il percorso dato dalla serie dei due transistor, infatti in questo caso è massima la capacità parassita coinvolta nella commutazione: A=0, B=1, C:0->1 Per il calcolo del tempo di propagazione usiamo il modello approssimato al primo ordine: tpHL=0.69τHL dove τHL è la costante di Elmore del percorso di scarica e risulta pari a τHL=RCCN1+ (RC+RB)CL con CL=capacità complessiva presente al nodo d’uscita CN1=capacità parassita presente al nodo intermedio tra i due MOS MB e MC. RC=RB=resistenze equivalenti dei due MOS MB e MC. Capacità di overlap: CGDA = COV WA = 0.04 fF CGDB = CGDC = COV W = 0.08 fF CGSB = 2/3COXWBLB + COV WB = 0.82 fF CGDVSS = COV WVSS = 0.04 fF CL = CL’ +CDBA + CDBB + CDBVSS + CGDA + CGDB + CGDVSS = 5.4 fF CN1= CDBC + CSBB + 2*CGDC + CGSB = 2.98 fF RC=RB= 16.5 KΩ τHL=RCCN1+ (RC+RB)CL= 227.3psec tpHL = 0.69τHL = 156.8psec 47 LOGICA PSEUDO-NMOS e) Netlist spice * Gate Z=(A+BC)’ * -- Inclusione modelli – .include models.dat * -- Netlist – * Porta pseudo-NMOS MSS Z 0 vdd vdd p W=0.4U L=7.4U MA Z A 0 0 n W=0.4U L=0.4U MB Z B N1 0 n W=0.8U L=0.4U MC N1 C 0 0 n W=0.8U L=0.4U * Carico MP Z2 Z vdd vdd p W=1.2u L=0.4u MN Z2 Z 0 0 n W=0.4u L=0.4u * Generatori vdd vdd 0 dc 3.3 va A 0 dc 0 vb B 0 dc 3.3 vc C 0 pulse 0 3.3 1n 1p 1p 1n 2n * -- Analisi – .tran 1p 3n .end 48 LOGICA PSEUDO-NMOS ESERCIZIO 12 Dato il listato spice in Figura e considerando un processo CMOS 0.5um con i parametri definiti di seguito: Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.6 (V) 0.6 (V) VTH 0.4 (V) 0.4 (V) VDSAT 2 75e-6 (A/V ) 25e-6 (A/V2) µCOX COX 3.5 (fF/µm2) 3.5 (fF/µm2) COV 0.1 (fF/µm) 0.1 (fF/µm) 2 CJ 1 (fF/µm ) 1 (fF/µm2) CJSW 0.5 (fF/µm) 0.5 (fF/µm) 0.5 0.5 Keq a) b) c) d) Disegnare lo schematico del circuito. Determinare a che tipo di famiglia logica appartiene. Determinare la funzione logica Z (è richiesta la sola espressione) Determinare il tempo di propagazione HL spiegando bene i passaggi (caso peggiore) e) Fare lo schizzo di un possibile layout * Simulazione gate digitale * Si suppone che i nomi dei modelli definiti nel file models.dat * siano N1 (nmos) e P1 (pmos) .include models.dat * -- Netlist -M0 Z 0 VDD VDD P1 W=0.5u L=2u M1 Z A N1 0 N1 W=1u L=0.5u M2 N1 B 0 0 N1 W=1u L=0.5u M3 Z C N2 0 N1 W=0.5u L=0.5u M4 N2 D 0 0 N1 W=0.5u L=0.5u M5 Z E 0 0 N1 W=0.5u L=0.5u CL Z 0 10f * -- Generatori -VDD VDD 0 3.3 VA A 0 3.3 VB B 0 3.3 VC C 0 3.3 VD D 0 3.3 VE E 0 3.3 .end 49 LOGICA PSEUDO-NMOS a) Schematico (SCRIVERE IL NOME AFFIANCO A CIASCUN TRANSISTOR) b) Famiglia logica PSEUDO-NMOS c) Funzione Z Z = (AB+CD+E)’ d) Calcolo del tp (con passaggi e spiegazioni) SCRIVERE IN STAMPATELLO Il caso peggiore è quello della commutazione seguente: A=1, B=0, C=1, D:0->1, E=0 In tal caso, infatti, è massima la capacità parassita da pilotare (sono coinvolti tutti i nodi interni, N1 tramite M1 e N2 tramite M3, ed è anche minima la corrente di scarica (o massima la resistenza) in quanto M3 e M4 sono in serie ed equivalenti ad un unico MOS di lunghezza doppia, quindi sono equivalenti ad un MOS con W/L=0.5. Da notare che questo non avviene nel caso in cui a condurre siano M1 e M2 perché tali MOS hanno larghezza doppia rispetto agli altri quindi la loro serie risulta equivalente ad un MOS con W/L=1 dunque più conduttivo. Nei calcoli si trascura la capacità di diffusione dei vari nodi in quanto non sono state fornite le aree di drain e source dei transistor e non ci sono quindi sufficienti informazioni per valutare tali capacità parassite. 50 LOGICA PSEUDO-NMOS Il tempo di propagazione si calcola come: tpHL = 0.69 τHL dove la costante di tempo τHL si ricava applicando il modello di Elmore al percorso d’interesse: τHL = CpN2 R4 + CL (R4 + R3) + CpN1 (R4 + R3) Nodo N1 (su M4 effetto Miller): CpN1 = CSB1+ CGS1+CDB2+CGD2 = CGS1+ CGD2 = 1.075 fF Dove: CGS1 = CGD1= ½ Cox*W1L1+Cov*W1 = 0.975fF (mos in triodo) CGD2 = Cov*W2 = 0.1fF Nodo N2 (su M4 effetto Miller): CpN2 = CSB3+ CGS3+CDB4+2CGD4 = = CGS3+2CGD4 = 0.733 fF Dove: CGS3 = 2/3Cox*W3L3+Cov*W3 = 0.633fF (mos in saturazione) CGD4 = Cov*W4 = 0.05fF Nodo Z: CpZ = CDB1+CDB3+CDB5+CDB0+CGD1+CGD3+CGD5+CGD0 = = CGD1+CGD3+CGD5+CGD0 = CGD1 + COV(W3+W5+W0) = 1.125 fF CL = CL’ + CpZ = 11.125fF Le resistenze equivalenti dei mos d’interesse sono: R4 = 3/4 (VDD/ Isat4) R3 = 3/4 (VDD/ Isat3) Le correnti Isat4 e Isat3 sono uguali perché i due nmos hanno la stesse dimensioni: Isat4 = Isat3 = unCOX VDSAT W4/L4 (VDD-VTH-VDSAT/2) = 75uA R4 =R3 = 33KΩ τHL = 829.3psec tpHL = 572psec 51 LOGICA PSEUDO-NMOS e) Possibile layout 52 LOGICA PSEUDO-NMOS ESERCIZIO 13 Dato il layout in Figura e considerando un processo CMOS 0.5um con i parametri definiti di seguito: Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.6 (V) 0.6 (V) VTH 0.4 (V) 0.4 (V) VDSAT 2 75e-6 (A/V ) 25e-6 (A/V2) µCOX COX 3.5 (fF/µm2) 3.5 (fF/µm2) COV 0.1 (fF/µm) 0.1 (fF/µm) 2 CJ 1 (fF/µm ) 1 (fF/µm2) CJSW 0.5 (fF/µm) 0.5 (fF/µm) 0.5 0.5 Keq a) b) c) d) Disegnare lo schematico del circuito. Determinare a che tipo di famiglia logica appartiene. Determinare la funzione logica Z (è richiesta la sola espressione) Determinare il tempo di propagazione HL spiegando bene i passaggi (caso peggiore) e) Scrivere la netlist spice per la simulazione del tempo di propagazione calcolato al punto precedente 53 LOGICA PSEUDO-NMOS FIGURA 1: LAYOUT DEL GATE 54 LOGICA PSEUDO-NMOS a) Schematico (SCRIVERE NOME E DIMENSIONE AFFIANCO A CIASCUN MOS) b) Famiglia logica PSEUDO-NMOS c) Funzione Z Z = ( AB + CDE )’ d) Calcolo del tp (con passaggi e spiegazioni) SCRIVERE IN STAMPATELLO Per tutti i calcoli servono le dimensioni geometriche che sono le seguenti: NOME M0 MA MB MC MD ME W [um] 1.5 1 1 2 2 2 L [um] 2 0.5 0.5 0.5 0.5 0.5 AD [um2] 2.63 2.25 0.375 2.25 0.75 0.75 PD [um] 5 3 0.75 3 0.75 0.75 AS [um2] PS [um] 0.375 0.75 0.75 0.75 0.75 0.75 Il caso peggiore è dato da: A=1, B:0->1, C=1, D=1, E=0 In tal caso, infatti, tutte le capacità parassite del PDN sono presenti ed inoltre il percorso di scarica è il meno conduttivo ( W/LAB = 1 mentre W/LCDE = 1.3 ). 55 LOGICA PSEUDO-NMOS I valori di capacità calcolati con la formula: CGD = Cov*W , CGS = 2/3Cox*WL+Cov*W (mos in saturazione) CGD = CGS = 1/2Cox*WL+Cov*W (mos in triodo) CGD = CGS = COV W (mos in cut-off) CDB (SB) = Keq ( CJ AD + CJSW PD) Sono riportati in tabella: NOME M0 MA MB MC MD ME CDB [F] 3,81E-15 2,63E-15 5,63E-16 2,63E-15 7,50E-16 7,50E-16 CSB [F] 5,63E-16 7,50E-16 7,50E-16 CGD [F] 1,50E-16 1,00E-16 1,00E-16 1,95E-15 1,95E-15 2,00E-16 CGS [F] 1,26E-15 1,95E-15 1,95E-15 Il tempo di propagazione HL di caso peggiore è dato dall’equazione: tpHL = 0.69 τHL dove la costante di tempo τHL si ricava applicando il modello di Elmore al percorso in esame: τHL = CpN1 RB + CL (RA + RB) + CpN2 (RA + RB) + CpN3 (RA + RB) Non è presente carico quindi considero solo il tempo di propagazione della porta isolata (CL’=0) NODO N1: CpN1 = CSBA + CDBB + CGSA + 2CGDB = 2.586 fF NODO N2: CpN2 = CSBD + CDBE + CGSD + CGDE = 3.65 fF NODO N3: CpN3 = CSBC + CDBD + CGSC + CGDD = 5.4 fF NODO Z: CpZ = CDB0 + CDBA + CDBC + CGD0 + CGDA + CGDC = 11.27fF RA = 3/4 (VDD/ IsatA) RB = 3/4 (VDD/ IsatB) Le correnti IsatA e IsatB sono uguali perché i mos hanno la stessa dimensione: IsatA = IsatB = unCOX VDSAT WA/LA (VDD-VTH-VDSAT/2) = 150uA RA =RB = 16.5KΩ τHL = 713.2 psec tpHL = 492.1 psec 56 LOGICA PSEUDO-NMOS e) Netlist spice (SCRIVERE IN STAMPATELLO) * Simulazione gate * Compito di ESD1 * Author: M. Barbaro * 02/03/2005 * -- Inclusione modelli – * Il modello del pmos è P1 * mentre il modello del nmos è N1 .include models.dat * -- Netlist – * Gate M0 Z 0 vdd vdd p1 W=1.5u L=2u AD=2.63p PD=5u MA Z A N1 0 n1 W=1u L=0.5u AD=2.25p PD=3u AS=0.375p PS=0.75u MB N1 B 0 0 n1 W=1u L=0.5u AD=0.375p PD=0.75u MC Z C N2 0 n1 W=2u L=0.5u AD=2.25p PD=3u AS=0.75p PS=0.75u MD N2 D N3 0 n1 W=2u L=0.5u AD=0.75p PD=0.75u AS=0.75p PS=0.75u ME N3 E 0 0 n1 W=2u L=0.5u AD=0.75p PD=0.75u * -- Generatori – vdd vdd 0 3.3 va A 0 3.3 vb B 0 dc 0 pulse 0 3.3 1n 1p 1p 1n 2n vc C 0 3.3 vd D 0 3.3 ve E 0 0 * -- Analisi – .tran 1p 2n .end 57 LOGICA PASS-TRANSISTOR ESERCIZIO 14 Dato un processo CMOS, con parametri seguenti, ed il circuito in Figura 1: VTH VDSAT µCOX COX COV CJ CJSW Keq Processo CMOS 0.4µm – VDD=3.3V NMOS 0.6 (V) 0.4 (V) 75e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 PMOS 0.6 (V) 0.4 (V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Dire a quale famiglia logica appartiene il circuito. b) Ricavare la tabella di verità (con spiegazione) e dire quale porta logica implementa. c) Se gli nmos M1 e M2 hanno entrambi W=0.4um e L=0.4um, ricavare il (W/L) del pmos in modo che la tensione di uscita bassa sia VOL=0.1V. Dimensionare poi la L del pmos lasciando W a dimensione minima (0.4um) (verranno valutati anche i passaggi intermedi) d) Calcolare il tempo di propagazione HL nel caso in cui il carico sia equivalente ad una capacità CL’=10fF, e tutte le capacità di diffusione siano pari a 1fF, quando gli ingressi passano da una configurazione A=1, B=1, a quella A=1, B=0 (verranno valutati anche i passaggi intermedi) e) Spiegare a cosa serve (se serve) la presenza del pmos M3. Figura 1 58 LOGICA PASS-TRANSISTOR a) Famiglia logica Logiche a pass transistor b) Tabella di verità e porta logica implementata dal circuito A 0 0 1 1 B 0 1 0 1 Z 1 0 0 1 Perché: A=0, B=0 : Entrambi i pass transistor (M1 e M2) sono interdetti, il nodo di uscita Z è isolato dagli ingressi e portato al valore 1 dal transistor di pull-up M3 (sempre acceso) A=1, B=0 (e la combinazione simmetrica A=0, B=1) : Il segnale A, applicato al gate di M1, accende il pass-transisor M1 che cortocircuita B con Z. Essendo B=0, Z viene portato a 0 (a patto di dimensionare i transistor in modo che M1 sia più conduttivo di M3). Nella combinazione simmetrica è M2 ad essere acceso e cortocircuitare Z con A che vale 0. A=1, B=1 : Entrambi i pass-transistor sono accesi, cortocircuitando A, B e Z. Poiché A e B sono 1 anche Z è 1 La tabella è quella di una porta: XNOR c) Dimensionamento (scrivere anche i passaggi intermedi del procedimento) Consideriamo il caso A=1, B=0 (l’altro caso in cui l’uscita è bassa è simmetrico quindi porta agli stessi risultati). In tale situazione il circuito è analogo ad un inverter pseudoNMOS con M3 transistor di pull-up e M1 rete di pull-down (B=0 quindi in source di M1 è a massa). Il carico non assorbe corrente (è una capacità) quindi tutta la corrente del pmos scorre nell’unico nmos acceso (M1). Poiché l’uscita deve essere bassa M1 è in triodo e M3 in saturazione, infatti: VDS1=VOL=0.1 < VDSAT=0.4 VSD3=(VDD-VOL)=3.2 > VDSAT=0.4 Isatp=Itrioden upCOX(W/L)3 ((VDD-VTH)VDSAT-VDSAT2/2)= unCOX(W/L)1[(VDD-VTH)VOL-VOL2/2] Sostituendo VOL=0.1, VDD=3.3, VTH=0.6, unCOX/upCOX=3, (W/L)1=1 Si ottiene (W/L)3=0.795 W=0.4um => L1=0.503um Approssimando a multipli di Lmin/2 (le dimensioni devono sempre essere multipli del passo della griglia del layout che è sempre pari a Lmin/2) ossia multiplit di 0.2um L1 = 0.6um 59 LOGICA PASS-TRANSISTOR d) Tempo di propagazione (scrivere anche i passaggi intermedi del procedimento) Se A=1 e B:1->0 l’uscita ha una transizione HL. La capacità di carico totale CL viene scaricata attraverso M1 dalla corrente di saturazione di M1 (che dovrebbe essere diminuita del contributo della corrente di saturazione di M3 che si oppone alla scarica, ma che è però trascurabile). Isat1= unCOX(W/L)1 [(VDD-VTH)VDSAT-VDSAT2/2] = 75uA Le capacità parassite da scaricare sono: 1) capacità di diffusione dei drain di M1, M2, M3 => Cdb1=Cdb2=Cdb3= 1fF 2) capacità gate-drain di M1, M2, M3 => Cgd1=Cgd2=Cgd3= COV W = 0.04fF Nonostante anche il source di M1 sia connesso a Z, in realtà non è la porta stessa che ne pilota le capacità parassite (capacità di diffusione del source e quella gate-source) ma l’ingresso, perché il source di M1 è direttamente connesso a B che si suppone pilotato da un generatore ideale quindi quelli elencati sopra sono tutti i contributi parassiti da prender in considerazione CL=CL’+Cdb1+ Cdb2+ Cdb3+Cgd1+ 2Cgd2+ Cgd3=13.16fF R1=33 KΩ τHL=R1*CL=434 psec tpHL=0.69τHL=299 psec e) Funzione di M3 Come spiegato al punto b) la funzione di M3 è quella di svolgere il ruolo di pull-up per portare l’uscita a 1 quando in ingresso si ha la combinazione A=0, B=0 che disabilita entrambi i pass-transistor. Senza M3, in presenza di tale combinazione, il nodo Z sarebbe in alta impedenza, isolato da tutto e quindi la tensione di uscita resterebbe memorizzata all’ultimo valore assunto prima della comparsa di tale combinazione (con un meccanismo simile a quello dei circuiti dinamici) nella capacità parassita CL (ovviamente a causa della correnti di leakage tale dato verrebbe prima o poi distrutto comunque). 60 LOGICA PASS-TRANSISTOR ESERCIZIO 15 Dato il circuito in Figura (si consideri un processo CMOS 0.5um con i parametri definiti di seguito con VDD=3.3V e COX=3.5fF/um2): PMOS: NMOS: VDSAT=0.4V VTH=0.6V upCOX=25uA/V2 unCOX=75uA/V2 COV=0.1fF/um COV=0.1fF/um CJ=1fF/um2 CJ=1fF/um2 CJSW=1fF/um CJSW=1fF/um Keq=0.5 Keq=0.5 a) Determinare a che tipo di famiglia logica appartiene. b) Determinare la funzione logica Z (è richiesta la tabella di verità, l’espressione algebrica ed il nome della funzione booleana implementata) c) Sapendo che M1, M2 e M5 sono a dimensione minima e che M3-M4 è un inverter a dimensionamento ottimo, e che CL’=10fF determinare il tempo di propagazione quando A=1 e B passa da 1 a 0 (si trascurino tutte le capacità di diffusione e di overlap) d) Modificare il circuito in modo da avere un porta NOR (possibilmente senza aggiungere transistor). e) Scrivere la netlist spice per la verifica del tempo di propagazione al punto c) 61 LOGICA PASS-TRANSISTOR a) Famiglia logica PASS-TRANSISTOR b) Funzione Z A 0 0 1 1 B 0 1 0 1 Z 1 1 1 0 Z = (AB)’ ( porta NAND ) Infatti, quando B=1 si chiude M1 (si apre M2) e dunque A passa sul nodo interno X, viene negato da M3-M4 e Z risulta quindi uguale ad A’. Quando invece B=0 si apre M1, si chiude M2 ed il nodo interno X viene cortocircuitato a 0, tale valore viene poi invertito da M3-M4 e Z risulta uguale a 1. L’unico caso in cui M5 è acceso, dunque, risulta quando l’uscita è 0, ossia nella combinazione A=1, B=1. In tal caso M5 si accende e serve solamente a portare fino a VDD il nodo X che comunque sarebbe portato alto da M1 (M1 però, da solo, non riuscirebbe a portare X oltre il valore VDD-VTH=2.7, causando quindi un consumo di potenza ed un segnale “sporco” in uscita). c) Calcolo del tp (con passaggi e spiegazioni) SCRIVERE IN STAMPATELLO Il tempo di propagazione è dato dalla somma del tempo necessario per fare commutare il nodo X, interno, più il tempo necessario a M3-M4 per fare commutare Z. Nella commutazione in esame A=1 e B passa da 1 a 0, quindi si ha una commutazione in uscita di tipo LH (dalla tabella). Quando B commuta da 1 a 0, il segnale B’ commuta da 0 a 1. Visto che non è specificato altrimenti si suppone che tale variazione sia istantanea come quella di B. In tale situazione M1 si interdice istantaneamente e si accende M2 che chiude il percorso fra X e la massa. A tal punto M2 porta a 0 il nodo X in un tempo dato dal tempo di scarica della capacità CX per mezzo della corrente di scarica (la corrente di saturazione di M2). Durante tale periodo (fino cioè alla commutazione di M3-M4) M5 risulta acceso quindi si opporrà all’azione di M2 (inverter pseudo-NMOS). All’inizio della commutazione, però, M5 è in triodo profondo e la sua corrente è nulla. Al termine della commutazione VX=1.65 e M5 risulta in saturazione (infatti VSD5=1.65, dunque VSD5>VDSAT). Però, visto che M2 e M5 hanno le stesse dimensioni ma M5 è un pmos quindi 3 volte meno conduttivo, la sua corrente può essere considerata trascurabile rispetto a quella di M2 (che è tutta la corrente di saturazione). Si può quindi semplificare il conto ipotizzando che la sola corrente di saturazione di M2 scarichi la capacità CX. 62 LOGICA PASS-TRANSISTOR Il tempo di propagazione è dato dalla seguente relazione: tpLH = tpCX + tpM3M4 Calcolo dapprima il tempo di propagazione del primo blocco, applicando il modello di Elmore: τpCX = 0.69 CX R2 R2 = 3/4 (VDD/ Isat2) Isat2 = unCOX VDSAT W2/L2 (VDD-VTH-VDSAT/2) = 75uA R2 = 33kΩ La capacità CX, trascurando le capacità di diffusione e di overlap, coincide con la somma delle capacità di gate di M3 e M4: CX = Cg3 + Cg4 = COX (W3L3 + W4L4) = COX (1+3) W3L3 = 3.5fF tpCX = 79.7 psec Il tempo di propagazione del secondo blocco è: tpM3M4 = 0.69 CL R3 R3 = 3/4 (VDD/ Isat3) Isat3 = upCOX VDSAT W3/L3 (VDD-VTH-VDSAT/2) = 75uA R3 = 33KΩ CL = CL’ + COX W5L5 = 10.875 (per il calcolo del carico bisogna tenere conto anche del gate di M5) tpM3M4 = 247.6psec Il tempo di propagazione è pari a: tpLH = 327 psec 63 LOGICA PASS-TRANSISTOR d) Modifica del circuito Per modificare il circuito ed ottenere una NOR basta invertire il segnale B con B’ (M1 è pilotato a B’ e M2 da B) e sostituire la massa con VDD al terminale di M2, come mostrato in Figura. Infatti, in tal modo, ogni volta che B=0 passerà A’ e quando B=1 l’uscita è 0. 64 LOGICA PASS-TRANSISTOR Esercizio 16 Dato il processo CMOS 0.5um con i parametri definiti di seguito: Processo CMOS 0.5µm – VDD=3.3V NMOS 0.6 (V) VTH 0.4 (V) VDSAT 75e-6 (A/V2) µCOX COX 3.5 (fF/µm2) COV 0.1 (fF/µm) CJ 1 (fF/µm2) CJSW 0.5 (fF/µm) 0.5 Keq PMOS 0.6 (V) 0.4 (V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Disegnare lo schematico di un MULTIPLEXER 4x1 (ingressi a singolo bit) in logica pass transistor, con buffer invertente finale, utilizzando solo pass-transistor (e non transmission-gate). b) Determinare il tempo di propagazione HL di caso peggiore, corrispondente alla variazione di un solo bit di selezione, qualora l’inverter sia a dimensionamento ottimo (non semplificato), con carico di 10fF, e tutti i pass-transistor siano a dimensione minima. Si supponga che per ogni transistor le diffusioni di drain e source corrispondano ad un rettangolo con un lato pari alla larghezza del MOSFET e lunghezza pari a 0.5um. c) Scrivere la netlist spice per la simulazione del tempo di propagazione calcolato al punto precedente d) Discutere la dissipazione di potenza statica del circuito, nel caso peggiore, e suggerire un metodo per ridurre od eliminare tale contributo. 65 LOGICA PASS-TRANSISTOR a) Schematico (SCRIVERE IL NOME AFFIANCO A CIASCUN TRANSISTOR) b) Calcolo del tp (con passaggi e spiegazioni) SCRIVERE IN STAMPATELLO 66 LOGICA PASS-TRANSISTOR Le dimensioni dei MOS sono indicate in tabella NOME M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 W[um] L[um] AD[um2] PD[um] AS[um2] PS[um] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 1.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.75 0.25 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 2.5 1.5 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.75 0.25 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 2.5 1.5 Uno dei casi peggiori è: A=1 B=0 C=0 D=0 S0:1→0 S1=0 (2 MOS in serie per la carica, 2 nodi parassiti coinvolti) 67 LOGICA PASS-TRANSISTOR Il tempo di propagazione è dato dalla somma del tempo necessario per fare commutare il nodo X, interno, più il tempo necessario a M9-M10 per fare commutare Z. Visto che non è specificato altrimenti si suppone che la variazione di S0 sia istantanea. In tale situazione M3 si interdice istantaneamente e si accende M1 che chiude il percorso fra X e A. A tal punto A carica il nodo X. I nodi coinvolti nella commutazione, oltre al nodo X, sono i nodi N1 e N2 che devono entrambi essere caricati. I valori di capacità sono stati calcolati con le formule (il testo non lo chiede quindi si suppone che diffusioni di drain e source NON siano coincidenti, ogni area di source o drain ed ogni perimetro sono calcolati come indicato dal testo, come se ciascuna diffusione fosse larga come il MOS e lunga 0.5um): CGn = WL COX = 0.875 fF (NMOS) CGp = WL COX = 2.625 fF (PMOS) CGD = COV W = 0.05 fF (NMOS) CGD = COV W = 0.15 fF (PMOS) CGS = COV W + 2/3 COX WL = 0.633 fF (NMOS) CDB (SB) = Keq ( CJ AD + CJSW PD) = 0.5 fF (NMOS) CDB (SB) = Keq ( CJ AD + CJSW PD) = 1 fF (PMOS) Nodo N1 La corrente scorre da A verso X quindi il nodo N1 è il source di M1 e il drain di M2. Poiché A è il segnale che commuta la capacità gate-source associata è pesata 2 per Miller: Cp1 = CSB1 + 2CGS1 + CDB2 + CGD2 = 2.316 fF Nodo N2 La corrente scorre da A verso N2 quindi il nodo N2 è il source di M4, M3 è interdetto quindi non c’è differenza fra source e drain (possiamo considerare N2 il drain di M3). Poiché A è il segnale che commuta la capacità gate-drain (di M3) associata è pesata 2 per Miller: Cp2 = CSB4 + CGS4 + CDB3 + 2CGD3 = 1.733 fF Nodo X Cpx =CSB2 + CGS2 + CDB4 + CGD4 + CDB6 + CGD6 + CDB8 + CGD8 + CG9 + CG10= 6.283fF Tutti i transistor coinvolti sono a dimensione minima, quindi le correnti sono uguali Isat = unCOX VDSAT Wmin/Lmin (VDD-VTH-VDSAT/2) = 75uA R1 = R2 = R10 = 3/4 (VDD/ Isat) = 33KΩ tpLH1 = 0.69 [Cp1 R1 + Cp2 (R1 + R2) + Cpx (R1 + R2)] = 418 psec Per l’inverter, invece: CL = CL’ + CDB9 + 2CGD9 + CDB10 + 2CGD10 = 11.9fF tpHL2 = 0.69 R1 CL = 271 psec Il tempo di propagazione totale è: tpHL = tpLH1 + tpHL2 = 689 psec 68 LOGICA PASS-TRANSISTOR c) Netlist spice (SCRIVERE GLI OPPORTUNI COMMENTI PER LA COMPRENSIONE DEL CODICE) * Compito di ESD1 * -- Inclusione modelli – * Il modello del pmos è P1 mentre il modello del nmos è N1 .include models.dat * -- Netlist – * Gate M1 A nS0 1 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M2 1 nS1 5 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M3 B nS0 2 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M4 2 S1 5 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M5 C S0 3 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M6 3 nS1 5 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M7 D S0 4 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M8 4 S1 5 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M9 Z 5 vdd vdd p1 w=1.5u l=0.5u ad=0.75p pd=2.5u as=0.75p ps=2.5u M10 Z 5 0 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u * Generatori vdd vdd 0 dc 3.3 vfn fn 0 dc 0 pulse 0 3.3 1n 1p 1p 1n 2n va A 0 dc 3.3 vb B 0 dc 0 vc C 0 dc 0 vc D 0 dc 0 vs1 S1 0 dc 0 vs0 S0 0 dc 0 pulse 3.3 0 1n 1p 1p 1n 2n * Analisi .tran 1p 4n .end d) Potenza statica dissipata (SCRIVERE IN STAMPATELLO) La dissipazione di potenza statica è maggiore di quanto atteso ad esempio in un circuito CMOS statico per il fatto che, quando l’uscita deve essere bassa, ossia il nodo X deve essere alto, la tensione sul nodo X è inferiore a VDD. Infatti avendo solo interruttori NMOS non è possibile caricare il nodo X oltre il valore VDD-VTH (per tale valore gli interruttori si interdicono e non è più possibile fare passare corrente). Con tale valore di potenziale al nodo X il PMOS è sulla soglia della conduzione dunque la sua corrente di sottosoglia è molto elevata e si ha un parziale cortocircuito fra VDD e massa. Per evitare questo problema si possono sostituire i pass-transistor con transmission-gate (usando un PMOS pilotato dal segnale negato in parallelo allo NMOS) oppure utilizzare una tecnica di levelrestoring (un PMOS con il gate pilotato dall’uscita Z connesso fra il nodo X e la VDD, che si incarichi di terminare la carica di X quando necessario). 69 LOGICA DINAMICA ESERCIZIO 17 Avendo a disposizione un processo CMOS 0.5 µm con le seguenti caratteristiche (considerare Keq=0.5): VTH VDSAT µCOX COX COV CJ CJSW Processo CMOS 0.5µm – VDD=3.3V NMOS PMOS 0.623 (V) 0.623 (V) 0.415 (V) 0.415 (V) 2 25e-6 (A/V2) 75e-6 (A/V ) 3.5 (fF/µm2) 3.5 (fF/µm2) 0.138 (fF/µm) 0.138 (fF/µm) 2 0.776 (fF/µm ) 0.816 (fF/µm2) 0.345 (fF/µm) 0.355 (fF/µm) a) Disegnare il circuito che implementa la funzione: F=(A+BC)’ in logica dinamica φn . Disegnare il circuito del carico di questa porta, rappresentato da un inverter in logica φp . b) Sapendo che Wmin=Lmin dimensionare gli nmos della porta che implementa F in modo da avere tempi di scarica uguali per tutti i possibili percorsi (ed equivalenti a quelli di un solo nmos a dimensione minima). Dimensionare inoltre il pmos in modo che sia equivalente ad un nmos a dimensione minima. Tutti i transistor del carico sono invece a dimensione minima (sia gli n che i p). c) Calcolare il tempo di propagazione tpHL (a partire dalla commutazione del clock) quando gli ingressi sono fissi al valore A=0, B=1, C=1, supponendo che TUTTE le capacità di diffusione siano pari a 1fF d) Spiegare qualitativamente quali differenze nel calcolo di tale tempo ci si aspetta di trovare nel caso che la funzione ed il carico siano implementati in logica CMOS statica (non rifare ovviamente i conti, spiegare in quali calcoli ci si aspetta di avere delle differenze e di che tipo). e) Scrivere la netlist spice per la verifica del tempo di propagazione calcolato. 70 LOGICA DINAMICA a) Circuito della porta e del carico (fp=fn’) b) Dimensionamenti Per dimensionare la PDN in modo che tutti i percorsi di SCARICA siano equivalenti ad un transistor nmos a dimensione minima si procede come per una porta CMOS standard, quindi si impone che tutti i percorsi serie da F verso massa siano equivalenti ad un transistor con W/L=1 (W=0.5u, L=0.5u). Il percorso M1-M4 contiene 2 nmos in serie quindi ciascuno deve avere W/L=2: L=0.5um -> W=1um W1=W4=1um Il percorso M2-M3-M4 contiene 3 transistor in serie, poiché abbiamo già dimensionato M4, restano da dimensionare M2-M3 che devono essere equivalenti ad un mos con W/L=2 (in modo che messi in serie a M4 siano equivalenti ad un MOS unitario), ossia, essendo in serie, devono avere W/L=4: L=0.5um -> W=2um W2 =W3=2um Il pmos deve essere dimensionato per avere W/L=3 in quanto il rapporto di mobilità della tecnologia è 3 e le VDSAT sono uguali: W5=1.5um Si è richiesto di dimensionare il carico con mos a dimensione minima, quindi: W6=W7=W8=0.5um L6=L7=L8=0.5um 71 LOGICA DINAMICA c) Tempo di propagazione Con A=0, B=C=1 la scarica dell’uscita F avviene attraverso il percorso M2-M3-M4 in corrispondenza della commutazione di M4. Isat4 = Kn (W/L)4 VDSATn (VDD – VTH – VDSATn/2) = 154uA Isat2 = Kn (W/L)2 VDSATn (VDD – VTH – VDSATn/2) = 307uA Reqn4 = ¾ VDD/Isat4 = 16 kΩ Reqn2 = ¾ VDD/Isat2 = 8 kΩ La capacità di carico è data dalla capacità di ingresso del solo transistor M7 che può essere stimata, come sempre come: CL’ = COX WL = (3.5 * 0.5 * 0.5) fF = 0.875 fF Le capacità di gate degli nmos: Cgd1 = Cgs1 = Cgd4 = W1 COV = 0.138 fF (M1 spento, non c’è contributo del canale) Cgd2 = Cgd3 = W2 COV = 0.276 fF Cgs2 = Cgs3 = W2 COV + W2L2 COX = 3.776 fF (M2/M3 in sat., contributo del canale) Cgd5 = W5 COV = 0.207 fF Calcoliamo le capacità parassite considerando le varie componenti dei nodi coinvolti: Nodo N1: Cpn1 = Cdb3 + Csb2 + Cgd3 + Cgs2 = 6.052 fF Nodo N2: Cpn2 = Cdb4 + Csb1 + Csb3 + 2Cgd4 + Cgs1 + Cgs3 = 7.19 fF (Cgd4 pesata 2 per Miller) Nodo Z: Cpz = Cdb1 + Cdb2 + Cdb5 + Cgd1 + Cgd2 + 2Cgd5 = 3.828 fF (Cgd5 pesata 2 per Miller) CL = CL’ + Cpz = 4.703 fF Formula di Elmore: tpHL = 0.69 ( Cpn2 Req4 + Cpn1(Req3 + Req4) + CL (2Req3 + Req4) ) = 283 psec d) Confronto qualitativo col CMOS statico Se la porta ed il suo carico fossero stati CMOS avremmo avuto alcune differenze nel calcolo del tpHL in questa situazione: a) Il carico sarebbe stato costituito da una rete PUN ed una PDN quindi il segnale F sarebbe stato connesso ad un nmos e un pmos (anzi che solo un pmos come in questo caso) quindi la CL’ sarebbe stata come minimo doppia b) Sarebbero aumentate le capacità parassite dei nodi interni. Infatti nel conto delle capacità di diffusione sarebbe stato sicuramente necessario aggiungere i contributi delle capacità di diffusione di altri pmos, insieme alle loro capacità di, sarebbe quindi aumentato il contributo CL. Globalmente avremmo ottenuto un tempo di propagazione, solo parzialmente bilanciato dal fatto che nel caso CMOS statico non sarebbe stato presente il transistor M4. 72 LOGICA DINAMICA e) Netlist * Simulazione logica dinamica * Inclusione modelli dei MOS * Si suppone che sia definito un modello n per gli nmos * ed un modello p per i pmos .include models.dat * Netlist porta F m1 f a 1 0 n1 w=1u l=0.5u m2 f b 2 0 n1 w=2u l=0.5u m3 2 c 1 0 n1 w=2u l=0.5u m4 1 fn 0 0 n1 w=1u l=0.5u m5 f fn vdd vdd p1 w=1.5u l=0.5u * Carico m6 3 fp vdd vdd p1 w=0.5u l=0.5u m7 z f 3 vdd p1 w=0.5u l=0.5u m8 z fp 0 0 n1 w=0.5u l=0.5u * Generatori vfn fn 0 pulse 0 3.3 0 10p 10p 5n 10n vfp fp 0 pulse 3.3 0 0 10p 10p 5n 10n vdd vdd 0 3.3 .tran 10p 40n .end 73 LOGICA DINAMICA ESERCIZIO 18 Dato il processo CMOS 0.5um con i parametri definiti di seguito: Processo CMOS 0.5µm – VDD=3.3V NMOS 0.6 (V) VTH 0.4 (V) VDSAT 75e-6 (A/V2) µCOX COX 3.5 (fF/µm2) COV 0.1 (fF/µm) CJ 1 (fF/µm2) CJSW 0.5 (fF/µm) 0.5 Keq PMOS 0.6 (V) 0.4 (V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Disegnare lo schematico, in logica dinamica Φn, della funzione Z = ((AB)’ + C)’, utilizzando due livelli di logica in cascata. b) Determinare il tempo di propagazione HL di caso peggiore, supponendo che il carico sia modellabile come una capacità di 10fF, e tutti i transistor siano a dimensione minima. Si supponga che per ogni transistor le diffusioni di drain e source corrispondano ad un rettangolo con un lato pari alla larghezza del MOSFET e lunghezza pari a 0.5um. c) Scrivere la netlist spice per la simulazione del tempo di propagazione calcolato al punto precedente. d) Spiegare se esistono potenziali problemi derivanti dal collegamento in cascata di queste due porte Φn . Se sì, spiegare in presenza di quali combinazioni di ingresso si verifichino e se si conoscono possibili soluzioni all’eventuale problema (in tal caso, disegnare lo schematico della porta modificata). 74 LOGICA DINAMICA a) Schematico (SCRIVERE IL NOME AFFIANCO A CIASCUN TRANSISTOR) b) Calcolo del tp (con passaggi e spiegazioni) SCRIVERE IN STAMPATELLO 75 LOGICA DINAMICA Le dimensioni dei MOS sono indicate in tabella NOME M5 M6 M7 M8 W[um] 0.5 0.5 0.5 0.5 L[um] 0.5 0.5 0.5 0.5 AD[um2] 0.25 0.25 0.25 0.25 PD[um] 1.5 1.5 1.5 1.5 AS[um2] 0.25 0.25 0.25 0.25 PS[um] 1.5 1.5 1.5 1.5 Il caso peggiore è A=0 B=0 C=0 (o qualsiasi combinazione di A e B che mantiene Z1 al valore 1, infatti la commutazione HL di Z2 avviene quando Z1 NON deve commutare) 76 LOGICA DINAMICA I valori di capacità calcolati con le formule CGD = COV W CGS = COV W + 2/3 COX WL (NMOS in SATURAZIONE, ossia M6) CGS = COV W (NMOS in CUTOFF, ossia M7) CDB (SB) = Keq ( CJ AD + CJSW PD) sono riportati in tabella NOME CDB [F] M5 0.5f M6 0.5f M7 0.5f M8 0.5f CSB [F] 0.5f 0.5f 0.5f 0.5f CGD [F] 0.05f 0.05f 0.05f 0.05f CGS [F] 0.05f 0.633f 0.05f 0.05f Tutti i transistor sono a dimensione minima, quindi le correnti sono tutte uguali Isat = unCOX VDSAT Wmin/Lmin (VDD-VTH-VDSAT/2) = 75uA R2=R3=R4 = 3/4 (VDD/ Isat) = 33kΩ CpZ2 = CDB5 + 2CGD5 + CDB6 + CGD6 + CDB7 + CGD7 + CL’= 11.7fF Cp3 = CGS6 + CSB6 + CSB7 + CGS7 + CDB8 + 2CGD8 = 2.283fF Applicando il modello di Elmore: tHL2 = Cp3 R8 + CpZ2 (R8 + R6) = 585psec 77 LOGICA DINAMICA c) Netlist spice (SCRIVERE GLI OPPORTUNI COMMENTI PER LA COMPRENSIONE DEL CODICE) * Compito di ESD1 * -- Inclusione modelli – * Il modello del pmos è P1 mentre il modello del nmos è N1 .include models.dat * -- Netlist – * Porta Z1 M1 Z1 fn vdd vdd p1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M2 Z1 A 1 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M3 1 B 2 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M4 2 fn 0 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u * Porta Z2 M5 Z2 fn vdd vdd p1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M6 Z2 Z1 3 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M7 Z2 C 3 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u M8 3 fn 0 0 n1 w=0.5u l=0.5u ad=0.25p pd=1.5u as=0.25p ps=1.5u * Generatori vdd vdd 0 dc 3.3 vfn fn 0 dc 0 pulse 0 3.3 1n 1p 1p 1n 2n va A 0 dc 0 vb B 0 dc 0 vc C 0 dc 0 * Analisi .tran 1p 4n .end d) Analisi collegamento in cascata (SCRIVERE IN STAMPATELLO) (Continuare eventualmente la risposta nel retro di questo foglio) Esiste un problema nella connessione in cascata delle due porte, che si verifica ad esempio per la combinazione A=1 B=1 C=0. Con questa combinazione l’uscita Z2 dovrebbe essere pari a 1 dato che ABC ‘=1. Prima della valutazione, ovvero in fase di precarica, sia Z1 che Z2 sono uguali a 1, si ha quindi che l’ingresso pari a 1 sul MOS M6 potrebbe causare la scarica di Z2 che non potrebbe essere più ricaricato, e di conseguenza Z2 potrebbe essere erroneamente valutato pari a 0. Una possibile soluzione al problema consiste nell’implementare il secondo blocco con logica φp piuttosto che φn. 78 FLIP-FLOP ESERCIZIO 19 Dato un processo CMOS, con i parametri seguenti, ed il circuito in Figura 1 VTH VDSAT µCOX COX COV CJ CJSW Keq Processo CMOS 0.4µm – VDD=3.3V NMOS 0.6 (V) 0.4 (V) 75e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 Wmin=0.4um Lmin=0.4um PMOS 0.6 (V) 0.4 (V) 25e-6 (A/V2) 3.5 (fF/µm2) 0.1 (fF/µm) 1 (fF/µm2) 0.5 (fF/µm) 0.5 a) Dire che tipo di porta implementa il circuito di Figura 1 e spiegarne dettagliatamente il funzionamento b) Dimensionare tutti i transistor in modo che ciascun percorso di scarica e carica sia equivalente ad un transistor NMOS con W/L=1 c) Calcolare il tempo di propagazione HL e LH dell’inverter M9-M10 supponendo che tutte le capacità di diffusione di drain e source (per i pmos e gli nmos) siano pari a 1fF d) Calcolare i tempi di propagazione da D a Q1 e da Q1 a Q sapendo che il carico sul nodo Q è equivalente ad un capacitore di 1fF e) Stimare i tempi di setup e hold del circuito (con giustificazione) Figura 1 79 FLIP-FLOP a) Porta logica e spiegazione del funzionamento Si tratta di un flip-flop C2MOS sensibile ai fronti di discesa del clock. Il funzionamento è il seguente: CLKN è evidentemente la negazione dell’ingresso CLK Quando CLK=1 (CLKN=0) il circuito M1-M4 è un inverter che nega il segnale D (DN) e lo memorizza sulla capacità parassita al nodo Q1. In tale situazione la seconda parte del circuito (M5-M8) risulta interdetta in quanto M6 e M7 sono aperti e quindi Q mantiene il valore assunto precedentemente ed è indipendente da D. Quando CLK diventa 0 (CLKN diventa 1), quindi sul fronte negativo di CLK, M2 e M3 si aprono isolando il nodo Q1 che rimane in alta impedenza e mantiene il valore DN (D negato), in tale momento si attiva il circuito M5-M8 che diventa un inverter e genera in uscita su Q l’inverso di DN ossia il dato D. 80 FLIP-FLOP b) Dimensionamento (scrivere anche i passaggi intermedi del procedimento) Se tutti i percorsi di scarica devono essere equivalenti ad un MOS a dimensione minima (W/L=1) avremo: W3 = W4 = W7 = W8 = 0.8u (W3 è in serie con W4 e W7 è in serie con W8) W10 = 0.4um Per i percorsi di carica vale lo stesso ma in questo caso i transistor sono PMOS e bisogna tenere conto anche della diversa mobilità: W1 = W2 = W5 = W6 = 2.4u W9 = 1.2um Ovviamente tutti i transistor hanno lunghezza minima. c) Tempo di propagazione di M9-M10 Capacità di overlap: CGD9 = COV W9 = 0.1 * 1.2 fF = 0.12 fF CGD10 = COV W10 = 0.1 * 0.4 fF = 0.04 fF Capacità di carico: M9-M10 deve pilotare M2 (W2=2.4um) e M7(W7=0.8um) quindi: CL’ = COX (W2 + W7) Lmin = 4.48 fF Nodo CLKN: CL =CL’+ CDB9 + CDB10 + 2*CGD9 + 2*CGD10 = 6.8 fF Resistenze equivalenti di M9 e M10: R9= R10=33KΩ Costanti di Elmore dei percorsi di carica e scarica: τHL=τLH=R9CL=224psec Tempo di propagazione: tp=tpHL = tpLH = 0.69τLH = 155 psec 81 FLIP-FLOP d) Tempi di propagazione da D a Q1 e da Q1 a Q Nella propagazione da D a Q1 risulta CLK=1 e CLKN=0. Nellla propagazione da Q1 a Q invece si ha CLKN=1 e CLK=0. Capacità gate-drain: CGD1 = COV * W1 = 0.24 fF CGD2 = COV * W2 = 0.24 fF (durante LH, perché M2 è in saturazione) CGD2 = COV * W2 + ½ COX W2L2 = 1.92 fF (durante HL, perché M2 è in triodo) CGD4 = COV * W4 = 0.08 fF CGD3 = COV * W3 = 0.08 fF (durante HL, perché M3 è in saturazione) CGD3 = COV * W3 + ½ COX W3L3 = 0.64 fF (durante LH, perché M3 è in triodo) Capacità gate-souce: CGS2 = COV * W2 + 2/3 COX W2L2 = 2.48 fF (durante LH, perché M2 è in saturazione) CGS2 = COV * W2 + 1/2 COX W2L2 = 1.92 fF (durante HL, perché M2 è in triodo) CGS3 = COV * W3 + 2/3 COX W3L3 = 0.827 fF (durante HL, perché M3 è in saturazione) CGS3 = COV * W3 + ½ COX W3L3 = 0.64 fF (durante LH, perché M3 è in triodo) Nodo N1 (N3) – Nodi parassiti dei due PUN: Cp1 = Cp3 = CDB1 + CSB2 + 2*CGD1 + CGS2 = 4.96 fF (LH) Cp1 = Cp3 = CDB1 + CSB2 + 2*CGD1 + CGS2 = 4.4 fF (HL) Nodo N2 (N4) – Nodi parassiti dei due PDN: Cp2 = Cp4 = CDB4 + CSB3 + 2*CGD4 + CGS3 = 2.987 fF (HL) Cp2 = Cp4 = CDB4 + CSB3 + 2*CGD4 + CGS3 = 2.8 fF (LH) Resistenza equivalente dei singoli MOS : R1=R2=R3=R4= R5=R6=R7=R8= 16.5KΩ Capacità di carico e capacità parassita del nodo Q1: CL1’ = COX (W5 + W8) Lmin = 4.48 fF CpQ1 = CDB2 + CDB3 + CGD2 + CGD3 = 4 fF (HL) CpQ1 = CDB2 + CDB3 + CGD2 + CGD3 = 2.88 fF (LH) CL1 = CL1’ + CpQ1 = 8.48 fF (HL) CL1 = CL1’ + CpQ1 = 7.36 fF (LH) Tempo di propagazione da D a Q1: tpHL = 0.69 [R4Cp2+(R4+R3)CL1+(R4+R3)Cp1] = 0.69 R (Cp2+2CL1+2Cp1) = 327 psec tpLH = 0.69 [R1Cp1+(R1+R2)CL1+(R1+R2)Cp2] = 0.69 R (Cp1+2CL1+2Cp2) = 288 psec tp= 307.5 psec Capacità di carico e capacità parassita del nodo Q: CL2’ = 1 fF CpQ = CDB6 + CDB7 + CGD6 + CGD7 = 4 fF (HL) CpQ = CDB6 + CDB7 + CGD6 + CGD7 = 2.88 fF(LH) CL2 = CL2’ + CpQ = 5 fF (HL) CL2 = CL2’ + CpQ = 3.88 fF (LH) Tempo di propagazione da Q1 a Q: tpHL = 0.69 [R8Cp4+(R7+R8)CL2+(R7+R8)Cp3] = 0.69 R (Cp4+2CL2+2Cp3) = 248 psec tpLH = 0.69 [R5Cp3+(R5+R6)CL2+(R5+R6)Cp4] = 0.69 R (Cp3+2CL2+2Cp4) = 209 psec tp= 228.5 psec 82 FLIP-FLOP e) Tempi di setup e di hold Il tempo di setup è il tempo durante il quale l’ingresso D deve restare costante PRIMA dell’arrivo del fronte del clock di memorizzazione (in questo caso il fronte di discesa). In questo circuito tale tempo dipende dal fatto che, prima della disattivazione di M1-M4 bisogna che D si propaghi fino a Q1 dunque coincide con il tempo di propagazione da D a Q1 (71 psec). Il tempo di hold è invece il tempo durante il quale l’ingresso D deve restare costante DOPO il fronte di memorizzazione. In questo circuito coincide con tempo necessario perché venga disabilitato M1-M4 grazie alla commutazione di M9-M10 quindi coincide con il tempo di propagazione di M9-M10 (41 psec). Se D cambiasse prima di 41psec il master non sarebbe ancora disabilitato ed il cambiamento di D potrebbe propagarsi fino a Q1. 83 FLIP-FLOP e) Netlist spice * Simulazione NAND pass-transistor * -- Inclusione modelli -* Si suppone che i nomi dei modelli sianoN1 e P1 .include models.dat * -- Netlist -* Pass-transistor M1 A B X 0 N1 w=0.5u l=0.5u M2 0 nB X 0 N1 w=0.5u l=0.5u * Level restorer M5 X B vdd vdd P1 w=0.5u l=0.5u * Output buffer M3 Z X vdd vdd P1 w=1.5u l=0.5u M4 Z X 0 0 N1 w=0.5u l=0.5u *Carico CL Z 0 10f * -- Generatori -vdd vdd 0 3.3 va A 0 3.3 vb B 0 pulse 3.3 0 1n 1p 1p 1n 2n vnb nB 0 pulse 0 3.3 1n 1p 1p 1n 2n * -- Analisi -.tran 1p 2n .end 84
Documenti analoghi
V - Micrel Home Page
Per la dualità delle due reti (teorema di DeMorgan) ogni volta
che i transistor sono in serie nella PDN sono in parallelo nella
PUN e viceversa
Si può sempre partire dall’implementazione della sola...