{"id":13993678,"url":"https://github.com/efabless/volare","last_synced_at":"2025-07-22T18:31:18.846Z","repository":{"id":38441261,"uuid":"471300183","full_name":"efabless/volare","owner":"efabless","description":"Version manager (and builder) for the Google sky130 and gf180mcu open-source PDKs","archived":false,"fork":false,"pushed_at":"2024-04-23T15:49:23.000Z","size":220,"stargazers_count":51,"open_issues_count":9,"forks_count":8,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-04-24T11:16:14.001Z","etag":null,"topics":["openlane","pdk","pdks","python","version-manager"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/efabless.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-18T09:04:38.000Z","updated_at":"2024-05-07T08:29:13.403Z","dependencies_parsed_at":"2023-02-19T11:25:23.831Z","dependency_job_id":"0ea60b90-5308-4c86-b376-ec416f9dc310","html_url":"https://github.com/efabless/volare","commit_stats":null,"previous_names":[],"tags_count":153,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efabless%2Fvolare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efabless%2Fvolare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efabless%2Fvolare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efabless%2Fvolare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/efabless","download_url":"https://codeload.github.com/efabless/volare/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227156212,"owners_count":17739251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openlane","pdk","pdks","python","version-manager"],"created_at":"2024-08-09T14:02:30.081Z","updated_at":"2025-07-22T18:31:18.831Z","avatar_url":"https://github.com/efabless.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003e⛰️ Volare\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" alt=\"License: Apache 2.0\"/\u003e\u003c/a\u003e\n    \u003cimg src=\"https://github.com/efabless/volare/actions/workflows/ci.yml/badge.svg?branch=main\" alt=\"CI Status\" /\u003e\n    \u003ca href=\"https://invite.skywater.tools\"\u003e\u003cimg src=\"https://img.shields.io/badge/Community-Skywater%20PDK%20Slack-ff69b4?logo=slack\" alt=\"Invite to the Skywater PDK Slack\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" alt=\"Code Style: Black\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eVolare is a version manager (and builder) for builds of \u003ca href=\"https://github.com/google/open-source-pdks\"\u003eGoogle open-source PDKs\u003c/a\u003e using \u003ca href=\"https://github.com/rtimothyedwards/open_pdks\"\u003eopen_pdks\u003c/a\u003e.\u003c/p\u003e\n\n# Requirements\n* Python 3.8+ with PIP\n* macOS or GNU/Linux\n\n## macOS\nGet [Homebrew](https://brew.sh) then:\n\n```sh\nbrew install python3\n```\n\n## Debian and Ubuntu\nDebian 11+ or Ubuntu 20.04+ is required.\n\n```sh\nsudo apt-get update\nsudo apt-get install python3 python3-pip xz-utils\n```\n\n## RHEL and Derivatives\nRHEL 8+ or compatible operating system required.\n```sh\nsudo yum install -y python3 python3-pip\n```\n\n\n# Installation and Upgrades\n```sh\n# To install (or upgrade)\npython3 -m pip install --user --upgrade --no-cache-dir volare\n\n# To verify it works\nvolare --version\n```\n\n# About the builds\nIn its current inception, volare supports builds of **sky130** and **gf180mcu** PDKs using [Open_PDKs](https://github.com/efabless/open_pdks), including the following libraries:\n\n|sky130|gf180mcu|\n|-|-|\n|sky130_fd_io|gf180mcu_fd_io|\n|sky130_fd_pr|gf180mcu_fd_pr|\n|sky130_fd_sc_hd|gf180mcu_fd_sc_mcu7t5v0|\n|sky130_fd_sc_hvl|gf180mcu_fd_sc_mcu9t5v0|\n|sky130 sram modules|gf180mcu_fd_ip_sram|\n\nAll builds are identified by their **open_pdks** commit hash.\n\n# Usage\nVolare 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.\n\n## Listing All Available PDKs\nTo list all available pre-built PDKs hosted in this repository, you can just invoke `volare ls-remote --pdk \u003cPDK\u003e`. If you omit the `--pdk` argument, `sky130` will be used as a default.\n\n```sh\n$ volare ls-remote --pdk sky130\nPre-built sky130 PDK versions\n├── 44a43c23c81b45b8e774ae7a84899a5a778b6b0b (2022.08.16) (enabled)\n├── e8294524e5f67c533c5d0c3afa0bcc5b2a5fa066 (2022.07.29) (installed)\n├── 41c0908b47130d5675ff8484255b43f66463a7d6 (2022.04.14) (installed)\n├── 660c6bdc8715dc7b3db95a1ce85392bbf2a2b195 (2022.04.08)\n├── 5890e791e37699239abedfd2a67e55162e25cd94 (2022.04.06)\n├── 8fe7f760ece2bb49b1c310e60243f0558977dae5 (2022.04.06)\n└── 7519dfb04400f224f140749cda44ee7de6f5e095 (2022.02.10)\n\n$ volare ls-remote --pdk gf180mcu\nPre-built gf180mcu PDK versions\n└── 120b0bd69c745825a0b8b76f364043a1cd08bb6a (2022.09.22)\n```\n\nIt 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.\n\n## Listing Installed PDKs\nTyping `volare ls --pdk \u003cpdk\u003e` 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.\n\n```sh\n$ volare ls --pdk sky130\n/home/test/volare/sky130/versions\n├── 44a43c23c81b45b8e774ae7a84899a5a778b6b0b (2022.08.16) (enabled)\n├── e8294524e5f67c533c5d0c3afa0bcc5b2a5fa066 (2022.07.29)\n└── 41c0908b47130d5675ff8484255b43f66463a7d6 (2022.04.14)\n```\n\n(If you're not connected to the Internet, the release date of the commit will not be included.)\n\n\n## Downloading and Enabling PDKs\nYou can enable a particular sky130 PDK by invoking `volare enable --pdk \u003cpdk\u003e \u003copen_pdks commit hash\u003e`. This will automatically download that particular version of the PDK, if found, and set it as your currently used PDK.\n\nFor example, to activate a build of sky130 using open_pdks `7519dfb04400f224f140749cda44ee7de6f5e095`, you invoke `volare enable --pdk sky130 7519dfb04400f224f140749cda44ee7de6f5e095`, as shown below:\n\n```sh\n$ volare enable --pdk sky130 7519dfb04400f224f140749cda44ee7de6f5e095\nDownloading pre-built tarball for 7519dfb04400f224f140749cda44ee7de6f5e095… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nUnpacking…                                                                  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nPDK version 7519dfb04400f224f140749cda44ee7de6f5e095 enabled.\n```\n\nWhat's more is: if you're using a repository with a `tool_metadata.yml` file, such as [OpenLane](https://github.com/The-OpenROAD-Project/OpenLane) or [DFFRAM](https://github.com/Cloud-V/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.\n\n## Building PDKs\nFor special cases, you may have to build the PDK yourself, which Volare does support.\n\nYou'll need Magic installed and in PATH. You can either do that manually or, if you have [Nix](https://nixos.org), invoke `nix shell github:efabless/openlane2#magic` before building.\n\nYou 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.\n\n# License\nThe Apache License, version 2.0. See 'License'.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fefabless%2Fvolare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fefabless%2Fvolare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fefabless%2Fvolare/lists"}