Skip to main content

⛰️ Volare

License: Apache 2.0 CI Status Invite to the Skywater PDK Slack Code Style: Black

Volare is a version manager (and builder) for builds of Google open-source PDKs using open_pdks.

Requirements

  • Python 3.8+ with PIP
  • macOS or GNU/Linux

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 xz-utils

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 volare

# To verify it works
volare --version

About the builds

In its current inception, volare supports builds of sky130 and gf180mcu PDKs using Open_PDKs, including the following libraries:

sky130 gf180mcu
sky130_fd_io gf180mcu_fd_io
sky130_fd_pr gf180mcu_fd_pr
sky130_fd_sc_hd gf180mcu_fd_sc_mcu7t5v0
sky130_fd_sc_hvl gf180mcu_fd_sc_mcu9t5v0
sky130 sram modules gf180mcu_fd_ip_sram

All builds are identified by their open_pdks commit hash.

Usage

Volare requires a so-called PDK Root. This PDK root can be anywhere on your computer, but by default it's the folder ~/.volare in your home directory. If you have the variable PDK_ROOT set, volare 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 PDKs hosted in this repository, you can just invoke volare ls-remote --pdk <PDK>. If you omit the --pdk argument, sky130 will be used as a default.

$ volare ls-remote --pdk 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)

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

It includes a commit hash, which is the open_pdks version used to build this particular PDK, 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 volare ls --pdk <pdk> in the terminal shows you your PDK Root and the PDKs you currently have installed. Again, if you omit the --pdk argument, sky130 will be used as a default.

$ volare ls --pdk sky130
/home/test/volare/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 volare enable --pdk <pdk> <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 volare enable --pdk sky130 7519dfb04400f224f140749cda44ee7de6f5e095, as shown below:

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

What's more is: if you're using a repository with a tool_metadata.yml file, such as OpenLane or DFFRAM, you can just invoke volare enable --pdk sky130 without the commit hash and Volare will automatically extract the version required by the utility. Once again, if you omit the --pdk argument, sky130 will be used as a default.

Building PDKs

For special cases, you may have to build the PDK yourself, which Volare 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:efabless/openlane2#magic before building.

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

License

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

Metadata

Release files for volare 0.20.6

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

Source distribution (sdist)

Source distribution for volare 0.20.6
File Size Uploaded Provenance Actions
volare-0.20.6.tar.gz 23.5 kB Without provenance Details for volare-0.20.6.tar.gz

Built distribution (wheel)

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

Total release size: 57.8 kB

Release files / volare-0.20.6.tar.gz

Download URL volare-0.20.6.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a2ebd9b8a81de144dbc352eab71670e7e4b3e4713272387479a75935569e076a
BLAKE2b-256 checksum
How to use checksums
447588de19ca6bbeb05b562cde53a4ba5b456090258531009f5fc1d30edd987b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release files / volare-0.20.6-py3-none-any.whl

Download URL volare-0.20.6-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ff6ac0a79e59087f2db4255556b3a0fd2d1e3e54afb776c5d73f64242f36b01
BLAKE2b-256 checksum
How to use checksums
5307d48ce7f1fa1d75cc4429db8d6ad244cdef99961d5014e09ac09a2c882263
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Security for volare 0.20.6

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.20.6 This release

2 release files No provenance

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