EAMTA 2007
Tutorial Tanner
Esquemático - Layout
Por Martín Di Federico
GISEE
GRUPO DE INVESTIGACIÓN EN SISTEMAS ELECTRÓNICOS Y ELECTROMECATRÓNICOS
UNIVERSIDAD NACIONAL DEL SUR
- - - - - - - - - Tutorial del paquete de programa Tanner. Versión 1.1- - - - - - - - - -
INDICE
Introducción ......................................................................................................................................... 1
Esquemático ......................................................................................................................................... 2
Nuevo Esquematico ............................................................................................................................. 2
Colocar Componentes en un esquemático ....................................................................................... 2
Seleccionar y Manipular Componentes ........................................................................................... 3
Editar Parámetros del Componente.................................................................................................. 3
Conexiones....................................................................................................................................... 4
Nombrar Nodos................................................................................................................................ 4
Colocar Puertos en un Esquemático................................................................................................. 4
Crear un Símbolo ............................................................................................................................. 5
Instanciar celdas ............................................................................................................................... 5
Simulación ........................................................................................................................................... 5
Fuentes de señal ............................................................................................................................... 5
Correr Simulación ............................................................................................................................ 6
Visualización de señales .................................................................................................................. 7
Layout .................................................................................................................................................. 8
Nuevo Layout................................................................................................................................... 8
Selección de la Tecnología............................................................................................................... 8
Dibujar Máscaras ............................................................................................................................. 9
Verificar Reglas de Diseño .............................................................................................................. 9
Exportar un Netlist ........................................................................................................................... 2
Cross-Section ................................................................................................................................... 3
Layout Vs Esquemático ....................................................................................................................... 3
Nueva Comparación......................................................................................................................... 3
Comparar.......................................................................................................................................... 4
Teclas Rapidas ..................................................................................................................................... 4
Introducción
Este tutorial está preparado para la Escuela Argentina de Microelectrónica, Tecnología y
Aplicaciones (EAMTA) 2007. Se explica la Utilización de la Herramienta Tanner EDA, para realizar
el diseño y la simulación de circuitos integrados. Este paquete incluye programás que permiten
realizar el diseño del esquemático del circuito para simularlo, dibujar las máscaras del layout, y
verificar que el esquemático y las máscaras del layout tengan la misma topología.
El programa con el que se dibujan los esquemáticos del circuito se llama S-Edit. Para realizar un
esquemático digital, primero se crean los transistores de tamaño mínimo NMOS y PMOS. A partir de
ellos, se van creando estructuras más complejas. Este programa permite realizar simulaciones
temporales de los circuitos. Para ello es necesario definir un nuevo esquemático, donde se instancia el
circuito a simular, y se colocan fuentes de señal con las entradas deseadas. Se extrae un archivo de
nodos de Spice y se le agregan comandos de simulación. Por último, con el programa T-Spice, se
realiza la simulación temporal. Para poder visualizar las formás de onda entregadas por la simulación,
se utiliza el programa W-Edit.
Con el programa L-Edit, se dibujan las máscaras que servirán para realizar el proceso de
litografía de creación de circuitos integrados. Para utilizar este programa se debe usar un archivo de
“tecnología”. Este archivo indica que máscaras están disponibles en la tecnología y cuales son las
reglas de diseño. Para asegurarse que un layout está correctamente dibujado, debe cumplir con las
reglas de diseño y debe ser igual topológicamente al esquemático diseñado. Para realizar la
comparación, entre el esquemático y el layout, se debe extraer un archivo de nodos de Spice del
esquemático, y también uno del layout. Luego con programa LvS, se comparan los archivos de nodos
extraídos.
1
Esquemático
El programa S-Edit es el programa para realizar esquemáticos. Este programa se basa en
módulos y jerarquías. Cada uno de los módulos tiene dos modos de visualización modo Esquemático,
que es la vista del circuito, y odo Simbólico que es el símbolo del circuito que se mostrará a la hora de
ser instanciado en un módulo de mayor jerarquía.
Nuevo Esquematico
Realice un Nuevo Diseño en una carpeta conocida (Colocaremos TODA la información en esa
carpeta.) Desde File > New Design se selecciona la creación de un nuevo diseño o Librería. Cada
Librería tiene celdas que corresponden a un esquemático.
Ejercicio:
Cree una nueva Librería llamada Prueba.
Figura 1: Menu de Nuevo Diseño
Colocar Componentes en un esquemático
Los componentes Básicos (Transistores fuentes Resistencias) se instancias desde la librería
spice. También hay fuentes de Alimentación de señal, y nodos globales de Vdd y Gnd. Esta librería se
encuentra en un artchivo llamado [Link].
Ejercicio:
Haga click en y agregue la librería [Link] en el proyecto.
Instancie de la librería spice, un MOSFET_N , un MOSFET_P , un Puerto Vdd y un Gnd, tal
como lo muestra la figura 2.
Figura 2: Instanciar Objetos
2
Seleccionar y Manipular Componentes
El uso del mouse en este programa es diferente a otros. Por ese motivo en la barra de tareas hay
una sección que es especial para ver que funciónes está realizando cada uno de los botones de mouse.
Al apretar Alt o Ctrl estas funciónes cambian.
Ejemplos…
Para Seleccionar un módulo o un grupo de módulos se puede usar el botón derecho o el
izquierdo. Si el módulo que se quiere seleccionar está muy cerca de otro, al hacer click la siguiente
vez, se seleccionara otro elemento y así ira rotando por todos los módulos que se encuentran cerca.
Para mover un módulo se Utiliza el botón del medio.
Para copiar un módulo se presiona Ctrl y se utiliza el botón de la izquierda.
Editar Parámetros del Componente
Cada componente tiene sus propiedades. Se le pueden agregar propiedades con el botón .
Las propiedades pueden ser valores explícitos o expresiones. Si se desea hacer referencia a un valor y
la referencia esta en la misma celda se coloca un $var y si es una propiedad heredada se coloca ?var.
EJERCICIO:
El paso siguiente es editar los parámetros de los transistores para que sean de tamaño
mínimo.
Abrir los Transistores y hacerlos de tamaño mínimo.
Observe que el comando de salida de Spice llama a variables con el signo $.
Figura 3: Transistor PMOS
Figura 4: Transistor NMOS
Colocaremos en las propiedades de W y L de los transistores una variable Lambda heredada.
PMOS W=10*?Lambda L=2*?Lambda
NMOS W=6*?Lambda L=2*?Lambda
3
Que las propiedades sean Integer para que realice los cálculo de las longitudes y areass.
Para que el motor de Spice reconozca que es una expresión en vez de un Valor los valores deben ir
entre comillas simples
Cada Transistor tiene un [Link].
Acomodarlo de la siguiente manera
NMOS
M${Name} %{D} %{G} %{S} %{B} ${model} L='${L}' W='${W}' AD=${AD} PD=${PD} AS=${AS} PS=${PS}
PMOS
M${Name} %{D} %{G} %{S} %{B} ${model} L='${L}' W='${W}' AD=${AD} PD=${PD} AS=${AS} PS=${PS}
Los nombres de puertos XXX hacerlos invisibles.
Conexiones
Para realizar las conexiones entre nodos, se utiliza el ícono WIRE . Fíjese como el botón
Izquierdo del Mouse Dice DRAW.
EJERCICIO:
Coloque los Transistores tal como lo muestra la figura 5 y conéctelos.
Figura 5: Inversor
Nombrar Nodos
El botón Net Label se utiliza para nombrar a los nodos en un circuito. El nombre de un nodo
pude ser Global o Local.
Globales
Los nodos globales son nodos que están accesibles desde cualquier bloque del proyecto.
Usualmente son VDD y GND.
Obs. Para hacer un nodo Global se utiliza un Puerto Global.
Locales
Los nodos locales solo sirvan para el bloque en el cual es colocado.
Colocar Puertos en un Esquemático
Los puertos son conexiones que se hacen entre el esquemático y el Símbolo.
4
Los puertos pueden ser IN, OUT, BIDIR
Ejercicio:
Coloque los Puertos In y Out en la entrada y la salida del inversor tal como lo muestra la
Figura 5.
Crear un Símbolo
Para crear un Símbolo de un Esquemático, se debe colocar todos los puertos del esquemático y
luego ir a Cell > Update Simbol
Esto creará un nuevo símbolo, cuadrado, con los puertos tanto de entrada y de salida.
Ejercicio:
Hay que pasarle el parámetro Lambda a los transistores. Para esto coloque una nueva
propiedad en la celda llamada Lambda con el botón .
Modificar el símbolo para que quede de la siguiente manera
Figura 6: Simbolo del Inversor
Instanciar celdas
Una vez hecha la celda se puede instanciar en un nuevo esquemático, con el menú Cell >
Instance, o Presionando en el ícono
Simulación
Para realizar una simulación se crea lo que se llama un banco de prueba donde se coloca el
Circuito a simular y todas las fuentes de alimentación necesarias para generar las señales.
Fuentes de señal
Para realizar simulaciones se debe instanciar el circuito a simular, alimentarlo con una fuente
de tensión e inyectar señales. Las fuentes más usadas para este tipo de tareas son:
Source_v_dc
Es una fuente de tensión de valor constante.
Figura 7 : Fuente DC
Propiedades :
V : Valor de Tensión.
Source_v_bit
Es una fuente de tensión que sigue un patrón de ceros y unos.
5
Figura 8 : Fuente Bit
Propiedades :
vlow : Valor de tensión del estado bajo “0”
vhigh : Valor de tensión del estado alto “1”
risetime : tiempo que tarda la señal en ir de ”0” a “1”
falltime : tiempo que tarda la señal en ir de ”1” a “0”
lowtime : tiempo en segundos que se mantendrá la señal en estado bajo (incluye fall time)
hightime : tiempo en segundos que se mantendrá la señal en estado alto (incluye rise time)
pattern : patrón de ceros y unos indicando los valores que debe tomar la fuente.
Source_v_pwl
Es una fuente de tensión que varia en el tiempo en forma lineal a tramos.
Figura 9 : Fuente PWL
Propiedades :
pattern : Pares de puntos Tiempo - tensión
Ej.
Figura 10: Ejemplo de función PWL
Para conseguir una señal como la mostrada en la figura 10, el patrón debe ser:
0 0 1u 5 2u 0 3u 2,5
Correr Simulación
El programa que corre el motor de Spice se llama T-Spice. Toda la configuración para la
simulación se hace desde el menú Setup > Spice Simulation o haciendo click en el botón de la
barra de tareas.
Modelo de los transistores y parámetros
Para realizar una simulación lo más aproximada posible se deben elegir bien los modelos de
los transistores. Los modelos se encuentran accesibles en el archivo [Link]. Para que el simulador
simule con esos modelos se debe agregar la siguiente línea de comandos.
.include [Link]
Hay que tener en cuenta que el archivo [Link] se debe encontrar en el mismo directorio que
el archivo a simular.
También hay que colocar el parámetro lambda en la simulación con el comando
6
.param Lambda = 0.3u
Comandos de simulación
Los comandos de simulación se colocan en el archivo desde el menú de simulación.
Ejecutar Simulación
Para correr una simulacion y ver tensiones en distintos nodos se utiliza el menu
de la barra de tareas
Ejercicio:
Cree una nueva celda para Simular el Inversor llamada TestInv.
Figura 11: Formulario Nueva Celda
Cree el siguiente banco de prueba
Figura 12: Esquematico del banco de prueba del Inversor.
En la configuración de la Simulación agregue los parámetros de Lambda y los modelos de los
transistores.
Visualización de señales
Las señales se visualizan con el programa W-Edit
Con el comando .print se eligen las señales a visualizar.
Ejemplo.
.print nodo
Ejercicio
Realice la simulación transitoria del Inversor de 1us con paso de 2 ns.
En Aditional Spice comments coloque
.include [Link]
.param Lambda = 0.3u
.print Entrada
.print Salida
El archivo de Spice debe quedar como el siguiente
7
********* Simulation Settings - General section *********
*************** Subcircuits *****************
.subckt Inv In Out Gnd Vdd Lambda=300n
MNMOS_min_1 Out In Gnd Gnd NMOS L='2*Lambda' W='6*Lambda' AD='6*Lambda*6*Lambda'
PD='2*6*Lambda+6*Lambda' AS='6*Lambda*6*Lambda' PS='2*6*Lambda+6*Lambda'
MPMOS_min_1 Out In Vdd Vdd PMOS L='2*Lambda' W='10*Lambda' AD='6*Lambda*10*Lambda'
PD='2*6*Lambda+10*Lambda' AS='6*Lambda*10*Lambda' PS='2*6*Lambda+10*Lambda'
.ends
********* Simulation Settings - Parameters and SPICE Options *********
XInv_1 Entrada Salida Gnd Vdd Inv Lambda=300n
vSource_v_dc_1 Vdd Gnd 3.3
vSource_v_bit_1 Entrada Gnd bit({001101000111} pw=200n on=3.3 off=0.0 rt=5n ft=5n
delay=0 lt=100n ht=100n)
********* Simulation Settings - Analysis section *********
.tran 2n 1u
********* Simulation Settings - Additional SPICE commands *********
.include [Link]
.param Lambda = 0.3u
.print Entrada
.print Salida
.end
Layout
El programa para dibujar las máscaras del circuito es el L-Edit.
Nuevo Layout
Para comenzar a dibujar el layout se crea un nuevo archivo que va a contener todas las celdas
necesarias para nuestro diseño. Haciendo Click en File > New. Aparece el Cuadro de diálogo
mostrado en la Figura 13. Se selecciona un directorio conocido para realizar el layout y el nombre del
archivo.
Es recomendable que el Esquematico y el layout se encuentren en directorios separados pero
dentro de la misma carpeta.
Figura 13: Formulario Nuevo Archivo
Selección de la Tecnología
Para realizar un diseño en una tecnología particular se debe, como primer paso, cargar el
archivo de tecnología. Esto se hace a través de File > Replace Setup. En función de la tecnología con
la que se trabaje, se habilitarán las mascaras que estan disponibles. Algunas de las ellas se muestran en
la figura 14.
Figura 14: Máscaras de dibujo
Cada máscara de layout tiene un color distinto. Para realizar el diseño del circuito se tiene que
“Dibujar” con la máscara adecuada.
Los diseños se realizarán en reglas escalables. Hay que seleccionar Lambda en la barra de
tareas, tal como lo muestra la figura 15.
8
Figura 15: Unidad Lambda Seleccionada.
Dibujar Máscaras
Desde la barra de tareas se seleccionan las herramientas de dibujo que permiten realizar los
dibujos de diferentes formas.
Figura 16: Barra Herramientas Dibujo
El diseño se realiza de manera jerárquica, creando primero las celdas más usadas de menor
jerarquía, como Contactos y Vias, y luego se instancian en otras celdas.
Verificar Reglas de Diseño
La tecnología tiene reglas de diseño que se deben cumplir. Para verificar el correcto diseño del
layout se utiliza la barra de tareas de DRC (Design Rule Check )
Figura 17: Menu de DRC
En caso de que haya errores se muestra donde esta el error y que error es. Por ejemplo en la
Figura 18 el error que se cometio fue que el Active debe sobresalir del contacto 1,5 Lambdas y solo
sobresale 1 Lambda.
Figura 18: Error de DRC
Ejercicio:
Realice los siguientes contactos, como se muestra en la Figura 17.
ActiveN Metal1
ActiveP Metal1
Poly Metal1
Metal1 Metal2
Verificar con el DRC que cumplan las reglas de diseño.
9
Figura 19: layouts de varios contactos y vias.
Ejercicio:
Realice el Layout de un Transistor NMOS y un PMOS de tamaño mínimo tal como lo muestra
la figura 18 y 19. Verificar que cumplan con las reglas de diseño.
NMOS: Primero colocar una capa de Active (Verde) de tamaño apropiado (6Lambdas x 14Lambdas).
Colocar Poly (Rojo) como gate. Colocar Nselect (area a ser dopada N+) Instanciar los contactos.
Figura 20: Layout de un NMOS
PMOS: Primero colocar una capa de Active (Verde) de tamaño apropiado (10Lambdas x
14Lambdas). Colocar Poly (Rojo) como gate. Colocar Pselect (area a ser dopada P+) Instanciar los
contactos Colocar el Nwell(Pozo dopado N-).
Figura 21: Layout de un PMOS
Ejercicio:
Utilizando Las celdas creadas anteriormente Realice el Layout de un Inversor de tamaño
mínimo tal como lo muestra la figura 20. Verificar que cumpla con las reglas de diseño.
10
Figura 22: Layout del Inversor
Exportar un Netlist
Una vez que se tiene un diseño sin errores, se puede realizar una extracción para tener un
archivo de SPICE del layout, haciendo click en el botón de la barra de tareas. El cuadro de
diálogo con las opciones se muestra en la Figura 23.
Figura 23: Formulario para generar un Netlist de SPICE.
Verificar que el marco SPICE include statements de la pestaña OutPut no haya ninguna
declaración. Hay varias opciones más que se pueden seleccionar como colocar las coordenadas de los
transistores, etc.
Al seleccionar RUN aparecerá una advertencia de las capacidades de ciertas máscaras. Ignorar
estas advertencias.
Figura 24: Advertencia de las capacidades
2
Cross-Section
El programa tiene una herramienta que permite ver el corte transversal de una parte del layout.
Haciendo click en el botón de la barra de tareas.
Ejercicio: Reslizar el corte transversalde un Transistor Pmos tal como se muestra en la Figura 25.
Figura 25: Corte transversal de un PMOS
Layout Vs Esquemático
Para comparar la igualdad entre el esquematico, realizado con S-Edit, y el Layout, realizado
con L-Edit, se utiliza un programa llamdo LvS. Este programa tiene como entrada dos archivos Netlist
de SPICE. Los circuitos puedes estar conectados de la misma manera, pero los transistores ser de
distinto tamaño, en ese caso serán solo topologicamente iguales.
Nueva Comparación
Para iniciar una comparación, se hace click en o desde el menú File > New. Se selecciona
LVS Setup (viene seleccionada por defecto). Aparece la ventana mostrada en la Figura 26.
Figura 26: Ventana de comparación
En el marco Netlist de la pestaña Input se colocan los netlist extraidos previamente del
esquemático y del layout. El menú emergente que se encuentra a la izquierda se utiliza para
seleccionar el formato del netlist, por defecto se usa el tipo T-Spice. Si se desea ver el netlist se puede
ver haciendo click en el bot’on Edit.
Opciones de salida
En la pestaña Output se encuentran las opciones de salida. Los datos generados por la
comparación pueden guardarse en un archivo si se desea.
Parametros de Dispositivos a comparar
En la pestaña Device Parameter, mostrada en la Figura 27, se seleccionan las características
que el programa va a chequear entre los dos netlist. Se pueden verificar los valores de resistencia,
capacidad, Inductancia. También longitudes y areas de Transistores, etc.
3
Figura 27: Parámetros a comaprar
Comparar
Para realizar la comparación hacer click en el botón de la barra de tareas. El programa
abrira una ventana en la que se mostrara el proceso de comparacion, y al final, si los circuitos son
Iguales tanto en tamaño,de los parametros que le indicamos, como en conexiónes mostrara un mensaje
como el siguiente:
Ejercicio:
Presione el botón del Esquemático, y cambie el valor de Lambda de 0.3u a 0.5 u. y
realice una comparacion. Se debe ver en la pantalla un aviso como el siguiente:
Es importante recordar que el circuito solo comara lo que se le indica en la pestaña de
parametros.
Una vez verificada la igualdad entre Esquemático y Layout, se tiene seguridad de que lo que se
mandará a integrar es lo que se diseño y se realizó en el esquemático.
Teclas Rapidas
Teclas Rapidas
Espacio Redibujar
Home Ver Todo
Vista
+/- Zoom
←↑→↓ Mover vista
Ctrl+D Duplicar Objeto
Ctrl+A Seleccionar Todo
PageUp Bajar Un nivel para Editar
Editar
PageDn Subir un nivel para Editar
R Rotar
H/V Espejar
Celda / Modulo
Celda / Modulo
N Nuevo
T Renombrar
O Abrir
C Copiar
I Instanciar