Академический Документы
Профессиональный Документы
Культура Документы
- Colocacin de transistores
- Creacin de capas
- Creacin de contactos
- Extraccin de parsitos
Si hemos completado dicho tutorial tendremos una librera 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 smbolo y
otra de esquemtico. Pues bien, en este tutorial vamos a crear una tercera vista del
inversor, la vista de layout, que ser el diseo fsico del layout del mismo.
Para crear la vista de layout de nuestro inversor nos situamos sobre la ventana de
libreras y seleccionamos la librera donde tengamos creado el inversor del tutorial
anterior y la celda correspondiente al mismo. Seleccionamos entonces la opcin File - >
New - > Cell View y escogemos en este caso la herramienta Virtuoso, con lo que
automticamente nos aparecer como vista layout.
3 - Colocacin de transistores
trabajo inabordable en circuitos complejos con muchos transistores y por otro lado
intil, ya que los transistores de librera nos simplifican esta tarea.
Pues bien, no tendremos ms 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 librera PRIMLIB y lo colocamos de la misma manera que
colocbamos componentes en el anterior tutorial (no tenemos ms que desplazarnos a la
ventana de edicin de layouts y hacer clic donde queramos situarlo). En la siguiente
figura se muestra la celda correspondiente de un transistor pmos4 ya colocado:
Vamos a ver ahora algunas opciones de gran utilidad prctica. Si nos hemos
fijado bien, cuando hemos colocado los transistores podamos 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
mayora de los diseos porque facilita enormemente la colocacin 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 opcin Options - > Display, junto
con otras muchas opciones de visualizacin. 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 visualizacin que queremos para nuestra rejilla.
none - > ninguna :aparece todo el fondo de la pantalla en negro, sin indicacin alguna de
la rejilla, aunque esta sigue existiendo, dots - > puntos: es la opcin por defecto y nos
muestra la rejilla en forma de puntos), y lines - > lneas: nos muestra la rejilla en forma
de lneas, lo cual hace que veamos una cuadrcula en la pantalla que en algunas
ocasiones puede resultar de utilidad.
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 ms
brillantes.
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 cmo
podemos modificar esto. Si mientras tenemos marcado el transistor con el comando
move hacemos doble clic con el botn central del ratn accederemos a la siguiente
ventana:
En ella podemos ver la opcin Snap Mode, la cual por defecto est establecida a
orthogonal. Pues bien, si la desplegamos (pulsando sobre el rectngulo gris que
resalta a la derecha) veremos que tenemos disponibles las siguientes opciones:
orthogonal: Nos permite mover el objeto slo en las direcciones ortogonales (horizontal
y vertical).
4 - Creacin de capas
Seguidamente pasaramos a dibujar a mano las capas de metal necesarias para
interconectar ambos transistores. Para dibujar un rectngulo de una capa cualquiera
basta con seleccionar la capa en cuestin en la ventana de seleccin de capas y utilizar
la opcin Create - > Rectangle en la ventana de edicin de layouts (o el botn Rectangle
a la izquierda de la misma o la tecla de mtodo abreviado r). Si seleccionamos por
ejemplo la capa MET1 dg y en la ventana de edicin de esquemticos pulsamos r
veremos como podemos dibujar un rectngulo de metal 1 sin ms que hacer clic en el
punto donde queramos tener una de sus esquinas y desplazando el ratn sin soltar el
botn hasta el punto que queramos que sea la esquina opuesta, soltando el botn del
mismo cuando nuestro rectngulo tenga la forma deseada.
Pues bien, para interconectar los transistores pulsamos shift + F para visualizar
sus capas y a continuacin dibujamos rectngulos de metal 1 (dg) y poly 1 (dg) hasta
completar el esquema de la figura 11.
A continuacin vamos a ver una serie de comandos interesantes que nos pueden
facilitar la realizacin de este esquema (si no conseguimos dib ujar 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 rectngulos tal y como aparecen en la
figura). El primero de ellos es el comando stretch. Dicho comando lo tenemos
disponible en la opcin de men Edit - > Stretch, en el botn Stretch correspondiente a
la izquierda de la ventana, o en el mtodo abreviado de teclado s. Pues bien, dicho
comando resulta de suma utilidad, y es de los que ms se usan (si no el que ms) a la
hora de realizar layouts. El comando en s nos permite alargar o acortar cualquier tira
(rectngulo), de metal o de la capa que sea, seleccionando uno de sus lados mediante un
clic con el botn izquierdo del ratn y desplazando este hasta conseguir la anchura o
altura deseada. Una vez alcanzada esta volvemos a hacer clic con el ratn para dejarla
establecida. Esta accin es especialmente til a la hora de rellenar el mximo espacio
posible con metal o para conseguir capas que cumplan todas las reglas de diseo en
cuanto a anchuras y distancias mnimas. Ms adelante vamos a ver un ejemplo de su
uso, pero antes vamos a estudiar otras opciones interesantes.
Types:
vertex - > gravedad para los vrtices de las tiras. Atrae el cursor hacia los vrtices de las
tiras.
end - > gravedad para los extremos de los paths. Atrae el cursor hacia los extremos de
la lnea central de los paths.
nexus - > gravedad para los nexos
junction - > gravedad para las uniones.
pin - > gravedad para los pines.
Depth: No comprobado.
Bounce X: No comprobado.
Bounce Y: No comprobado.
Como puede apreciarse, las dos tiras son las tiras de metal 1 y poly 1 situadas ms a la
izquierda, y lo que hacemos es ensanchar la tira de poly 1 y alargar la de metal 1. Para
5 - Creacin de contactos
Vamos a ver en este apartado cmo colocar los contactos necesarios entre las
distintas capas. En nuestro caso tan slo necesitamos un contacto (junto con los
contactos a sustrato que veremos ms 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 colocsemos el contacto
correspondiente tendramos nicamente dos capas distintas superpuestas sin ningn
contacto elctrico, por lo que nuestro inversor no funcionara correctamente.
En ella vemos todas las opciones de creacin de contactos, el tipo (Contact Type), la
justificacin, 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 edicin de
layouts veremos como nos aparece el contacto que acabamos de seleccionar y podremos
situarlo donde nos parezca haciendo clic con el botn izquierdo de nuestro ratn. Lo
situaremos donde nos indica la figura 15.
Dentro de esta ventana las opciones ms 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 dependern de la tecnologa y en particular, para nuestro kit de
AMS sern las siguientes:
Pues bien, para realizar nuestro primer chequeo de las reglas de diseo
seleccionaremos las opciones (switches) siguientes:
no_FIMP
no_antenna
no_coverage
no_erc
no_metal_slots
no_pads
No hace falta que las sealemos 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 aparecern 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:
Si queremos obtener una descripcin ms detallada de los errores reportados nos vamos
a la ventana de comandos y veremos lo siguiente:
Como podemos ver tenemos 46 errores, pero esta enorme cantidad de errores no debe
preocuparnos en exceso. En efecto, si leemos con atencin veremos que el origen de
nuestros errores est en los contactos, ms concretamente en que hemos modificado el
tamao 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
colocramos en ese lugar, pero ello se hizo con fines instructivos, para familiarizarnos
con los errores que en un primer DRC es muy comn que tengamos).
En ella nos aparece la explicacin del origen del error, en este caso que el tamao del
contacto est prefijado y ha de ser de 0.4 micras.
Otra opcin interesante es Verify - > Markers - > Find. Si la seleccionamos nos
aparecer la siguiente ventana:
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), dnde 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 incmodo corregir el layout para ajustarnos a las
reglas de diseo con estas marcas activas.
que hacemos es borrar todos los contactos que creamos anteriormente, con lo que
volveramos a tener el layout de la figura 13. A continuacin volvemos a crear todos los
contactos pero en este caso respetando las opciones de tamao que por defecto nos da el
programa. Los colocamos tal y como indica la figura 24.
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
tambin un rectngulo 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 difusin con
otra.
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 seala en color naranja, as como con la
unin de los pozos anteriores en un nico pozo N.
Por ltimo, para finalizar con este apartado, corremos el DRC sin ninguna
restriccin (switch) para comprobar que no tenemos ningn fallo. Efectivamente, si lo
hacemos veremos como tenemos 0 errores encontrados, por lo que podemos estar
tranquilos y pasar al apartado siguiente.
7 - Extraccin de parsitos
En ella podemos ver que tambin tenemos un campo donde aadir restricciones, que en
este caso sern las siguientes:
clic con el botn izquierdo del ratn sobre la vista schematic del mismo) y lo
modificamos de la siguiente manera:
Como vemos, lo nico que hemos hecho es sustituir la fuente de tensin por el elemento
vdd (alimentacin), ya que los layouts nunca incluyen fuentes por lo que si comparamos
un esquemtico con fuentes con un layout probablemente nos salgan errores. Esta es la
justificacin para esta ligera modificacin de nuestro esquemtico. Lo que hacemos es
guardar este esquemtico con un nombre diferente mediante la opcin Save As:
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
machacaramos la anterior vista schematic y tendramo s dos veces la misma vista
schematic_LVS pero con diferentes nombres. As pues, pulsamos No y ya se cerrara la
ventana.
A continuacin vamos a abrir la vista layout (si es que no la tenamos abierta ya)
y vamos a aadir 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 esquemtico del inversor. Para ello seleccionamos la
opcin Create - > Pin dentro de la ventana de edicin de layouts de nuestra vista layout.
Aparecer la siguiente ventana:
Pues bien, en esta ventana seleccionamos las opciones que se muestran y nos situamos
en la ventana de edicin 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
mismo para el de salida (OUT) seleccionando en este caso la opcin output para el
tipo de pin (I/O Type). Ha de quedarnos nuestra vista layout tal y como se muestra a
continuacin:
Se pueden ver en esta figura los pines que acabamos de aadir 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 extrado tal y como lo hicimos en el
apartado anterior.
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 seleccionaramos 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 estaramos ya en disposicin
de correr el LVS, para ello no tenemos ms que pulsar el botn 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 informacin del estado del proceso pulsando
el botn 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 botn Log File
en la opcin Run Info, el cual hemos de pulsar si queremos obtener la informacin del
proceso y los resultados del mismo, los cuales se muestran en la figura 35 para nuestro
caso.
la ventana de LVS. Nos aparecera la siguiente ventana en la cual podramos 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.
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 edicin de layouts de nuestra vista
extracted. Nos aparecer la siguiente ventana:
En ella seleccionaramos, por ejemplo, cross probe matched y pulsaramos Add Net.
As, podramos sealar una pista en el layout y veramos en el esquemtico 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.
9 - Simulacin post-layout
Para realizar la simulacin 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 tenamos abierta ya) y en la ventana LVS
seleccionamos la opcin Build Analog pulsando el botn correspondiente. (Si ya
hubisemos 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:
En ella decimos que nos incluya todo los parsitos (opcin 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 simulacin post- layout.
Para llevar a cabo esta simulacin tenemos que abrir el esquemtico de test que
se hizo en el tutorial bsico de introduccin a Cadence para simular nuestro inversor y
que se muestra a continuacin:
En este esquemtico seleccionaremos Tools - > Analog Environment para ver la ventana
principal de la herramienta de simulacin Affirma Analog:
En ella lo primero que hacemos es cambiar de simulador. Para ello escogemos Setup - >
Simulator/Directory/Host y nos aparecer la siguiente ventana:
Se obtienen los resultados de la figura 43, los cuales evidentemente estn mal, ya que
por muchos parsitos que introduzca nuestro layout jams van a ser suficientes como
para obtener estos resultados tan alejados de los que se obtuvieron en la simulacin pre-
layout.
Una vez hechos estos cambios simplemente procedemos a repetir los pasos que hemos
presentado en este tutorial desde el apartado 6, es decir, volveramos a hacer el DRC a
nuestro layout (directamente sin ningn switch), el extrado (nuevamente con el switch
capall), y en la vista extracted generada repetiramos el LVS para las vistas schematic y
extracted que tenemos ahora. Una vez concluido el LVS generaramos la vista
analog_extracted tal y como hicimos antes y con esto nos iramos al esquemtico de test
para nuestro inversor, que ahora tendra mos que poner de la siguiente forma:
As pues, como hemos visto, hemos de tener especial cuidado a la hora de seguir
los distintos pasos del flujo de diseo, sobre todo si cambiamos algo en alguna vista
durante este proceso de diseo porque estos cambios pueden afectar a todo el proceso.
Esperamos que este tutorial haya servido para familiarizarse con todos los pasos del
flujo de diseo analgico presentado y pedimos comprensin para los errores que
hemos introducido aposta, pero nuestra experiencia nos indica que la mejor forma de
aprender algo es equivocndose, por lo que aunque este tutorial podra seguirse
introduciendo dir ectamente todos los diseos de forma correcta es conveniente seguirlo
incluyendo los errores para tomar conciencia de los problemas que podemos
encontrarnos a la hora de abordar diseos ms complejos.
10 - Sumario
En este tutorial de introduccin a la realizacin de layouts con Cadence se han
tratado los siguientes puntos:
11 - Referencias
[3] http://www.cadence.com
[4] http://www.austriamicrosystems.com
[5] http://asic.austriamicrosystems.com