Volare is a Python package intended to manage PDKs supported by OpenPDKs. It is used by DFFRAM and other projects.
In the future it probably is supposed to handle other PDKs as well, but as of 2022 only the Skywater PDK from Google is available.
The following is a brief overview of how to use volare.

First install volare using pip.

$ pip3 install volare

Type volare help for usage information.

$ volare --help
Usage: volare [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  output*  (Default) Outputs the currently installed PDK version.
  build    Builds the sky130 PDK using open_pdks.
  enable   Activates a given PDK version.
  path     Prints the path of a specific pdk version installation.

The command volare list yields a list of pre-build PDKs which are available. Each pre-build PDK is identified by an OpenPDK git commit (hash).
Thus the list is unfortunately not sorted by date, but in random order.
So in order to find out which of the pre-build PDKs is the latest one, the git commit hash needs to be queried on github.com.

$ volare list
Pre-built PDKs
├── 8fe7f760ece2bb49b1c310e60243f0558977dae5
├── 7519dfb04400f224f140749cda44ee7de6f5e095
├── 660c6bdc8715dc7b3db95a1ce85392bbf2a2b195
├── 5890e791e37699239abedfd2a67e55162e25cd94

The command volare enable selects which PDK should be active. If the selected PDK is not present on the local machine it will be downloaded.
If you want the PDKs to be installed to a specific path set the PDK_ROOT environment variable first. The default install path for PDKs is under $HOME/.volare

$ export PDK_ROOT=/opt/pdks

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

$ volare list
Pre-built PDKs
├── 8fe7f760ece2bb49b1c310e60243f0558977dae5
├── 7519dfb04400f224f140749cda44ee7de6f5e095 (enabled)
├── 660c6bdc8715dc7b3db95a1ce85392bbf2a2b195
├── 5890e791e37699239abedfd2a67e55162e25cd94

The command volare build allows you to build a PDK using OpenPDKs.

$ volare build <git-commit>

A complete PDK build can take considerable time. Using the -j option helps to speed things up.

$ volare build -j$(nproc) d7faec2b6f384254449e0172c4f26083f77d3ff5

... a considerable time later ...

Removing temporary files from destination.
Done with PDK migration.
echo "Ended SKY130 PDK migration on "`date` >> sky130B_install.log
[15:45:31] Attempting to fix ownership…
[15:45:32] Done.
[15:45:32] Copying…
[15:45:36] Done.                                                 

Note that volare build requires Python venv. So make sure Python venv is installed on your system. You will notice soon enough if venv is missing, the error message can be misleading though.

$ sudo apt install python3-venv

Installing a PDK with volare is as easy as it gets. Using the PDK is a whole different story though. I expect volare to become integrated into OpenLANE et al, if that’s not already the case.

That’s it.


References: