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

Anuncio
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
1.1. Diseño . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Esquema eléctrico . . . . . . . . . . . . . . . . .
1.3. Análisis DC (respuesta) . . . . . . . . . . . . . .
1.4. Análisis transitorio y paramétrico (retardo) . . .
1.4.1. Retardo intrínseco . . . . . . . . . . . . .
1.4.2. Retardo en función de la carga . . . . . .
1.5. Cálculo teórico del retardo . . . . . . . . . . . . .
1.5.1. Modelo DC del MOS . . . . . . . . . . . .
1.5.2. Retardo de subida . . . . . . . . . . . . .
1.5.3. Retardo de bajada . . . . . . . . . . . . .
1.6. Simulación vs cálculo teórico. Frecuencia máxima
1.7. Layout y celda estándar . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
. 3
. 3
. 3
. 6
. 6
. 6
. 6
. 6
. 6
. 8
. 9
. 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
PÁGINA EN BLANCO
2
1.
1.1.
Inversor CMOS
Diseño
Queremos 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 y
nMOS deben ser iguales por lo que
Wp
Wn
Kp0
= Kn0
(1)
Lp
Ln
el área total que ocupan es A = Wp Lp + Wn Ln y nos interesa que sea mínima por lo que la segunda ecuación
de diseño que tenemos es
mı́n {A} = mı́n {Wp Lp + Wn Ln }
(2)
Como tenemos cuatro incógnitas y dos ecuaciones fijamos el valor de dos de ellas al valor mínimo que permite
la tecnología (800nm) y despejamos las dos restantes. Debemos hacer las cuentas con las dimensiones efectivas
en lugar de con las dibujadas
Wn = 800nm −→ Wne = Wn − 2(−50nm) = 900nm
Lp = 800nm −→ Lpe = Lp = 800nm
despejando Wpe de (1) tenemos que
Wpe =
1
Kn0
Lpe Wne
Kp0
Lne
(3)
y sustituyendo (3) en (2) la función área A ya sólo depende de la variable independiente Lne
A(Lne ) = Wne Lne +
Kn0
1
Lpe 2 Wne
Kp0
Lne
(4)
si minimizamos esta función derivando e igualando a cero, vemos que el valor de Lne que minimiza el área es
s
Kn0
L∗ne = Lp
(5)
Kp0
sustituyendo este valor en (3) obtenemos Wpe . Las dimensiones de los transistores son, pasánsolas ya a dimensiones dibujadas
Wp
Wn
Lp
Ln
= 1450nm
= 800nm
= 800nm
= 1439nm
Estas dimensiones habrá después que corregirlas ligeramente al hacer el análisis DC en el simulador para que
la respuesta del inversor sea perfectamente simétrica.
1.2.
Esquema eléctrico
Dibujamos el esquema eléctrico del inversor usando un transistor pMOS y nMOS con las dimensiones calculadas 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 las
dimensiones calculadas vemos que no es exactamente simétrica porque no pasa por el punto (2.5V, 2.5V) sino
por 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, tiene 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 muy
buena 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
Figura 4: Respuesta del inversor con
5
Wn
Ln
Wn
Ln
original
corregido
(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 τf all
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 tf all = 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 τf all = 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 aumentar
la capacidad aumenta el retardo de la salida (Fig. 7). El estudio de los resultados de simulación se hace el
apartado 1.6
1.5.
Cálculo teórico del retardo
1.5.1.
Modelo DC del MOS
Para cálcular el retardo del inversor usamos el modelo DC
todos los que tiene.



0 V2
Id = K Vds (Vgs − Vth ) − 2ds


 K (V − V )2
2
gs
th
del MOS con λ = 0, que es el más sencillo de
si Vgs < Vth
si Vds < Vgs − Vth
si Vds ≥ Vgs − Vth
El retardo se puede calcular de forma aproximada considerando que la des/carga del condensador se hace
siempre a través de transistores saturados. En realidad los transistores siempre entran en óhmnica a medida
que 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 condensador
v crece desde 0V hasta Vcc /2 el pMOS pasa por dos estados de funcionamiento distintos:
1 El
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 τf all 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 corriente
constante. 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 de
corriente 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
2
Considerando siempre valores absolutos Isat = Kp (Vgs − Vth ) = cte
El condensador se carga a corriente constante
C
dv
= Isat
dt
7
que es una ecuación diferencial lineal con coeficientes constantes y se resuelve integrando
Z
Z
Cdv − Isat dt = C1
Cv − Isat t = 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 = tv=V
th
=
Vth C
Isat
pMOS en zona óhmnica
2
Considerando siempre valores absolutos Id = Kp Vds (Vgs − Vth ) − Vds
/2
El condensador se carga ahora a corriente no constante, ya que Id depende de Vds y esta a su vez de la tensión
v del condensador
dv
C
= Id
dt
sustituyendo Vds = Vcc − v en la expresión de Id
dv
= Kp (Vcc − v)(Vgs − Vth ) − (Vcc − v)2 /2
dt
dv
C
= −Kp /2 v 2 + −Kp (Vgs − Vth ) + Kp Vcc v + −Kp /2Vcc2 + Kp Vcc (Vgs − Vth )
dt
|
{z
}
|
{z
}
| {z }
C
a
c
b
que es una ecuación diferencial no lineal con coeficientes constantes y se resuelve integrando
2
Z
Z
1
dv
−
dt = C1
av 2 + bv + c
2av + b
−2
tanh−1 √
C√
− t = C1 con ∆ = 4ac − b2 < 0
−∆
−∆
C
la constante C1 de integración queda determinada al aplicar la condición inicial v(0) = Vth y vale
2aVth + b
2
−1
√
√
tanh
C1 = C
−∆
−∆
el tiempo de carga del condensador hasta la tensión v = Vcc /2 es entonces
∆τrise2
1.5.3.
= t
v=Vcc /2
= C√
3
2
2aVth + b
aVcc + b
−1
−1
√
√
tanh
− tanh
−∆
−∆
−∆
Retardo de bajada
La descarga del condensador se produce a través del transistor nMOS y los cálculos son análogos a los
anteriores, pero ahora con el nMOS. A medida que la tensión del condensador v decrece desde 5V hasta 2.5V
el 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 corriente
constante. Al tiempo de carga en este estado le llamaremos ∆τf all1
Para 2.5V < v < 4.24V el nMOS se encuentra en zona lineal y su modelo equivalente es una fuente de
corriente no constante. Al tiempo de carga en este estado le llamaremos ∆τf all2
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 ∆τf all = ∆τf all1 + ∆τf all2
R
1
2 Nota:
√
dv = √−2
tanh−1 2av+b
+ C1 con ∆ = 4ac − b2 < 0
av 2 +bv+c
−∆
−δ
3 Nota:
tanh−1 (x) ± tanh−1 (y) = tanh−1
x±y
1±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 condensador se descarga a través del nMOS y por tanto hay que cambiar las constantes, corrientes, tensiones y
condiciones iniciales del nMOS. Directamente
∆τf all1 = tv=Vcc −V
th
=C
Vth
Isat
nMOS en zona óhmnica Este cálculo es igual al del apartado anterior correspondiente, pero ahora el
condensador se descarga a través del nMOS y por tanto hay que cambiar las constantes, corrientes, tensiones y
condiciones iniciales del nMOS. Directamente
2
aVcc + b
2a(Vcc − Vth ) + b
√
√
∆τf all2 = tv=Vcc /2 = C √
tanh−1
− tanh−1
−∆
−∆
−∆
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áxima
El 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 de
los datos de simulación mientras que la ordenada en el origen es el retardo intrínseco y sólo se puede obtener
por 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áfica
hace que la direfencia entre ambos retardos (teórico y simulación) sea cada vez mayor a medida que aumentamos
C.
C
1.0e-14F
2.0e-14F
3.0e-14F
4.0e-14F
5.0e-14F
6.0e-14F
7.0e-14F
8.0e-14F
9.0e-14F
1.0e-13F
Teórico (ps)
∆τrise ∆τf all
109
118
218
235
326
353
435
470
544
588
653
706
761
824
870
941
979
1059
1088
1178
Simulación (ps)
∆τrise ∆τf all
121
123
240
246
358
368
477
491
595
613
713
735
831
857
950
979
1068
1101
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 entrada
de 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 en
serie, 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 frecuencia
má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 10
puertas como estas en serie.
4 Se
debe tomar el mayor de los dos retardos, en nuestro caso el de bajada
9
−9
Retardo (s) vs Capacidad (F)
x 10
3
Subida
Bajada
Ajuste lineal y = p1·x + p2
Subida: p1=11781 p2=1.1607e−10
Bajada: p1=12056 p2=1.2950e−10
2.5
Retardo (s)
2
1.5
1
0.5
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Capacidad (F)
2
−13
x 10
Figura 8: τrise y τf all en función de la capacidad de carga
1.7.
Layout y celda estándar
A 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 las
normas 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 interconectar
otras celdas a los lados se sigan cumpliendo las reglas de diseño (DRC), el margen será de al menos la mitad de
las distancias mínimas.
Al crear el layout señalamos donde están los puntos de interconexión externos, los cuales deben estar situados en un contacto. Por último: la comparación del layout con el esquema usando la herramienta LVS (Layout
vs Schematic). Para verificar que no falta nada, hacemos click sobre cada componente en el esquema y debemos
ver como se ilumina el objeto correspondiente en el layout y viceversa. El layout del inversor se muestra en la
Fig. 9
10
Figura 9: Layout del inversor
11
2.
Puerta AND
Para 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. En
este caso el tamaño del circuito esta limitado por el tamaño de los pads (padlimited) ya que son mucho más
grandes que nuestras dos celdas.
2.1.
Ubicación e interconexión de celdas
Utilizando 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 a
hacer a mano.
En primer lugar debemos colocar las dos celdas (NAND e inversor) juntas, de forma que los carriles de Vdd
y Vss estén en contacto. A continuación añadimos elementos de la biblioteca para realizar la parte externa el
circuito, 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 de
interconexión entre las dos celdas (salida de NAND con entrada del inversor) como la conexión de los terminales
externos 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/S
en las pistas correspondientes. El layout final se muestra en la Fig. 11.
2.2.
Fichero GDSII para fabricación
Una 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 genera
desde 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ón
p_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 EDO
p_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ón
n_isat = n_K * (Vcc - n_Vth)^2;
% Coeficientes de la EDO
n_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 Vcc
v = Vcc/2;
% La constante
C1
= 0;
risetime1 = C1
% La constante
C2
=
risetime2 = C2
de integración para risetime1 es
+ C * p_Vth / p_isat;
de integración para risetime2 es
2*C / p_selta * atanh((2*p_a * p_Vth + p_b) / p_selta);
+ -2*C / p_selta * atanh((2*p_a * v
+ p_b) / p_selta);
% La constante de integración para falltime1 es
C3
= -Vcc*C;
falltime1 = -(C3 + C * (Vcc-n_Vth)) / n_isat;
% La constante de integración para falltime2 es
C4
=
-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
Descargar