Problemas al Cargar wplace
Problemas al Cargar wplace
(Xschem, Magic)
IMNE 2023
1
Tabla de Contenido
Para empezar con el tutorial lo primero que se debe hacer es descargar git. Para esto se
Figura No. 2
Seguidamente se debe escribir: sudo apt update && sudo apt install m4 tcsh csh libx11-
dev.
1
Figura No. 3
Figura No. 4
Figura No. 5
1
Figura No. 6
Se debe ignorar el comando: Open software – properties – gtk y se debe colocar: Sudo
Figura No. 7:
Figura No. 8:
Figura No. 9:
[Link]
1
Figura No. 12
Figuta No. 13
Figura No. 14
Luego, para poder proseguir con la instalación de magic se debe escribir: sudo make install.
1
Figura No. 15
Figura No. 16
Figura No. 17
1
Figura No. 18
Se debe descargar sky130 que se refiere a la tecnología de 130 nm para diseñar circuitos
integrados.
1
Figura No. 19
Colocar el comando: sudo make. Este comando tardará varios minutos. Se recomienda
tener paciencia.
1
Figura No. 20
Figura No. 21
1
Figura No. 22
Figura No. 23
Figura No. 24
Figura No. 25
Figura No. 26
Y colocar:
wget [Link]
Figura No. 27
Figura No. 28
Figura No. 29
Figura No. 30
Figura No. 31
Para seguir, se necesita escribir el comando anteriormente utilizado: sudo make install
Figura No. 32
1
Figura No. 33
ventana de gaw.
1
Figura No. 34
Figura No. 35
Figura No. 36
Se sale de la carpeta.
Figura No. 37
1
Para continuar se necesita installar también la aplicación Xchem. Por lo que se coloca:
Figura No. 38
Luego, se escribe:
Figura No. 39
Figura No. 40
1
Y se coloca:./configure.
Sin embargo, aparece el siguiente error: Node parsgen/flex/presents is required but provided
Figura No. 41
Figura No. 42
Figura No. 43
1
Figura No. 44
Figura No. 45
Figura No. 46
1
Figura No. 47
Figura No. 48
1
Figura No. 49
Figura No. 50
required but provided detection callback fails to find th at feature on that system.
Figura No. 52
Figura No. 53
Figura No. 54
Figura No. 55
Figura No. 56
1
Figura No. 57
Se coloca: cd~
Figura No. 58
1
Se escribe lo siguiente:
Figura No. 59
Después, se coloca:
/usr/local/share/sky130_fd_pr
1
Figura No. 60
Seguidamente, se escribe:
mkdir xschem_schematics
1
Figura No. 61
Figura No. 62
Figura No. 63
Figura No. 64
Se deben escribir los siguientes comandos dentro de la pestaña, tal como se observa en la
figura 64:
set XSCHEM_LIBRARY_PATH {}
Figura No. 65
1
caso, la ubicación de este archivo es la pestaña Home. Luego, se hace click derecho en la pestaña
Figura No. 66
Una vez abierto el terminal, se debe escribir el comando xschem para abrir el programa.
1
Figura No. 67
Después de realizar esta acción, se debe abrir la pantalla principal del programa, tal como
Figura No. 68
Tecla Acción
W Place Wire
U Undo
Shift + R Rotate
A Create Symbol
P Create Figure Line
M Move Part
Z Zoom
Shift + Z Zoom Out
Tabla 1: Lista de comandos útiles en Xschem.
objetivo de empezar el diseño del inverter, se empieza colocando los componentes necesarios.
Para ello, se selecciona la opción Insert Symbol. Este botón se puede observar en la figura 69.
Figura No. 69
Una vez seleccionado el botón, se debe abrir la pestaña observada en la figura 70. Dentro
básicos. Por otro lado, la segunda opción contiene los componentes correspondientes a la
Figura No. 70
Figura No. 71
En el apartado de devices, se busca el archivo [Link]. Este es un label que indicará que
Una vez realizado el cambio, se muestra el siguiente recuadro donde se debe seleccionar
la opción OK.
En ese apartado se busca el archivo [Link]. Una vez se selecciona ese archivo, se
Después de tener el bloque de la Figura No. 83, se prosigue a ir al tool bar, en la parte de
figuras, se selecciona la opción “insert circle”. Esto será para el símbolo del inverter.
1
Después de añadir el circulo se obtiene el símbolo del inverter. Este símbolo se lo debe
workspace. Para crear un nuevo workspace, se hace click en el recuadro con el símbolo + al lado
De igual manera, se busca el archivo code_shown.sym. Una vez hecho esto obtenemos el
siguiente recuadro:
/usr/local/share/sky130_fd_pr/models/[Link] tt
.tran 0.1n 1u
.save all"
En la Figura No. 93, se puede observar el esquemático con todos los elementos antes
mencionados.
se desplegan las siguientes opciones y seleccionar la opción de “Configure simulators and tools”.
recuadro “Ngspice Batch”. Luego clickear la opción “accept and close”. Luego, se regresa al tool
esta se colocará las entradas y salidas. En nuestro caso son: v(y) y v(net1).
3 MAGIC
Magic es un sofware dedicado a la creación y modificación de circuitos VLSI (layouts).
La singularidad del programa es que este distingue por comprender, de cierta manera, la
naturaleza del circuito y aprovechando esta ventaja para ofrecer funciones adicionales. Por
ejemplo, en este programa existe las reglas de diseño DRC, lo que te permite verificar las
posibles violaciones ante los parámetros de diseño estipulado por los fabricantes. Por otro lado,
tiene una función de comprobar conectividad y jerarquía como lo veremos más adelante.
Para nuestro caso, es de nuestro interés trabajar con la tecnología sky130, en caso de
requerir otro tipo de tecnología es necesario descargar la capeta correspondiente que permita la
revelan las opciones y configuraciones específicas disponibles en ese contexto para tener acceso
la generación de layouts, tales como Klayaout. En esta instancia particular, la elección recae en la
carpeta de Magic como la opción seleccionada para llevar a cabo las tareas pertinentes.
denominado [Link]. Este archivo será el punto de referencia que utilizaremos para
para lo cual se copia la ruta exacta del mismo, como se detalla a continuación y se presiona
enter:
1
Una vez que se presiona la tecla Enter, la terminal mostrará la interfaz correspondiente,
como se ilustra en la Figura No. 106. Es fundamental verificar que en la parte superior se indique
claramente "sky130A". Es relevante destacar que el término DRC se refiere a los errores
presentes en el diseño del layout, por lo que es necesario tener en cuenta esta información para la
• Paint “material” (sirve para rellenar el área seleccionada con el material seleccionado)
• Otra manera de seleccionar el material es utilizando el botón central del mouse (rueda).
1
seleccionado.
seleccionado.
• z zoom in
• :erase -material- borra el material en cuestión, de no poner uno borra todo dentro de la
caja
• :label -dirección-dist-material
• x revela contenido de la celda invocada (sirve para cargar el layout cuando vuelves a
abrir magic)
PMOS, las cuales se expresan mediante la notación fraccional 1/0.15. En este contexto, el valor
"1" corresponde al ancho (W) del transistor, mientras que "0.15" se refiere a su longitud (L). Esta
"Devices 1". En este espacio, se despliegan diversas opciones entre las cuales se elige la
"NMOS". En esta sección, se detallan parámetros esenciales como el ancho, la longitud y los
"fingers". Es importante notar que, por defecto, la mayoría de las casillas están marcadas. La
opción "overlaps" se emplea cuando se tiene un transistor con dos o más "fingers", facilitando la
superposición entre ellos. Las configuraciones relacionadas con "contacts" están diseñadas para
generar contactos específicos para cada compuerta del transistor. Por otro lado, las opciones de
"ring" se utilizan comúnmente para permitir un acceso más conveniente a los voltajes de
polarización. En este caso, decidimos que solo necesitamos el transitor como tal.
1
esquina inferior del área deseada y, a continuación, se efectúa un clic derecho en la esquina
superior correspondiente.
1
Dentro del comand windows, se ponen los códigos “select area” y “copy” para
seleccionar al transitor, copiarlo y pegarlo en otra ubicación diferente. Otra manera de hacerlo es
una vez tenemos el recuadro de la figura 110 se presiona la tecla “s” y luego control + “a”,
control + “v”.
Como observamos en la figura 112, el resultado de estos comandos nos permite duplicar
el transistor sin tener que crearlo nuevamente desde cero y configurar nuevamente sus
parámetros.
este comando, se logra la eliminación del transistor que previamente fue copiado. Esta acción
resulta fundamental para realizar ajustes en el diseño del circuito, permitiendo una manipulación
duplicado con anterioridad. Ahora bien, seleccionamos un recuadro más grande que el transistor
y dado a que es un MOSFET tipo N, escribimos en el comand windows lo que se puede apreciar
en la figura 116.
1
El siguiente paso implica el uso del comando "paint", que tiene la función de rellenar el
Después de ingresar el comando "paint", se elige el elemento deseado, en este caso, "pwell". La
apreciar en la figura 117; en este caso, se observa un sustrato de color naranja tenue el cual
Es de nuestro interés realizar un anillo para poder alimentar a los transistores, para ello es
necesario generar un recuadro al rededor del transistor el cual lo empezaremos a rellanar con un
material llamado “ptap” usando el comando paint. Una forma fácil de mantener las medidas que
cuadro, tal como se ilustra en la Figura 120. Se sugiere la práctica de organizar transistores tipo P
en un lado y los tipos N en otro, especialmente al trabajar en diseños de layouts más extensos.
Esta recomendación se basa en la facilidad de acceso a las fuentes de alimentación VDD y VEE
mediante anillos específicos. Adoptar esta organización facilita la disposición estratégica de los
del circuito.
1
Sin embargo, para lograr conseguir los rings es necesario otra capa más, para ello nos
utilizamos nuevamente “paint li” para colocar otra capa encima de la anterior, como se puede
Ahora bien, es necesario que el ring tenga contactos que serán conectados a VDD o VEE
dependiendo del caso requerido. Para poder establecer las conexiones con metales se utiliza el
En la figura 124 se observa el resultado de implementar los contactos. Pueden ser de esta
dimensión o pueden ser externos a los ring pero conectados directamente al mismo. Esto
Para poder colocar un metal, se debe usar el código “paint polysilicon”, debido a que ese
es el material para el gate que se encuentra en el centro del transistor. El cual es Silicio.
las conexiones son cortas se utiliza el polisilio, sin embargo, si las conexiones son extensas es
Para colocar el metal 1 nos dirigimos al comand windows y escribimos “paint m1”.
El metal m1 debe ser más grande que el contacto para que funcione de la manera
las conexiones:
Para entablar las conexiones se realiza el contacto. Por ello, se usa “paint contact”.
Se debe añadir el metal 1 (m1) de la siguiente manera como esta descrito en la figura.
1
Para guardar se debe utilizar el comando save y colocar un nombre distinto al utilizado
anteriormente.
pmos (MOSFET).
1
Se dejan los mismos parámetros y se deselecciona todo lo marcado como en el caso del
nmos.
1
la información que se desea copiar, para esto se hace click izquierdo en una esquina. Verifica la
de tijeras o documentos duplicados. Puedes pegar la copia en otra parte del proyecto o en una
Para colocar el "nwell" en Magic, se emplea el comando "paint nwell". Al ejecutar este
comando, se logra la incorporación del "nwell" en la ubicación deseada. En este caso se consigue
Dado que estamos trabajando con un transistor NMOS, es necesario incorporar un anillo
utilizando el comando "paint ntap". Al emplear esta instrucción, se genera el anillo necesario
1
para el NMOS. Este paso es fundamental al trabajar con componentes específicos como NMOS
proyecto.
El siguiente paso sería utiliza el comando "paint li" para colocar líneas en la disposición
del diseño. Al ejecutar este comando, se logra la creación de líneas según los parámetros
permite realizar la primera etapa que sería el metal y se obtiene la siguiente figura:
1
esta instrucción, se visualiza la siguiente imagen, que representa la disposición de los contactos
siguiente paso consistirá en aplicar o poner la capa de metal 1. Este paso es esencial para la
Una vez colocado el comando “paint m1”, se podrá apreciar la Figura No. 153:
Para establecer la conexión entre la capa de metal 1 y otros elementos del diseño, es
necesario colocar una vía. Este proceso se realiza mediante el comando "paint viali". Al ejecutar
este comando, se crea una vía que permite la conexión eléctrica entre el metal 1 y otros
componentes del circuito. A continuación, se puede ver la conexión entre la vía y el metal:
siguiente paso implica la creación de un cuadrado con polysilicon. Esto se puede lograr mediante
diseño. En la Figura No. 156, se observa la aplicación de los comandos "select area", "paint
nwell", y "paint polysilicon". Estos pasos se llevan a cabo para lograr la configuración deseada
en el diseño. Primeramente, se utiliza "select area" para definir y delimitar una región específica.
Luego, se aplica "paint nwell" para establecer el nwell en esa área particular. Posteriormente, se
utiliza "paint polysilicon" para crear una estructura de polysilicon dentro de la región designada.
pcontact". Al ejecutar este comando, se visualiza la figura resultante, que representa la adición
Para establecer las conexiones con la capa de metal 1, se utilizan los comandos ya
mencionados anteriormente. Primero, se aplica "paint li" para crear las líneas, seguido por "paint
viali" para colocar las vías y asegurar conexiones verticales. Luego, se emplea "paint m1" para
añadir la capa de metal 1 y finalmente se utiliza nuevamente "paint viali" para garantizar
1
conexiones.
realizar un zoom out en la visualización, se obtiene una perspectiva más amplia que permite
apreciar el PMOS en el contexto general del diseño. La figura resultante muestra la disposición y
Luego del proceso descrito, se presenta la disposición conjunta de los dos transistores.
Para integrar la capa de metal 2 (M2) en el área del cuadrado de polysilicon, se emplea el
comando "paint m2". La visualización resultante mostrará la disposición final después de aplicar
manipular la disposición de elementos en el diseño. Se inicia con el comando "select area" para
delimitar una región específica, seguido por "paint polysilicon" para colocar polysilicon en esa
área. Luego, se utilizan los comandos "paint li" y "paint polysilicon" de nuevo para añadir líneas
para incluir contactos en la capa de metal 2 (M2). Con estos comandos se pudo obtener la Figura
1
No. 167.
error, pero se decide continuar con el proceso y abordarlo más adelante. Este enfoque se toma
con la anticipación de que el error será corregido en la siguiente etapa del diseño.
Es común adoptar esta estrategia para no detener por completo el flujo de trabajo y permitir la
continuidad en otras áreas del diseño. En la siguiente figura, se mostrará cómo corregir el error
identificado previamente.
1
Cuando se aplican los comandos de la Figura No. 168, se logra obtener la imagen
resultante sin ningún error aparente. Este proceso demuestra la efectividad de los comandos
utilizados para corregir o modificar la disposición del diseño, eliminando el problema que se
identificó previamente. La figura obtenida refleja una representación precisa y libre de errores
Para conectar el source, se procede a seleccionar el área marcada en la Figura No. 170.
Esto implica utilizar el comando "select area" para delimitar la región específica que corresponde
al source.
1
En la Figura No. 171, se observa que para conectar el source se utiliza el comando "paint
m2". Este comando específico se emplea para aplicar la capa de metal 2 (M2) en la región
Es esencial tener en cuenta que, en el caso del transistor PMOS, se recomienda aumentar
el área de la capa de metal 1. Esto se realiza con el fin de prevenir posibles errores al colocar la
1
vía 2 (m2contact) y la capa de metal 2 (m2). Al realizar este ajuste, se logra una configuración
Se debe tomar en cuenta que se debe ir probando de poco en poco la variedad en las
medidas.
1
correctamente encima.
Se utilizan los comandos que se encuentran en la Figura No. 176 para tratar de solucionar
En este caso, se produce un error debido a que el tamaño del metal 1 es inferior al del
Es crucial repetir el mismo proceso descrito anteriormente para el caso del transistor
NMOS. Al realizar estos pasos específicos, se logrará la correcta configuración y conexión de los
la siguiente figura:
Es necesario establecer la conexión entre los drains de cada transistor, ubicados en el lado
En la Figura No. 182, se presentan los comandos específicos utilizados para facilitar la
conexión del source. Estos comandos son esenciales para establecer las conexiones eléctricas
No. 183.
mientras que la conexión inferior está asociada a GND. De manera análoga, se debe seguir el
mismo proceso utilizando la capa de metal 2 para lograr la configuración deseada, como se
En la Figura No. 185, se observa que en el entorno del software xschem, la entrada
identificada como "A" se encuentra en el bucle izquierdo, mientras que en el lado derecho se
aprecia que corresponde a "Y". Este detalle visualiza la asignación de nombres de entrada,
4 Referencias
Para la instalación de Ubuntu refierase al siguiente link:
[Link]
[Link]
[Link]
Links complementarios:
[Link]
[Link]
[Link]