Diseño de un inversor CMOS de área mínima y …javiervalcarce.eu/pub/monographs/Tarea2.pdf ·...

15
Diseño de un inversor CMOS de área mínima y respuesta simétrica Javier Valcarce y Enrique Alonso 28 de marzo de 2006 Índice 1. Inversor CMOS 3 1.1. Diseño ................................................... 3 1.2. Esquema eléctrico ............................................ 3 1.3. Análisis DC (respuesta) ......................................... 3 1.4. Análisis transitorio y paramétrico (retardo) .............................. 6 1.4.1. Retardo intrínseco ........................................ 6 1.4.2. Retardo en función de la carga ................................. 6 1.5. Cálculo teórico del retardo ........................................ 6 1.5.1. Modelo DC del MOS ....................................... 6 1.5.2. Retardo de subida ........................................ 6 1.5.3. Retardo de bajada ........................................ 8 1.6. Simulación vs cálculo teórico. Frecuencia máxima ........................... 9 1.7. Layout y celda estándar ......................................... 10 2. Puerta AND 12 2.1. Ubicación e interconexión de celdas ................................... 12 2.2. Fichero GDSII para fabricación ..................................... 12 A. Cálculo del retardo con Octave 12 1

Transcript of Diseño de un inversor CMOS de área mínima y …javiervalcarce.eu/pub/monographs/Tarea2.pdf ·...

Diseño de un inversor CMOS de área mínima y respuesta simétrica

Javier Valcarce y Enrique Alonso

28 de marzo de 2006

Índice1. Inversor CMOS 3

1.1. Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Esquema eléctrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Análisis DC (respuesta) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4. Análisis transitorio y paramétrico (retardo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4.1. Retardo intrínseco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4.2. Retardo en función de la carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5. Cálculo teórico del retardo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5.1. Modelo DC del MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5.2. Retardo de subida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5.3. Retardo de bajada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6. Simulación vs cálculo teórico. Frecuencia máxima . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.7. Layout y celda estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2. Puerta AND 122.1. Ubicación e interconexión de celdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2. Fichero GDSII para fabricación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

A. Cálculo del retardo con Octave 12

1

PÁGINA EN BLANCO

2

1. Inversor CMOS

1.1. DiseñoQueremos diseñar un inversor CMOS de entrada en paralelo con respuesta simétrica y área mínima. Una

condición de diseño es que para la mitad de la tensión de entrada, las corrientes de los transistores pMOS ynMOS deben ser iguales por lo que

K ′p

Wp

Lp= K ′

n

Wn

Ln(1)

el área total que ocupan es A = WpLp + WnLn y nos interesa que sea mínima por lo que la segunda ecuaciónde diseño que tenemos es

mı́n {A} = mı́n {WpLp + WnLn} (2)

Como tenemos cuatro incógnitas y dos ecuaciones fijamos el valor de dos de ellas al valor mínimo que permitela tecnología (800nm) y despejamos las dos restantes. Debemos hacer las cuentas con las dimensiones efectivasen lugar de con las dibujadas

Wn = 800nm −→ Wne = Wn − 2(−50nm) = 900nmLp = 800nm −→ Lpe = Lp = 800nm

despejando Wpe de (1) tenemos que

Wpe =K ′

n

K ′p

LpeWne1

Lne(3)

y sustituyendo (3) en (2) la función área A ya sólo depende de la variable independiente Lne

A(Lne) = WneLne +K ′

n

K ′p

Lpe2Wne

1Lne

(4)

si minimizamos esta función derivando e igualando a cero, vemos que el valor de Lne que minimiza el área es

L∗ne = Lp

√K ′

n

K ′p

(5)

sustituyendo este valor en (3) obtenemos Wpe. Las dimensiones de los transistores son, pasánsolas ya a dimen-siones dibujadas

Wp = 1450nmWn = 800nmLp = 800nmLn = 1439nm

Estas dimensiones habrá después que corregirlas ligeramente al hacer el análisis DC en el simulador para quela respuesta del inversor sea perfectamente simétrica.

1.2. Esquema eléctricoDibujamos el esquema eléctrico del inversor usando un transistor pMOS y nMOS con las dimensiones cal-

culadas anteriormente y añadimos pads de E/S para crear un símbolo de circuito (Fig. 1).Para simular el circuito dibujamos otro esquema en el que conectamos una fuente VPULSE, el condensador

de carga y el símbolo del inversor anteriormente creado (Fig. 2).

1.3. Análisis DC (respuesta)El análisis DC realiza un barrido entre 0V y 5V de la tensión de entrada y nos permite ver la respuesta del

inversor. Viendo la gráfica Vsalida = f(Ventrada) podemos ver si la respuesta es simétrica o no (Fig. 3). Con lasdimensiones calculadas vemos que no es exactamente simétrica porque no pasa por el punto (2.5V, 2.5V) sinopor el (2.5V, 1.95V) por lo que hay que ajustar ligeramente las dimensiones de los transistores.

Como la tensión en el nMOS es menor que en el pMOS, su resistencia también lo es. Para aumentarla, tie-ne que pasar menos corriente y para eso debemos disminuir la relación Wn/Ln. Si aumentamos ligeramente Ln

hasta 1550nm la respuesta corta a la bisectriz del primer cuadrante justo en (2.5V, 2.52V) que es ya una muybuena aproximación (Fig. 4).

3

Figura 1: Esquema electrico del inversor

Figura 2: Circuito para simular el inversor

4

Figura 3: Respuesta del inversor con Wn

Lnoriginal

Figura 4: Respuesta del inversor con Wn

Lncorregido

5

(a) Tiempo de subida (b) Tiempo de bajada

Figura 5: Tiempo de subida/bajada en la señal de entrada

1.4. Análisis transitorio y paramétrico (retardo)1.4.1. Retardo intrínseco

El retardo1 del inversor depende de la capacidad de carga y de los tiempos de subida τrise y bajada τfall

de la señal de entrada. Si la entrada es lenta, la salida también lo será aunque nuestro inversor sea muy rápido.Por otra parte, una variación muy rápida en la entrada provoca sobreoscilación en la salida, por lo que habráque llegar a un compromiso.Eligiendo capacidad de carga 0 y un tiempo de subida y de bajada que provoque sobreoscilación pequeña(<10 %) podremos ver el retardo intrínseco del circuito, i.e, el debido únicamente a sus capacidades parásitas.Hemos utilizado una señal cuadrada de 50MHz (T = 20ns) al 50 % con tiempos trise = 60ps y tfall = 60ps (Fig.5). Los retardos que se obtienen al hacer el análisis transitorio (Fig. 6) son los siguientes:

Retardo intrínseco de subida τrise = 110ps con sobreoscilacíón = +0.45V

Retardo intrínseco de bajada τfall = 118ps con sobreoscilacíón = −0.43V

1.4.2. Retardo en función de la carga

Mediante un análisis paramétrico usando como parámetro la capacidad de carga podemos ver que al aumentarla capacidad aumenta el retardo de la salida (Fig. 7). El estudio de los resultados de simulación se hace elapartado 1.6

1.5. Cálculo teórico del retardo1.5.1. Modelo DC del MOS

Para cálcular el retardo del inversor usamos el modelo DC del MOS con λ = 0, que es el más sencillo detodos los que tiene.

Id =

0 si Vgs < Vth

K(Vds(Vgs − Vth)− V 2

ds

2

)si Vds < Vgs − Vth

K2 (Vgs − Vth)2 si Vds ≥ Vgs − Vth

El retardo se puede calcular de forma aproximada considerando que la des/carga del condensador se hacesiempre a través de transistores saturados. En realidad los transistores siempre entran en óhmnica a medidaque la tensión v del condensador se aproxima a Vcc/2 y por tanto la des/carga es más lenta y el retardo mayor.A continuación se presenta el cálculo EXACTO del retardo.

1.5.2. Retardo de subida

La carga del condensador se produce a través del transistor pMOS. A medida que la tensión del condensadorv crece desde 0V hasta Vcc/2 el pMOS pasa por dos estados de funcionamiento distintos:

1El retardo se mide desde el 50% de la entrada hasta el 50 % de la salida

6

Figura 6: Sobreoscilación de la salida y retardo intrínseco

(a) Subida (b) Bajada

Figura 7: τrise y τfall en función de la capacidad de carga

Para 0V < v < 0.78V el pMOS se encuentra saturado y su modelo equivalente es una fuente de corrienteconstante. Al tiempo de carga en este estado le llamaremos ∆τrise1

Para 0.78V < v < 2.5V el pMOS se encuentra en zona lineal y su modelo equivalente es una fuente decorriente no constante. Al tiempo de carga en este estado le llamaremos ∆τrise2

Una vez resueltos estos dos modelos, el tiempo de subida (el que transcurre desde que v pasa de 0V a 2.5V )será la suma ∆τrise = ∆τrise1 + ∆τrise2

pMOS en saturación

Considerando siempre valores absolutos Isat = Kp (Vgs − Vth)2 = cte

El condensador se carga a corriente constante

Cdv

dt= Isat

7

que es una ecuación diferencial lineal con coeficientes constantes y se resuelve integrando∫Cdv −

∫Isatdt = C1

Cv − Isatt = C1

la constante C1 de integración queda determinada al aplicar la condición inicial v(0) = 0

C1 = 0

el tiempo de carga del condensador hasta la tensión v = Vth es entonces

∆τrise1 = t∣∣v=Vth

=VthC

Isat

pMOS en zona óhmnica

Considerando siempre valores absolutos Id = Kp

[Vds (Vgs − Vth)− V 2

ds/2]

El condensador se carga ahora a corriente no constante, ya que Id depende de Vds y esta a su vez de la tensiónv del condensador

Cdv

dt= Id

sustituyendo Vds = Vcc − v en la expresión de Id

Cdv

dt= Kp

((Vcc − v)(Vgs − Vth)− (Vcc − v)2/2

)C

dv

dt= −Kp/2︸ ︷︷ ︸

a

v2 +−Kp(Vgs − Vth) + KpVcc︸ ︷︷ ︸b

v +−Kp/2V 2cc + KpVcc(Vgs − Vth)︸ ︷︷ ︸

c

que es una ecuación diferencial no lineal con coeficientes constantes y se resuelve integrando 2

C

∫1

av2 + bv + cdv −

∫dt = C1

C−2√−∆

tanh−1

(2av + b√−∆

)− t = C1 con ∆ = 4ac− b2 < 0

la constante C1 de integración queda determinada al aplicar la condición inicial v(0) = Vth y vale

C1 = C2√−∆

tanh−1

(2aVth + b√

−∆

)el tiempo de carga del condensador hasta la tensión v = Vcc/2 es entonces 3

∆τrise2 = t∣∣v=Vcc/2

= C2√−∆

[tanh−1

(2aVth + b√

−∆

)− tanh−1

(aVcc + b√−∆

)]1.5.3. Retardo de bajada

La descarga del condensador se produce a través del transistor nMOS y los cálculos son análogos a losanteriores, pero ahora con el nMOS. A medida que la tensión del condensador v decrece desde 5V hasta 2.5Vel nMOS pasa por dos estados de funcionamiento distintos:

Para 4.24V < v < 5V el nMOS se encuentra saturado y su modelo equivalente es una fuente de corrienteconstante. Al tiempo de carga en este estado le llamaremos ∆τfall1

Para 2.5V < v < 4.24V el nMOS se encuentra en zona lineal y su modelo equivalente es una fuente decorriente no constante. Al tiempo de carga en este estado le llamaremos ∆τfall2

Una vez resueltos estos dos modelos, el tiempo de bajada (el que transcurre desde que v pasa de 5V a 2.5V )será la suma ∆τfall = ∆τfall1 + ∆τfall2

2Nota:R

1av2+bv+c

dv = −2√−∆

tanh−1�

2av+b√−δ

�+ C1 con ∆ = 4ac− b2 < 0

3Nota: tanh−1(x)± tanh−1(y) = tanh−1�

x±y1±xy

�pero esto no parece que nos ayude a simplicar mucho las expresión

8

nMOS en saturación Este cálculo es igual al del apartado anterior correspondiente, pero ahora el con-densador se descarga a través del nMOS y por tanto hay que cambiar las constantes, corrientes, tensiones ycondiciones iniciales del nMOS. Directamente

∆τfall1 = t∣∣v=Vcc−Vth

= CVth

Isat

nMOS en zona óhmnica Este cálculo es igual al del apartado anterior correspondiente, pero ahora elcondensador se descarga a través del nMOS y por tanto hay que cambiar las constantes, corrientes, tensiones ycondiciones iniciales del nMOS. Directamente

∆τfall2 = t∣∣v=Vcc/2

= C2√−∆

[tanh−1

(aVcc + b√−∆

)− tanh−1

(2a(Vcc − Vth) + b√

−∆

)]esta vez con a = −Kn/2, b = Kn(Vcc − Vth), y c = 0 como coeficientes de la EDO no lineal.

1.6. Simulación vs cálculo teórico. Frecuencia máximaEl estudio teórico muestra que la relación entre el retardo y la capacidad es lineal, algo que confirma también

la simulación (Fig. 8).

La constante de proporcionalidad se puede calcular de forma teórica (como ya hemos hecho) o a partir delos datos de simulación mientras que la ordenada en el origen es el retardo intrínseco y sólo se puede obtenerpor simulación. En la tabla 1 se comparan los resultados de la simulación con los obtenidos de forma teórica.

El retardo teórico es similar al obtenido por simulación. El error en la estimación de la pendiente de la gráficahace que la direfencia entre ambos retardos (teórico y simulación) sea cada vez mayor a medida que aumentamosC.

Teórico (ps) Simulación (ps)C ∆τrise ∆τfall ∆τrise ∆τfall

1.0e-14F 109 118 121 1232.0e-14F 218 235 240 2463.0e-14F 326 353 358 3684.0e-14F 435 470 477 4915.0e-14F 544 588 595 6136.0e-14F 653 706 713 7357.0e-14F 761 824 831 8578.0e-14F 870 941 950 9799.0e-14F 979 1059 1068 11011.0e-13F 1088 1178 1186 1223

Cuadro 1: Incremento del retardo (∆) de subida/bajada en función de la capacidad de carga C

El retardo del inversor, como hemos visto, depende tanto de sus capacidades intrínsecas (retardo intrínseco)como de la capacidad de carga. Cuando la puerta está conectada a otras, su carga es la capacidad de entradade las puertas a las que se conecta. Por otra parte, el retardo total de una serie de puertas conectadas en serie,es la suma de los retardos.4

Por ejemplo, si nuestro inversor tiene una capacidad de entrada de C=10e-14F y tenemos 10 inversores enserie, el retardo total de la cadena es aproximadamente de (10-1) · [130ps (intrínseco) + 1223ps (incremento)] =1.43us. Si estás puertas forman un bloque combinacional en un sistema digital síncrono, entonces la frecuenciamáxima de operación del circuito es

Tclk > 1.43us =⇒ Fmax = 698KHz

o dicho de otra forma, si tenemos una frecuencia de reloj de 698KHz, entonces no podemos poner más de 10puertas como estas en serie.

4Se debe tomar el mayor de los dos retardos, en nuestro caso el de bajada

9

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

x 10−13

0

0.5

1

1.5

2

2.5

3x 10

−9

Capacidad (F)

Ret

ardo

(s)

Retardo (s) vs Capacidad (F)

SubidaBajada

Ajuste lineal y = p1·x + p2

Subida: p1=11781 p2=1.1607e−10Bajada: p1=12056 p2=1.2950e−10

Figura 8: τrise y τfall en función de la capacidad de carga

1.7. Layout y celda estándarA partir del esquema eléctrico del inversor usamos Virtuoso XL para crear un layout inicial. Como queremos

crear una celda estándar que pueda conectarse a otras, debemos modificar este layout para adaptarlo a lasnormas y medidas de una celda estándar:

Altura: 57.9µm

Carriles de alimentación

• Altura: 6µm

• Capa: MET1

• Posición vertical: VSS en el borde inferior de la celda y VDD a 2.5µm del borde superior

Altura del pozo: 32.8µm.

Conexiones con el exterior (acceso vertical):

• Capa: MET2

• Dimensiones del área de conexión: 2µm × 2µm

Debemos dibujar la celda lo más estrecha posible, pero dejando un margen mínimo para que al interconectarotras celdas a los lados se sigan cumpliendo las reglas de diseño (DRC), el margen será de al menos la mitad delas distancias mínimas.

Al crear el layout señalamos donde están los puntos de interconexión externos, los cuales deben estar situa-dos en un contacto. Por último: la comparación del layout con el esquema usando la herramienta LVS (Layoutvs Schematic). Para verificar que no falta nada, hacemos click sobre cada componente en el esquema y debemosver como se ilumina el objeto correspondiente en el layout y viceversa. El layout del inversor se muestra en laFig. 9

10

Figura 9: Layout del inversor

11

2. Puerta ANDPara la realización de la puerta AND utilizamos una puerta estándar NAND de la biblioteca del fabricante

y nuestro inversor conectados en serie (Fig. 10).Partimos del esquema eléctrico al cual debemos incorporar los PADS tipo P necesarios para la fabricación. Eneste caso el tamaño del circuito esta limitado por el tamaño de los pads (padlimited) ya que son mucho másgrandes que nuestras dos celdas.

2.1. Ubicación e interconexión de celdasUtilizando Virtuoso XL obtenemos un layout a partir del esquema eléctrico de la puerta AND. Aunque existe

una herramienta que realiza la ubicación y trazado de las pistas de interconexión automáticamente, lo vamos ahacer a mano.

En primer lugar debemos colocar las dos celdas (NAND e inversor) juntas, de forma que los carriles de Vddy Vss estén en contacto. A continuación añadimos elementos de la biblioteca para realizar la parte externa elcircuito, i.e, CORNERS y SPACERS. Una vez colocados los CORNERS, SPACERS y PADS correctamente(deben coincidir exactamente), debemos realizar las líneas de interconexión, esto incluye tanto las líneas deinterconexión entre las dos celdas (salida de NAND con entrada del inversor) como la conexión de los terminalesexternos de las celdas (A, B, C, Vdd y Vss).

Trazamos las pistas (la verticales en MET2 y las horizontales en MET1) y situamos los terminales de E/Sen las pistas correspondientes. El layout final se muestra en la Fig. 11.

2.2. Fichero GDSII para fabricaciónUna vez finalizado el layout debemos enviarlo a fabricación. El fabricante acepta el formato .gds, que contiene

la información necesaria para fabricar el circuito utilizando el proceso tecnológico correspondiente. Se generadesde el menú EXPORT->STREAM en el programa principal.

A. Cálculo del retardo con Octave%% function [risetime, falltime] = delay(C)%% Calcula el retardo de un inversor CMOS (cálculo simplificado sin% tener en cuenta las resistencias de las fuentes de corriente)%% risetime - Retardo de subida (hasta el 50% de Vcc=5V)% falltime - Retardo de bajada (hasta el 50% de Vcc=5V)% C - Capacidad de carga en faradios%% lma009,% curso 2005/2006%% Javier Valcarce García | [email protected]% Enrique Alonso Fernandez | [email protected]%%

function [risetime, falltime] = delay(C)

Vcc = 5;% Transistor pMOS, parametros en valor absoluto%p_W = 1450;p_L = 800;p_K = 12.625e-6 * p_W / p_L;p_Vth = 0.78;% Corriente en saturaciónp_isat = p_K * (Vcc - p_Vth)^2;

12

Figura 10: Esquema electrico de la puerta AND

13

Figura 11: Layout FINAL de la puerta AND

14

% Coeficientes de la EDOp_a = -p_K/2;p_b = -p_K*(Vcc-p_Vth) + p_K*Vcc;p_c = -p_K/2*Vcc^2 + p_K*Vcc*(Vcc-p_Vth);p_delta = 4*p_a*p_c - p_b^2;p_selta = sqrt(-p_delta);

% Transistor nMOS%n_W = 900;n_L = 1400;n_K = 32.780e-6 * n_W / n_L;n_Vth = 0.76;% Corriente en saturaciónn_isat = n_K * (Vcc - n_Vth)^2;% Coeficientes de la EDOn_a = -n_K / 2;n_b = +n_K * (Vcc-n_Vth);n_c = 0;n_delta = 4*n_a*n_c - n_b^2;n_selta = sqrt(-n_delta);

% retardo: tiempo hasta llegar a la mitad de Vccv = Vcc/2;

% La constante de integración para risetime1 esC1 = 0;risetime1 = C1 + C * p_Vth / p_isat;% La constante de integración para risetime2 esC2 = 2*C / p_selta * atanh((2*p_a * p_Vth + p_b) / p_selta);risetime2 = C2 + -2*C / p_selta * atanh((2*p_a * v + p_b) / p_selta);

% La constante de integración para falltime1 esC3 = -Vcc*C;falltime1 = -(C3 + C * (Vcc-n_Vth)) / n_isat;% La constante de integración para falltime2 esC4 = -2*C / n_selta * atanh((2*n_a * (Vcc - n_Vth) + n_b) / n_selta);falltime2 = C4 + 2*C / n_selta * atanh((2*n_a * v + n_b) / n_selta);

risetime = risetime1 + risetime2;falltime = falltime1 + falltime2;

15