-
Notifications
You must be signed in to change notification settings - Fork 0
Log
Notas y pruebas en sucio sobre las herramientas para diseño de chips (asic)
Quiero aprender a utilizar la herramienta magic, para el diseño de ASICs. Este es el repositorio de magic: https://github.com/RTimothyEdwards/magic
Se instala fácilmente utilizando la appimage de la última release. La que descargo es esta: Magic-8.3.681.20260807.4432d7ec-x86_64-EL10.AppImage
La copio al directorio Bin y la ejecuto
![]()
Aparece esto:
![]()
Son dos ventanas independientes, que las he puesto una encima de otra en el pantallazo
Escribo estos comandos:
box 0 0 20 10
paint ndiff
El primer comando se lo traga, pero con el segundo optengo este mensaje de error: Unrecognized layer: ndiff ...
Parece que el problema está que hay que arrancar magico de esta forma, indicando que se quiere usar la tecnología sky130A:
./Magic-8.3.681.20260807.4432d7ec-x86_64-EL10.AppImage -T sky130A test.mag
El mensaje de error que se obtiene ahora es:
Could not find file 'sky130A.tech' in any of these directories: [...]
OK.. tengo que instalar algo más... Parece que hay que instalar el open-pdk: https://github.com/fossi-foundation/open-pdks
Para instalarlo hay que compilar cosas... Estoy leyendo la información de su web: https://opencircuitdesign.com/open_pdks/ Mencionan que hay un gestor de paquetes, ciel para hacer más fácil su instalación. Este es su repositorio: https://github.com/fossi-foundation/ciel
Para instalar las herramientas necesarias voy a crear el entorno virtual de python asic:
obijuan@JANEL:~$ python -m venv $HOME/venv/asicEntramos en el entorno virtual:
obijuan@JANEL:~$ . $HOME/venv/asic/bin/activate
(asic) obijuan@JANEL:~$Instalamos ciel siguiendo las instrucciones:
(asic) obijuan@JANEL:~$ python3 -m pip install cielSe instala correctamente. Lo comprobamos:
(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:~$Vamos a comprobar todos los pdks precompilados listos para instalar:
(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)
[...]Comprobamos los que están instalados:
(asic) obijuan@JANEL:~$ ciel ls --pdk-family sky130
No PDKs installed.
(asic) obijuan@JANEL:~$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:~$Ahora ya sí que está el fichero sky130A.tech en el directorio ~/.ciel/sky130A/libs.tech/magic
obijuan@JANEL:~/.ciel/sky130A/libs.tech/magic$ ls
bump_bond_generator generate_fill.py sky130A-BindKeys sky130A.tcl
check_antenna.py run_standard_drc.py sky130A-GDS.tech sky130A.tech
check_density.py seal_ring_generator sky130A.magicrc
obijuan@JANEL:~/.ciel/sky130A/libs.tech/magic$Voy a reproducir lo anterior, desde 0, con las herramientas ya instaladas. Partimos del directorio de este log
obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$Entramos en el entorno virtual: . $HOME/venv/asic/bin/activate
obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$ . $HOME/venv/asic/bin/activate
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$Comprobamos que ciel sigue accesible:
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$ 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:~/Develop/Learn-open-silicon/wiki/Log$Comprobamos que tenemos seleccionado e instalado sky130
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$ ciel ls --pdk-family sky130
In /home/obijuan/.ciel/ciel/sky130/versions:
└── 026824c7969ce6f4fc9678e6ca04b0a06a596c4b (2026.08.04) (enabled)
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$Lanzamos magic:
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$ $HOME/Bin/Magic-8.3.681.20260807.4432d7ec-x86_64-EL10.AppImage -T sky130A test.mag
-- # Starting MagicEn la consola de magic sigue apareciendo este error:
loading history file ... 3 events added
Use openwrapper to create a new GUI-based layout window
Use closewrapper to remove a new GUI-based layout window
Magic 8.3 revision 681 - Compiled on Sat Aug 8 07:04:03 UTC 2026.
Starting magic under Tcl interpreter
Using Tk console window
Using TrueColor, VisualID 0x21 depth 24
Could not find file 'sky130A.tech' in any of these directories:
. $CAD_ROOT/magic/sys $CAD_ROOT/magic/sys/current
Failed to load technology "sky130A"
[...]
Main console display active (Tcl9.0.4 / Tk9.0.4)
% Ejecuto este comando, pasándole como argumento el fichero sky130A.magicrc
$HOME/Bin/Magic-8.3.681.20260807.4432d7ec-x86_64-EL10.AppImage -rc ~/.ciel/sky130A/libs.tech/magic/sky130A.magicrc
-- # Starting MagicSe lanza magic pero acaba muy rápidamente, y no me da tiempo a ver qué ha ocurrido
OK. Ya consigo lanzar magic con este comando. Hay que exportar la variable PDK_ROOT:
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$ export PDK_ROOT=$HOME/.ciel
$HOME/Bin/Magic-8.3.681.20260807.4432d7ec-x86_64-EL10.AppImage -rc ~/.ciel/sky130A/libs.tech/magic/sky130A.magicrc test.mag
-- # Starting Magic
(asic) obijuan@JANEL:~/Develop/Learn-open-silicon/wiki/Log$Esto es lo que sale ahora: