tutorial básico de layout con cad ence - imse-cnm.csic.es · inútil, ya que los transistores de...

41
Tutorial básico de layout con Cadence José Juan Martínez Rodríguez Instituto de Microelectrónica de Sevilla CENTRO NACIONAL DE MICROELECTRÓNICA - C.S.I.C. Versión 1.0 - abril de 2003 Este documento trata de constituir una guía de iniciación a la realización de layouts en el entorno Cadence. Se presentan en él todos los pasos necesarios para una correcta realización de un layout así como las distintas herramientas de verificación del diseño de las que dispone el entorno. En concreto se escribió basándonos en el kit 3.40 de AMS, aunque en principio es válido para cualquier otro kit con las particularidades que pueda presentar cada uno y que se irán comentando conforme aparezcan. Consta de nueve grandes apartados: - Inicialización y arranque del entorno - Creación de una vista layout - Colocación de transistores - Creación de capas - Creación de contactos - Chequeo de las reglas de diseño (DRC) - Extracción de parásitos - Realización del LVS - Realización de una simulación post-layout

Upload: vukhuong

Post on 23-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Tutorial básico de layout con Cadence

José Juan Martínez Rodríguez

Instituto de Microelectrónica de Sevilla

CENTRO NACIONAL DE MICROELECTRÓNICA - C.S.I.C.

Versión 1.0 - abril de 2003 Este documento trata de constituir una guía de iniciación a la realización de layouts en el entorno Cadence. Se presentan en él todos los pasos necesarios para una correcta realización de un layout así como las distintas herramientas de verificación del diseño de las que dispone el entorno. En concreto se escribió basándonos en el kit 3.40 de AMS, aunque en principio es válido para cualquier otro kit con las particularidades que pueda presentar cada uno y que se irán comentando conforme aparezcan. Consta de nueve grandes apartados: - Inicialización y arranque del entorno - Creación de una vista layout - Colocación de transistores - Creación de capas - Creación de contactos - Chequeo de las reglas de diseño (DRC) - Extracción de parásitos - Realización del LVS - Realización de una simulación post- layout

Page 2: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 1

1 - Inicialización y arranque del entorno En primer lugar inicializamos y arrancamos el entorno (si es que no lo teníamos inicializado y arrancado ya) tal y como se indica en el tutorial básico de introducción a Cadence que debemos de haber completado antes de iniciar este tutorial. Si hemos completado dicho tutorial tendremos una librería creada por nosotros en la cual debemos tener dos celdas una para el inversor y otra para el circuito de test del mismo. En la celda del inversor tendremos dos vistas para este, una de símbolo y otra de esquemático. Pues bien, en este tutorial vamos a crear una tercera vista del inversor, la vista de layout, que será el diseño físico del layout del mismo. 2 - Creación de la vista de layout para el inversor Para crear la vista de layout de nuestro inversor nos situamos sobre la ventana de librerías y seleccionamos la librería donde tengamos creado el inversor del tutorial anterior y la celda correspondiente al mismo. Seleccionamos entonces la opción File -> New -> Cell View y escogemos en este caso la herramienta Virtuoso, con lo que automáticamente nos aparecerá como vista “layout”.

Figura 1: Ventana Create New File Si pulsamos OK nos aparecerán dos ventanas nuevas, una la ventana de selección de capas (LSW del inglés Layer Selection Window), y otra la ventana de edición de layouts (Virtuoso Layout Editing). Ambas ventanas se muestran a continuación:

Page 3: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 2

Figura 3: Ventana de edición de layouts

Page 4: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 3

Figura 4: Ventana de selección de capas

En la ventana de edición de layouts realizaremos el diseño físico de nuestro layout, seleccionando las capas que queramos dibujar en la ventana de selección de capas. 3 - Colocación de transistores Vamos a ver seguidamente cómo colocar transistores de librería en nuestro layout. Podríamos dibujar a mano capa por capa cada transistor, pero resultaría un

Page 5: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 4

trabajo inabordable en circuitos complejos con muchos transistores y por otro lado inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de librería en nuestro diseño basta con seleccionar la opción Create -> Instance en la ventana de edición de layouts, o pulsar el botón Instance a la izquierda de la ventana o la tecla de método abreviado “i”. Si lo hacemos veremos que nos aparece la ventana de creación de instancias:

Figura 5: Ventana de creación de instancias Pues bien, no tendremos más que seleccionar en ella la instancia que queramos colocar y situarla donde nos parezca. En nuestro caso seleccionamos la vista layout del transistor pmos4 de la librería PRIMLIB y lo colocamos de la misma manera que colocábamos componentes en el anterior tutorial (no tenemos más que desplazarnos a la ventana de edición de layouts y hacer clic donde queramos situarlo). En la siguiente figura se muestra la celda correspondiente de un transistor pmos4 ya colocado:

Page 6: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 5

Figura 6: Celda correspondiente al transistor pmos4

Si queremos ver las capas que constituyen nuestro transistor no tendríamos más que pulsar “shift + F” para verlas. Se vería lo siguiente:

Page 7: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 6

Figura 7: Capas que constituyen el transistor pmos4

Y para volver a la situación anterior pulsaríamos “ctrl + F”. Aunque para la realización del layout necesitemos ver las capas, en algunas ocasiones resulta clarificador poder ver sólo las celdas que tengamos, por lo que es útil conocer las combinaciones de teclas anteriores. A continuación vamos a colocar el transistor nmos4 un poco más abajo del pmos4. Repetimos el proceso anterior seleccionando en este caso la celda nmos4 de la misma librería PRIMLIB, y la colocamos tal y como indica la figura 9.

Page 8: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 7

Figura 8: Celdas pmos4 y nmos4

Vamos a ver ahora algunas opciones de gran utilidad práctica. Si nos hemos fijado bien, cuando hemos colocado los transistores podíamos mover libremente estos por la pantalla, pero el “paso” del movimiento era finito, no continuo. Este se debe a la rejilla que por defecto impone Cadence y que si bien es de gran utilidad en la inmensa mayoría de los diseños porque facilita enormemente la colocación ordenada de capas y celdas, puede llegar a resultar molesta en algunos casos concretos. Pues bien, todas las opciones de la misma las tenemos disponibles en la opción Options -> Display, junto con otras muchas opciones de visualización. En concreto, para la rejilla tenemos las siguientes opciones dentro del campo Grid Controls (controles de rejilla): Type: none, dots, lines. Es el tipo de visualización que queremos para nuestra rejilla. none -> ninguna :aparece todo el fondo de la pantalla en negro, sin indicación alguna de la rejilla, aunque esta sigue existiendo, dots -> puntos: es la opción por defecto y nos muestra la rejilla en forma de puntos), y lines -> líneas: nos muestra la rejilla en forma de líneas, lo cual hace que veamos una cuadrícula en la pantalla que en algunas ocasiones puede resultar de utilidad. Minor Spacing: Es la distancia más pequeña que se visualiza de la rejilla. Es decir, en la opción de puntos por ejemplo, la distancia más pequeña entre puntos (por defecto esta distancia es de una micra). Si tenemos la rejilla desactivada no la veremos, y en algunos casos, si esta distancia se establece demasiado pequeña sólo la veremos con un zoom muy cercano.

Page 9: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 8

Figura 9: Ventana Display Options Major Spacing: Es la distancia más grande que se visualiza de la rejilla. Es decir, en la opción de puntos por ejemplo, la distancia más grande entre puntos (por defecto esta distancia es de una micra). Si tenemos la rejilla desactivada no la veremos, y en algunos casos, si esta distancia se establece demasiado grande sólo la veremos con un zoom muy alejado. En el caso de que el zoom que tengamos nos permita visualizar ambas distancias veremos la distancia menor con puntos normales y la distancia mayor con puntos más brillantes. X Snap Spacing: Es el paso del movimiento en el eje X. Si queremos una mayor continuidad del movimiento en este eje establecemos un valor más bajo, y si es al contrario pues un valor más alto. Y Snap Spacing: Es el paso del movimiento en el eje Y. Si queremos una mayor continuidad del movimiento en este eje establecemos un valor más bajo, y si es al contrario pues un valor más alto. Vamos a fijarnos ahora en las opciones de movimiento que tenemos. Supongamos que quisiéramos cambiar la colocación del transistor pmos4 por ejemplo. Pues bien, para moverlo usaríamos el comando “move” (opción Edit -> Move en el menú, botón Move a la izquierda de la ventana, o tecla de método abreviado “m”). Si seleccionamos este comando y hacemos clic con el botón izquierdo del ratón sobre el transistor pmos4 observaremos que este queda marcado. Si ahora movemos el ratón

Page 10: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 9

veremos como podemos desplazar el transistor pmos4, pero nos daremos cuenta de que solo podemos hacerlo horizontal y verticalmente. Esto que puede resultar de gran utilidad en muchos casos ahora resulta un engorro, por lo que vamos a ver cómo podemos modificar esto. Si mientras tenemos marcado el transistor con el comando “move” hacemos doble clic con el botón central del ratón accederemos a la siguiente ventana:

Figura 10: Ventana Move En ella podemos ver la opción Snap Mode, la cual por defecto está establecida a “orthogonal”. Pues bien, si la desplegamos (pulsando sobre el rectángulo gris que resalta a la derecha) veremos que tenemos disponibles las siguientes opciones: anyAngle: Es la opción más liberal, nos permite mover el objeto seleccionado en cualquier dirección. diagonal: Nos permite mover el objeto en direcciones ortogonales y diagonales. orthogonal: Nos permite mover el objeto sólo en las direcciones ortogonales (horizontal y vertical). horizontal: Tan sólo nos permite mover el objeto en la dirección horizontal. vertical: Tan sólo nos permite mover el objeto en la dirección vertical. Seleccionamos la opción anyAngle y movemos a nuestro antojo el transistor pmos4, y luego lo volvemos a colocar en el lugar inicial. 4 - Creación de capas Seguidamente pasaríamos a dibujar a mano las capas de metal necesarias para interconectar ambos transistores. Para dibujar un rectángulo de una capa cualquiera basta con seleccionar la capa en cuestión en la ventana de selección de capas y utilizar la opción Create -> Rectangle en la ventana de edición de layouts (o el botón Rectangle a la izquierda de la misma o la tecla de método abreviado “r”). Si seleccionamos por ejemplo la capa MET1 dg y en la ventana de edición de esquemáticos pulsamos “r” veremos como podemos dibujar un rectángulo de metal 1 sin más que hacer clic en el punto donde queramos tener una de sus esquinas y desplazando el ratón sin soltar el botón hasta el punto que queramos que sea la esquina opuesta, soltando el botón del mismo cuando nuestro rectángulo tenga la forma deseada.

Page 11: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 10

Pues bien, para interconectar los transistores pulsamos “shift + F” para visualizar sus capas y a continuación dibujamos rectángulos de metal 1 (dg) y poly 1 (dg) hasta completar el esquema de la figura 11.

Figura 11: Transistores pmos4 y nmos 4 ya interconectados A continuación vamos a ver una serie de comandos interesantes que nos pueden facilitar la realización de este esquema (si no conseguimos dibujar a la primera este esquema no hay que preocuparse, es normal, con las opciones por defecto del entorno puede llegar a resultar imposible dibujar algunos rectángulos tal y como aparecen en la figura). El primero de ellos es el comando “stretch”. Dicho comando lo tenemos disponible en la opción de menú Edit -> Stretch, en el botón Stretch correspondiente a la izquierda de la ventana, o en el método abreviado de teclado “s”. Pues bien, dicho comando resulta de suma utilidad, y es de los que más se usan (si no el que más) a la hora de realizar layouts. El comando en sí nos permite alargar o acortar cualquier tira (rectángulo), de metal o de la capa que sea, seleccionando uno de sus lados mediante un clic con el botón izquierdo del ratón y desplazando este hasta conseguir la anchura o altura deseada. Una vez alcanzada esta volvemos a hacer clic con el ratón para dejarla establecida. Esta acción es especialmente útil a la hora de rellenar el máximo espacio posible con metal o para conseguir capas que cumplan todas las reglas de diseño en cuanto a anchuras y distancias mínimas. Más adelante vamos a ver un ejemplo de su uso, pero antes vamos a estudiar otras opciones interesantes. En la opción Options -> Layout Editor (tecla de método abreviado “E”) nos aparece la siguiente ventana:

Page 12: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 11

Figura 12: Ventana Layout Editor Options En ella podemos ver un campo que se denomina Gravity Controls (controles de gravedad) dentro del cual tenemos varias opciones. Esta “gravedad” que aplicada en este contexto nos puede resultar un tanto extraña no es más que una especie de “fuerza” que “atrae” a los objetos que dibujemos, esto es, que puede darse el caso de que tengamos un objeto que vayamos a situar en un cierto punto y a la hora de hacer clic con el ratón y establecerlo en ese punto el programa nos lo sitúe más pegado (o justo al lado) de algún otro objeto que tengamos cerca debido a esta “fuerza”. Esto puede resultar incómodo en muchas ocasiones por lo que bastaría con deshabilitarlo (por defecto nos aparece habilitada la opción correspondiente “Gravity On”). Pero hay que señalar que si se sabe utilizar correctamente con todas sus opciones puede sernos de gran ayuda en algunos casos, por lo que vamos a ver con un poco más de detalle las diferentes opciones que presenta: Gravity On: Es la opción que habilita o deshabilita esta gravedad. Types: all -> seleccionamos todos los tipos de gravedad. none -> no seleccionamos ningún tipo de gravedad. centerline -> gravedad para el centro de los “paths”. Atrae el cursor hacia la línea central de los “paths” que tengamos dibujados. edge -> gravedad para los extremos de las tiras. Atrae el cursor hacia los extremos de las tiras que tengamos dibujadas. midpoint -> gravedad para el punto medio de los extremos de las tiras. Atrae el cursor hacia los puntos medios de los extremos de las tiras.

Page 13: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 12

vertex -> gravedad para los vértices de las tiras. Atrae el cursor hacia los vértices de las tiras. end -> gravedad para los extremos de los “paths”. Atrae el cursor hacia los extremos de la línea central de los “paths”. nexus -> gravedad para los nexos junction -> gravedad para las uniones. pin -> gravedad para los pines. Aperture: Distancia a partir de la cual se aplica el efecto de la gravedad. Depth: No comprobado. Bounce X: No comprobado. Bounce Y: No comprobado. A continuación vamos a hacer uso del comando “stretch” visto anteriormente para modificar dos tiras de forma que nos quede nuestro layout tal y como se muestra en la siguiente figura. Para ello desactivaremos previamente todos los controles de gravedad para trabajar con más comodidad.

Figura 13: Layout modificado de nuestro inversor Como puede apreciarse, las dos tiras son las tiras de metal 1 y poly 1 situadas más a la izquierda, y lo que hacemos es ensanchar la tira de poly 1 y alargar la de metal 1. Para

Page 14: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 13

ello no tenemos más que activar el comando “stretch”, situarnos en el extremo derecho de la tira de poly 1, hacer clic con el botón izquierdo del ratón y desplazarlo hasta alcanzar la anchura deseada. Repetimos el proceso con el extremo derecho de la tira de metal 1 hasta hacerla coincidir con el de la tira de poly 1 y ya tendríamos lo que se quería. Con esto nos hemos familiarizado con las opciones más importantes a la hora de dibujar y modificar capas y estamos ya en disposición de pasar al apartado siguiente de este tutorial. 5 - Creación de contactos Vamos a ver en este apartado cómo colocar los contactos necesarios entre las distintas capas. En nuestro caso tan sólo necesitamos un contacto (junto con los contactos a sustrato que veremos más adelante), ya que las únicas capas superpuestas que necesitamos contactar son las capas de poly 1 y metal 1 que constituyen la entrada de nuestro inversor (situadas a la izquierda del mismo). Si no colocásemos el contacto correspondiente tendríamos únicamente dos capas distintas superpuestas sin ningún contacto eléctrico, por lo que nuestro inversor no funcionaría correctamente. Para la creación de contactos usamos la opción Create -> Contact (o pulsamos la tecla de método abreviado “o”). Si la seleccionamos veremos la siguiente ventana:

Figura 14: Ventana Create Contact En ella vemos todas las opciones de creación de contactos, el tipo (Contact Type), la justificación, la anchura y la altura, y las filas y columnas que deseamos que ocupe. Nosotros, para nuestro contacto escogemos las opciones que se muestran en la figura 14. El tipo de contacto P1_C es el tipo que necesitamos (poly 1 - metal 1). Si una vez que hemos seleccionado estas opciones nos desplazamos a la ventana de edición de layouts veremos como nos aparece el contacto que acabamos de seleccionar y podremos situarlo donde nos parezca haciendo clic con el botón izquierdo de nuestro ratón. Lo situaremos donde nos indica la figura 15.

Page 15: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 14

Figura 15: Contacto entre poly 1 y metal 1 ya colocado en nuestro layout Una vez dibujado el contacto anterior pasamos a continuación a colocar los contactos a sustrato. Los contactos a sustrato en una oblea tipo P como la que estamos usando sólo requieren de un pozo N en el transistor PMOS para un contacto correcto, pero como ya tenemos dicho pozo en nuestro transistor de librería simplemente colocamos el contacto dentro de él, y para el transistor NMOS, al ser la oblea tipo P no necesitaremos pozo alguno, por lo que colocamos directamente el contacto a sustrato en el lugar adecuado. Para el transistor PMOS el contacto irá a alimentación (VDD), y para el transistor NMOS el contacto irá a tierra (GND). La opción de contacto a sustrato la tenemos dentro de la ventana de creación de contactos vista anteriormente (ventana Create Contact en la figura 14) en la opción Contact Type. Dentro de dicha opción tenemos los tipos de contactos disponibles, entre ellos ND_C y PD_C, que son los contactos a sustrato para los transistores P y N respectivamente. Así pues, para crearlos seleccionaremos la opción correspondiente y los dibujaremos donde corresponda. Escogeremos las opciones siguientes para estos contactos y los colocaremos tal y como indica la figura 17.

Page 16: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 15

Figura 16: Ventana Create Contact. Contactos a sustrato

Figura 17: Layout del inversor con los contactos de sustrato Con esto daríamos por finalizada ya la etapa de diseño de nuestro layout y pasaríamos a la etapa de verificación en la cual comprobaremos si nuestro layout cumple las reglas de diseño correspondientes o por el contrario presenta alguna incompatibilidad con las mismas que tengamos que corregir en una fase posterior de post-diseño (una vez conocidos y analizados los errores que se presenten).

Page 17: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 16

6 - Chequeo de las reglas de diseño (DRC) Para chequear si nuestro layout cumple las reglas de diseño seleccionaremos las opciones de verificación, más concretamente, la opción Verify -> DRC nos abrirá la ventana de opciones del DRC:

Figura 18: Ventana DRC Dentro de esta ventana las opciones más interesantes son Switch Names y Rules File, en la primera se establecen las opciones que no queremos chequear y en la segunda se establece el fichero de reglas que vamos a usar. Las opciones que podemos seleccionar como no chequeables dependerán de la tecnología y en particular, para nuestro kit de AMS serán las siguientes:

Page 18: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 17

Figura 19: Ventana Set Switches Pues bien, para realizar nuestro primer chequeo de las reglas de diseño seleccionaremos las opciones (switches) siguientes: no_FIMP no_antenna no_coverage no_erc no_metal_slots no_pads No hace falta que las señalemos una a una, podemos seleccionar la primera y hacer clic en la última mientras se mantiene pulsada la tecla “shift” y seleccionaremos todas a la vez. Una vez seleccionadas las seis pulsamos OK y nos aparecerán en la ventana de DRC en el campo Switch Names. Si ahora pulsamos OK en esta ventana de DRC el programa empezará a realizar el “DRC” de nuestro layout. Si lo hacemos veremos como una vez completado dicho chequeo obtenemos los siguientes errores:

Page 19: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 18

Figura 20: Errores de nuestro layout Si queremos obtener una descripción más detallada de los errores reportados nos vamos a la ventana de comandos y veremos lo siguiente:

Figura 21: Descripción de los errores obtenidos Como podemos ver tenemos 46 errores, pero esta enorme cantidad de errores no debe preocuparnos en exceso. En efecto, si leemos con atención veremos que el origen de nuestros errores está en los contactos, más concretamente en que hemos modificado el tamaño de estos y hemos colocado los contactos de sustrato para el transistor PMOS dentro del pozo N, lo cual no está permitido (aunque anteriormente se indicó que los colocáramos en ese lugar, pero ello se hizo con fines instructivos, para familiarizarnos con los errores que en un primer DRC es muy común que tengamos).

Page 20: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 19

Pues bien, vamos a ver a continuación algunos comandos de utilidad a la hora de depurar estos errores. El primero de ellos es el comando Verify -> Markers -> Explain, cuya selección nos permite ver la explicación detallada del origen de cada marca de error simplemente haciendo clic sobre ella. Por ejemplo, si seleccionamos esta opción y hacemos clic sobre la marca de error que tenemos en el contacto entre poly 1 y metal 1 veremos la siguiente ventana:

Figura 22: Ventana marker text En ella nos aparece la explicación del origen del error, en este caso que el tamaño del contacto está prefijado y ha de ser de 0.4 micras.

Otra opción interesante es Verify -> Markers -> Find. Si la seleccionamos nos aparecerá la siguiente ventana:

Figura 23: Ventana Find Marker En esta ventana podremos seleccionar si queremos que al buscar marcas nos haga un zoom hacia ellas (Zoom To Markers), si queremos que nos busque warnings y errores o solo errores (Severity), dónde queremos buscar (Search Scope), etc... Simplemente pulsamos Apply y luego Next para ir viendo de forma sucesiva las explicaciones de los errores que tengamos. Por último comentar las opciones Verify -> Markers -> Delete y Delete All las cuales nos permiten borrar las marcas de error, la primera una a una y la segunda todas a la vez. Esto es útil porque resulta muy incómodo corregir el layout para ajustarnos a las reglas de diseño con estas marcas activas. Seguidamente vamos a proceder a la correción de nuestro layout para cumplir las reglas de diseño y eliminar los errores que nos han aparecido en el DRC. Lo primero

Page 21: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 20

que hacemos es borrar todos los contactos que creamos anteriormente, con lo que volveríamos a tener el layout de la figura 13. A continuación volvemos a crear todos los contactos pero en este caso respetando las opciones de tamaño que por defecto nos da el programa. Los colocamos tal y como indica la figura 24.

Figura 24: Layout con los contactos correctos Previamente habremos tenido que hacer un “stretch” de las pistas de VDD y GND para alargarlas un poco hacia la izquierda tal y como se muestra en la figura. Hemos creado también un rectángulo de pozo N (capa NTUB dg de la ventana LSW) justo al lado del correspondiente pozo N del transistor PMOS para colocar dentro de él el contacto a sustrato correspondiente (ND_C) sin violar la regla de proximidad de una difusión con otra. A continuación procedemos a repetir el DRC seleccionando en este caso únicamente la opción “no_FIMP”. Ahora no obtendremos ningún error, por lo que el problema se reducía a los contactos, tal y como ya indicábamos anteriormente. La opción “no_FIMP” la ponemos porque aún no hemos generado la máscara opuesta al pozo N que requiere esta tecnología. Efectivamente, esta máscara es característica de esta tecnología y a continuación se verá cómo generarla. Se trata simplemente de una implantación de flúor (Fluor IMPlantation) con la que finalizaría el proceso de layout. Para generarla seleccionamos de nuevo la opción Verify -> DRC y dentro del campo Switch Names ponemos “generate_FIMP” seleccionando dicha

Page 22: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 21

opción con Set Switches. Si ahora corremos de nuevo el DRC obtendríamos lo siguiente:

Figura 25: Layout con la capa FIMP ya generada Como se puede ver el programa nos indica que la capa FIMP ha sido generada mediante el cambio de color del pozo N, que ahora se señala en color naranja, así como con la unión de los pozos anteriores en un único pozo N. Por último, para finalizar con este apartado, corremos el DRC sin ninguna restricción (switch) para comprobar que no tenemos ningún fallo. Efectivamente, si lo hacemos veremos como tenemos 0 errores encontrados, por lo que podemos estar tranquilos y pasar al apartado siguiente. 7 - Extracción de parásitos Vamos a ver en este apartado como realizar el “extraído” (extracted) a nuestro layout, necesario para la posterior realización del LVS (layout versus schematic) y también para posteriores simulaciones post-layout. Para obtener el extraído seleccionamos la opción Verify -> Extract en la ventana de edición de layouts. Nos aparecerá la siguiente ventana:

Page 23: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 22

Figura 25: Ventana Extractor En ella podemos ver que también tenemos un campo donde añadir restricciones, que en este caso serán las siguientes:

Figura 26: Ventana Set Switches para el extractor En nuestro ejemplo vamos a seleccionar la opción “capall” con la intención de extraer las capacidades parásitas para luego realizar una simulación post- layout incluyendo estos parásitos, ya que lo que realmente simularemos luego será este extraído que hagamos aquí. Si ahora pulsamos OK en la ventana Extractor veremos cómo el programa comienza a generarnos el extraído. Una vez concluya el proceso podremos ver el extraído si abrimos la vista “extracted” de nuestro inversor que acaba de generar la herramienta. Si lo hacemos veremos lo siguiente:

Page 24: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 23

Figura 26: Vista “extracted” de nuestro inversor Y si pulsamos “shift + F” veremos los parásitos que nos ha introducido el programa en la vista:

Page 25: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 24

Figura 27: Parásitos del extraído Con esto daríamos por concluido el apartado y estaríamos en disposición de pasar al apartado siguiente, donde realizaremos la verificación “layout frente a esquemático” (layout versus schematic). 8 - Realización del LVS En este apartado vamos a realizar el chequeo que se denomina layout frente a esquemático, en el cual se comprueba que el layout realizado represente exactamente al esquemático original. Normalmente se trata de la comprobación más importante a realizar, y será la que nos dé más quebraderos de cabeza a la hora de corregir errores, ya que incluso en diseños pequeños se requiere de una cierta experiencia para localizar y corregir los errores que se produzcan. En nuestro caso la extrema simplicidad del diseño hace este proceso evidente, ya que a simple vista se puede apreciar que layout y esquemático van a concordar, pero esto en general nunca será así por lo que es importante conocer algunas herramientas que nos pueden facilitar la depuración tales como Cross Probing, que se verá más adelante. Antes de empezar tenemos que indicar que en este proceso va a intervenir el esquemático del inversor que hicimos en el tutorial básico de introducción a Cadence. Dicho esquemático lo vamos a retocar ligeramente ahora, y ya explicaremos por qué. De momento abrimos dicho esquemático (en la ventana Library Manager seleccionamos la librería correspondiente a nuestro inversor, la celda correspondiente, y hacemos doble

Page 26: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 25

clic con el botón izquierdo del ratón sobre la vista schematic del mismo) y lo modificamos de la siguiente manera:

Figura 28: Esquemático para LVS Como vemos, lo único que hemos hecho es sustituir la fuente de tensión por el elemento vdd (alimentación), ya que los layouts nunca incluyen fuentes por lo que si comparamos un esquemático con fuentes con un layout probablemente nos salgan errores. Esta es la justificación para esta ligera modificación de nuestro esquemático. Lo que hacemos es guardar este esquemático con un nombre diferente mediante la opción Save As:

Figura 29: Ventana Save As Una vez que pulsemos OK ya tendremos guardado el esquemático y podremos salirnos de esta ventana de edición de esquemáticos. Para ello seleccionamos Window -> Close y nos aparecerá la siguiente ventana:

Page 27: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 26

Figura 30: Ventana Save Changes En ella se nos pregunta si queremos salvar los cambios, a lo cual hemos de responder que NO porque ya hemos guardado anteriormente los cambios pero con otro nombre, (schematic_LVS), por lo que si aquí decimos que sí nos guarde los cambios machacaríamos la anterior vista schematic y tendríamos dos veces la misma vista schematic_LVS pero con diferentes nombres. Así pues, pulsamos No y ya se cerraría la ventana. A continuación vamos a abrir la vista layout (si es que no la teníamos abierta ya) y vamos a añadir en ella los pines correspondientes a la entrada y a la salida del inversor para que al realizar el LVS el programa reconozca esos terminales y los compare con los correspondientes terminales del esquemático del inversor. Para ello seleccionamos la opción Create -> Pin dentro de la ventana de edición de layouts de nuestra vista layout. Aparecerá la siguiente ventana:

Figura 31: Ventana Create Symbolic Pin Pues bien, en esta ventana seleccionamos las opciones que se muestran y nos situamos en la ventana de edición de layouts para colocar el pin en el lugar correspondiente a la entrada del inversor. Una vez colocado el pin y su nombre correspondiente hacemos lo

Page 28: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 27

mismo para el de salida (OUT) seleccionando en este caso la opción “output” para el tipo de pin (I/O Type). Ha de quedarnos nuestra vista layout tal y como se muestra a continuación:

Figura 32: Vista layout con los pines añadidos

Se pueden ver en esta figura los pines que acabamos de añadir en la entrada y la salida de nuestro inversor con sus nombres correspondientes. Pues bien, ahora salvamos esta nueva vista layout y realizamos de nuevo el extraído tal y como lo hicimos en el apartado anterior. En este momento ya estamos en condiciones de proceder con la realización del LVS. Para ello abrimos las vistas schematic y extracted de nuestro inversor en la ventana Library Manager y en la ventana de edición de layouts seleccionamos la opción Verify -> LVS, la cual nos presenta la siguiente ventana:

Page 29: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 28

Figura 33: Ventana LVS En ella tenemos que tener las vistas schematic y extracted de nuestro inversor que queremos comparar en el LVS. Si no nos aparecieran por defecto las vistas correspondientes las seleccionaríamos haciendo uso de las opciones Browse que aparecen debajo de los campos schematic y extracted. Una vez que tengamos todas las opciones seleccionadas tal y como se muestran en la figura estaríamos ya en disposición de correr el LVS, para ello no tenemos más que pulsar el botón Run que aparece en la parte inferior izquierda de esta ventana. Una vez hecho esto el programa arrancará el LVS, y mientras lo corre podemos obtener información del estado del proceso pulsando el botón Info que aparece en esta misma ventana en la parte inferior derecha. Si lo hacemos veremos la siguiente ventana (figura 34), en la cual tenemos el botón Log File en la opción Run Info, el cual hemos de pulsar si queremos obtener la información del proceso y los resultados del mismo, los cuales se muestran en la figura 35 para nuestro caso.

Page 30: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 29

Figura 34: Ventana Display Run Information

Figura 35: Ventana de resultados del LVS Como se puede ver en la figura 35 nuestro LVS ha concluido de manera satisfactoria, esto es, la comparación ha resultado favorable. Esto nos lo indica el mensaje “The net-lists match”, que quiere decir que los netlists de esquemático y layout concuerdan. Ahora bien, ¿qué hubiera pasado si esto no hubiera sido así?, es decir, ¿de qué herramientas disponemos para visualizar los errores?, pues bien, lo primero sería comprobar dónde se producen dichos errores y visualizarlos por separado cada tipo de error. Para ello utilizamos la opción Error Display pulsando el botón correspondiente en

Page 31: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 30

la ventana de LVS. Nos aparecería la siguiente ventana en la cual podríamos elegir los tipos de errores que queremos visualizar y en qué colores queremos que se nos muestren. En nuestro caso, al no tener errores no podemos probarlo.

Figura 36: Ventana LVS Error Display Otra herramietnta de la que disponemos para depurar los errores que surjan es la herramienta Cross Probing, que ya mencionamos al principio del apartado. Para abrirla seleccionamos Verify -> Probe en la ventana de edición de layouts de nuestra vista extracted. Nos aparecerá la siguiente ventana:

Figura 37: Ventana Probing En ella seleccionaríamos, por ejemplo, cross probe matched y pulsaríamos Add Net. Así, podríamos señalar una pista en el layout y veríamos en el esquemático con qué pista se corresponde. Lo mismo se puede hacer con los dispositivos (Add Dev). Esta herramienta es muy útil, pero requiere de un LVS que hayamos corrido previamente para poder usarla. Con esto damos por concluido este apartado dedicado a la realización de la verificación LVS. A continuación vamos a ver, si todo ha resultado satisfactorio hasta este punto, los resultados que se obtienen si ahora realizamos una simulación post-layout de nuestro inversor.

Page 32: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 31

9 - Simulación post-layout Para realizar la simulación post- layout de nuestro inversor necesitamos crear primero la vista analog_extracted del mismo. Para ello simplemente abrimos la vista extracted de nuestro inversor (si es que no la teníamos abierta ya) y en la ventana LVS seleccionamos la opción Build Analog pulsando el botón correspondiente. (Si ya hubiésemos cerrado anteriormente la ventana LVS simplemente volvemos a abrirla seleccionando Verify -> LVS, pero no tenemos que preocuparnos, no hemos de correr el LVS de nuevo). Nos aparecerá la siguiente ventana:

Figura 38: Ventana Build Analog Extracted View En ella decimos que nos incluya todo los parásitos (opción Include All) y pulsamos OK. Cuando lo hagamos se nos generará la vista analog_extracted de nuestro inversor, que será la vista que se utilizará para la simulación post- layout. Para llevar a cabo esta simulación tenemos que abrir el esquemático de test que se hizo en el tutorial básico de introducción a Cadence para simular nuestro inversor y que se muestra a continuación:

Figura 39: Esquemático de test para nuestro inversor

Page 33: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 32

En este esquemático seleccionaremos Tools -> Analog Environment para ver la ventana principal de la herramienta de simulación Affirma Analog:

Figura 40: Ventana principal de la herramienta de simulación En ella lo primero que hacemos es cambiar de simulador. Para ello escogemos Setup -> Simulator/Directory/Host y nos aparecerá la siguiente ventana:

Figura 41: Ventana de selección de simulador, directorio, y host En ella seleccionaremos el simulador spectreS pulsando el botón correspondiente en la opción Simulator. Una vez hecho esto seleccionaremos en la ventana principal de Affirma la opción Setup -> Environment y la ventana que nos aparece la modificaremos para que quede como la que se muestra a continuación:

Page 34: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 33

Figura 42: Ventana Environment Options Una vez modificada pulsamos OK y pasamos a seleccionar el tipo de análisis que queremos realizar, en nuestro caso será un análisis transitorio de 12 ns tal y como hicimos en el tutorial de introducción. Seleccionamos las mismas opciones que seleccionamos entonces y señalamos en el esquemático las señales que queremos dibujar en nuestra simulación (la entrada y la salida del inversor). A continuación correríamos la simulación (Simulation -> Run) y veríamos los resultados obtenidos:

Page 35: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 34

Figura 43: Resultados de la simulación post-layout Se obtienen los resultados de la figura 43, los cuales evidentemente están mal, ya que por muchos parásitos que introduzca nuestro layout jamás van a ser suficientes como para obtener estos resultados tan alejados de los que se obtuvieron en la simulación pre-layout. El origen de esta discrepancia la encontramos en el cambio que introdujimos a nuestro esquemático cuando comenzamos el apartado dedicado a la realización del LVS. En ese momento cambiamos la fuente de tensión de 5 V que alimentaba a nuestro inversor por un elemento denominado vdd al que en ningún momento le hemos indicado si la tensión de alimentación es de 3.3 V o 5 V (que además es propio de los diseños digitales en los cuales al diseñar puertas lógicas no queremos estar continuamente poniendo la alimentación manualmente mediante una fuente), de ahí la discrepancia que obtenemos en la simulación post- layout con respecto a la simulación pre- layout que se hizo en el tutorial básico de introducción a Cadence. Para obtener los resultados correctos simplemente hemos de modificar en nuestra librería las vistas schematic, symbol, y layout, de la forma que se indica en las siguientes figuras:

Page 36: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 35

Figura 44: Esquemático correcto para nuestro inversor

Page 37: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 36

Figura 45: Símbolo correcto para nuestro inversor

Page 38: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 37

Figura 46: Layout correcto para nuestro inversor Una vez hechos estos cambios simplemente procedemos a repetir los pasos que hemos presentado en este tutorial desde el apartado 6, es decir, volveríamos a hacer el DRC a nuestro layout (directamente sin ningún switch), el extraído (nuevamente con el switch capall), y en la vista extracted generada repetiríamos el LVS para las vistas schematic y extracted que tenemos ahora. Una vez concluido el LVS generaríamos la vista analog_extracted tal y como hicimos antes y con esto nos iríamos al esquemático de test para nuestro inversor, que ahora tendríamos que poner de la siguiente forma:

Page 39: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 38

Figura 47: Nuevo esquemático de test para nuestro inversor Una vez hecho esto volveríamos a arrancar la herramienta de simulación y repetiríamos los pasos dados anteriormente para realizar la nueva simulación, pudiendo comprobar como obtenemos ahora los resultados correctos para nuestra simulación post- layout:

Page 40: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 39

Figura 48: Resultados correctos para la simulación post-layout Así pues, como hemos visto, hemos de tener especial cuidado a la hora de seguir los distintos pasos del flujo de diseño, sobre todo si cambiamos algo en alguna vista durante este proceso de diseño porque estos cambios pueden afectar a todo el proceso. Esperamos que este tutorial haya servido para familiarizarse con todos los pasos del flujo de diseño analógico presentado y pedimos comprensión para los errores que hemos introducido aposta, pero nuestra experiencia nos indica que la mejor forma de aprender algo es “equivocándose”, por lo que aunque este tutorial podría seguirse introduciendo directamente todos los diseños de forma correcta es conveniente seguirlo incluyendo los errores para tomar conciencia de los problemas que podemos encontrarnos a la hora de abordar diseños más complejos.

Page 41: Tutorial básico de layout con Cad ence - imse-cnm.csic.es · inútil, ya que los transistores de librería nos simplifican esta tarea. Para insertar el layout de un transistor de

Centro Nacional de Microelectrónica Área de CAD

Instituto de Microelectrónica de Sevilla 40

10 - Sumario En este tutorial de introducción a la realización de layouts con Cadence se han tratado los siguientes puntos:

- Inicialización y arranque del entorno. - Creación de una vista layout. - Colocación de transistores. - Creación de capas. - Creación de contactos. - Realización de un DRC. - Realización del extraído. - Realización del LVS. - Realización de una simulación post-layout.

Una vez completado el mismo estaremos capacitados para abordar proyectos

más complejos de diseño de circuitos integrados con este potente entorno de desarrollo microelectrónico. 11 - Referencias [1] Cadence Design Systems, Inc., 1999. [2] N. H. E. Weste and K. Eshraghian, Principles of CMOS VLSI Design: A System Perspective, Addison-Wesley, 2nd edition, 1993. [3] http://www.cadence.com [4] http://www.austriamicrosystems.com [5] http://asic.austriamicrosystems.com