Skip to main content

🌌 Ciel

License: Apache 2.0 Python ≥3.8 CI Status Invite to FOSSi Chat

Ciel is a version manager (and builder) for builds of open-source process design kits (PDKs).

Requirements

macOS

Get Homebrew then:

brew install python3

Debian and Ubuntu

Debian 11+ or Ubuntu 20.04+ is required.

sudo apt-get update
sudo apt-get install python3 python3-pip

RHEL and Derivatives

RHEL 8+ or compatible operating system required.

sudo yum install -y python3 python3-pip

Installation and Upgrades

# To install (or upgrade)
python3 -m pip install --user --upgrade --no-cache-dir ciel

# To verify it works
ciel --version

About the builds

In its current inception, ciel supports builds of sky130 and gf180mcu PDKs using Open-PDKs, including the following libraries:

sky130 gf180mcu ihp-sg13
sky130_fd_io gf180mcu_fd_io sg13g2_io
sky130_fd_pr gf180mcu_fd_pr sg13g2_pr
sky130_fd_pr_reram - -
sky130_fd_sc_hd gf180mcu_fd_sc_mcu7t5v0 sg13g2_stdcell
sky130_ml_xx_hd gf180mcu_fd_sc_mcu9t5v0 -
sky130_fd_sc_hvl gf180mcu_osu_sc_gp9t3v3 -
sky130_fd_sc_lp gf180mcu_osu_sc_gp12t3v3 -
sky130_fd_sc_ls - -
sky130_fd_sc_ms - -
sky130_fd_sc_hs - -
sky130_sram_macros gf180mcu_fd_ip_sram sg13g2_sram

Builds for sky130 and gf180mcu are identified by their open_pdks commit hashes. Builds for ihp-sg13g2 are identified by their IHP-Open-PDK commit hashes.

Usage

Ciel requires a so-called PDK Root. This PDK root can be anywhere on your computer, but by default it's the folder ~/.ciel in your home directory. If you have the variable PDK_ROOT set, ciel will use that instead. You can also manually override both values by supplying the --pdk-root commandline argument.

Listing All Available PDKs

To list all available pre-built PDK families hosted in this repository, you can just invoke ciel ls-remote --pdk-family <pdk-family>.

$ ciel ls-remote --pdk-family sky130
Pre-built sky130 PDK versions
├── 44a43c23c81b45b8e774ae7a84899a5a778b6b0b (2022.08.16) (enabled)
├── e8294524e5f67c533c5d0c3afa0bcc5b2a5fa066 (2022.07.29) (installed)
├── 41c0908b47130d5675ff8484255b43f66463a7d6 (2022.04.14) (installed)
├── 660c6bdc8715dc7b3db95a1ce85392bbf2a2b195 (2022.04.08)
├── 5890e791e37699239abedfd2a67e55162e25cd94 (2022.04.06)
├── 8fe7f760ece2bb49b1c310e60243f0558977dae5 (2022.04.06)
└── 7519dfb04400f224f140749cda44ee7de6f5e095 (2022.02.10)

$ ciel ls-remote --pdk-family gf180mcu
Pre-built gf180mcu PDK versions
└── 120b0bd69c745825a0b8b76f364043a1cd08bb6a (2022.09.22)

It includes a hash of the commit of the relevant repo used for that particular build, the date that this commit was created, and whether you already installed this PDK and/or if it is the currently enabled PDK.

Listing Installed PDKs

Typing ciel ls --pdk-family <pdk-family> in the terminal shows you your PDK Root and the PDKs you currently have installed.

$ ciel ls --pdk-family sky130
/home/test/ciel/sky130/versions
├── 44a43c23c81b45b8e774ae7a84899a5a778b6b0b (2022.08.16) (enabled)
├── e8294524e5f67c533c5d0c3afa0bcc5b2a5fa066 (2022.07.29)
└── 41c0908b47130d5675ff8484255b43f66463a7d6 (2022.04.14)

(If you're not connected to the Internet, the release date of the commit will not be included.)

Downloading and Enabling PDKs

You can enable a particular sky130 PDK by invoking ciel enable --pdk-family <pdk-family> <open_pdks commit hash>. This will automatically download that particular version of the PDK, if found, and set it as your currently used PDK.

For example, to activate a build of sky130 using open_pdks 7519dfb04400f224f140749cda44ee7de6f5e095, you invoke ciel enable --pdk-family sky130 7519dfb04400f224f140749cda44ee7de6f5e095, as shown below:

$ ciel enable --pdk-family sky130 7519dfb04400f224f140749cda44ee7de6f5e095
Downloading pre-built tarball for 7519dfb04400f224f140749cda44ee7de6f5e095… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Unpacking…                                                                  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
PDK version 7519dfb04400f224f140749cda44ee7de6f5e095 enabled.

Building PDKs

For special cases, you may have to build the PDK yourself, which Ciel does support.

You'll need Magic installed and in PATH. You can either do that manually or, if you have Nix, invoke nix shell github:fossi-foundation/nix-eda#magic before building.

You can invoke ciel build --help for more options. Be aware, the built PDK won't automatically be enabled and you'll have to ciel enable the appropriate version.

License

The Apache License, version 2.0. See 'License'.

Ciel is based on Volare by Efabless Corporation:

Copyright 2022-2025 Efabless Corporation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file 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.

Metadata

Release files for ciel 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ciel 3.0.0
File Size Uploaded
ciel-3.0.0.tar.gz 27.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ciel 3.0.0
File Interpreter ABI Platform
ciel-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 67.3 kB

Release files / ciel-3.0.0.tar.gz

Download URL ciel-3.0.0.tar.gz
Size 27.6 kB
Tags Source
SHA-256 checksum
How to use checksums
bf0ea63e1e1cdb9f1ded25a7103f93ddc5d5eee546eaea04db1c00eeb73fef6b
BLAKE2b-256 checksum
How to use checksums
a72a65acf477f58f85eedade1a6c6f366ead9950257f832d4fcfcf7a7ed77f1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / ciel-3.0.0-py3-none-any.whl

Download URL ciel-3.0.0-py3-none-any.whl
Size 39.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4f3c0ebaa45311e60e6bf6823615de7f1af8e50ee4e9675c122281abb9a4548b
BLAKE2b-256 checksum
How to use checksums
5f65e29ba436a486baac9d92a579c79bef0eae24d5c61922aeff1869e26ad1b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release history Release notifications | RSS feed

3.0.1

2 release files

This release

3.0.0 This release

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page