Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Instalación

En este tutorial utilizaremos Magic junto con la Tecnología sky130 , que es la que podemos fabricar. Tenemos que realizar 2 instalaciones:

Instalación de Magic

La manera más directa de instalar mágic, usando la última versión, es utilizando el ejecutabe appimage que se encuentra en la zona de las Releases: https://github.com/RTimothyEdwards/magic/releases

La que usamos para este tutorial es la versión 8.3.681

Descargamos el ejecutable appimage correspondiente, que en nuestro caso es: Magic-8.3.681.20260807.4432d7ec-x86_64-EL10.AppImage

Lo renombramos a magic y lo copiamos en un directorio accesible desde el path. Yo voy a instalarlo en ~/.local/bin

Para comprobar que arranca correctamente abrimos un terminal y escribimos magic:

obijuan@JANEL:~$ magic
-- # Starting Magic

Esto es lo que nos aparece:

De momento vamos a Cerrar la aplicación, pinchando en File/Quit

¡Ya tenemos Magic funcionando!

Instalando el gestor ciel

Magic es un programa para diseño de chips que puede trabajar con diferentes tecnologías, o PDK (Process Design Kit), proporcionados por los fabricantes

Nosotros estamos interesados en trabajar con OPEN PDKs, que han sido liberados por el fabricante. En concreto, usaremos el Sky130 de Skywater

Para su instalación hay que realizar compilaciones. Todo esto se simplifica si usamos un gestor de paquetes, que nos instala la versión ya compilada, para el PDK que necesitemos

El gestor recomendado es ciel

Para instalar ciel seguimos estos pasos:

  1. Crear un entorno virtual de python
    Ciel es un paquete python, por lo que en vez de instalarlo directamente en el sistema, vamos a crear el entorno virtual asic, y dentro de él lo instalaremos
obijuan@JANEL:~$ python -m venv $HOME/venv/asic
  1. Entrar en el entorno virtual
obijuan@JANEL:~$ . $HOME/venv/asic/bin/activate
(asic) obijuan@JANEL:~$
  1. Instalación de ciel
(asic) obijuan@JANEL:~$ python3 -m pip install ciel

Una vez instalado realizamos una comprobación para verificar que efectivamente se ha instalado correctamente

(asic) obijuan@JANEL:~$ ciel --version
Ciel v2.6.1 ©2022-2025 Efabless Corporation and Contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this program except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
(asic) obijuan@JANEL:~$

Instalación de sky130

Desde Ciel comprobamos los PDKs precompilados listos para instalar, con el comando ciel ls-remote --pdk-family sky130:

(asic) obijuan@JANEL:~$ ciel ls-remote --pdk-family sky130
Pre-built sky130 PDK versions
├── 026824c7969ce6f4fc9678e6ca04b0a06a596c4b (2026.08.04)
├── f6eeac7dad085ffcc829ccfd721f7b4ce39edcf7 (2026.07.14)
├── d658698bd8bcf4e05fc7b5991a701247ba0d744c (2026.07.04)
[...]

Salen muchos, pero sólo hemos mostrado los 3 primeros

Con el comando ciel ls --pdk-family sky130 comprobamos los que están instalados:

(asic) obijuan@JANEL:~$ ciel ls --pdk-family sky130
No PDKs installed.
(asic) obijuan@JANEL:~$

Como es la primera instalación, de momento NO nos aparece ninguno. Vamos a instalar el último (2026.08.04). Hay que utilizar su hash:

(asic) obijuan@JANEL:~$ ciel enable --pdk-family sky130 026824c7969ce6f4fc9678e6ca04b0a06a596c4b
Version 026824c7969ce6f4fc9678e6ca04b0a06a596c4b not found locally, attempting 
to download…
Downloading common.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Downloading sky130_fd_io.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Downloading sky130_fd_pr.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Downloading sky130_fd_sc_hd.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Downloading sky130_fd_sc_hvl.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Downloading sky130_ml_xx_hd.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Downloading sky130_sram_macros.tar.zst… ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Version 026824c7969ce6f4fc9678e6ca04b0a06a596c4b enabled for the sky130 PDK.
(asic) obijuan@JANEL:~$

Ahora ya sí que aparece que tengo uno instalado:

(asic) obijuan@JANEL:~$ ciel ls --pdk-family sky130
In /home/obijuan/.ciel/ciel/sky130/versions:
└── 026824c7969ce6f4fc9678e6ca04b0a06a596c4b (2026.08.04) (enabled)
(asic) obijuan@JANEL:~$

Todos los ficheros relacioandos con el PDK de Sky130 se encuentran en el directorio ~/.ciel/sky130A

¡¡Ya lo tenemos todo listo!!