Package: volare
⛰️ VolareVolare is a version manager (and builder) for builds ofGoogle open-source PDKsusingopen_pdks.RequirementsPython 3.6+ with PIPmacOS or GNU/LinuxmacOSGetHomebrewthen:brewinstallpython3Debian and UbuntuDebian 10+ or Ubuntu 18.04+ is required.sudoapt-getupdate
sudoapt-getinstallpython3python3-pipxz-utilsRHEL and DerivativesRHEL 7+ or compatible operating system required.sudoyuminstall-ypython3python3-pipInstallation and Upgrades# To install (or upgrade)python3-mpipinstall--upgrade--no-cache-dirvolare# To verify it worksvolare--versionTroubleshootingWith a typical Python 3.6 or higher installation with PIP, installingvolareis as simple as apip install. Despite that, there are some peculiarities with PIP itself: For example, you may see a warning among these lines:WARNING:Thescriptvolareisinstalledin'/home/test/.local/bin'whichisnotonPATH.ConsideraddingthisdirectorytoPATHor,ifyouprefertosuppressthiswarning,use--no-warn-script-location.The solution is as simple as adding something like this to your shell's profile:exportPATH="/home/test/.local/bin:$PATH"Do note that the path (/home/test/.local/binin this example) varies depending on your operating system and version of Python you install, and whether you usesudo(absolutely not recommended) or not, so ensure that you actually read the warning and add the correct path.About the buildsIn its current inception, volare supports builds ofsky130andgf180mcuPDKs usingOpen_PDKs, including the following libraries:sky130gf180mcusky130_fd_iogf180mcu_fd_iosky130_fd_prgf180mcu_fd_prsky130_fd_sc_hdgf180mcu_fd_sc_mcu7t5v0sky130_fd_sc_hvlgf180mcu_fd_sc_mcu9t5v0sky130 sram modulesgf180mcu_fd_ip_sramAll builds are identified by theiropen_pdkscommit hash.UsageVolare requires a so-calledPDK Root. This PDK root can be anywhere on your computer, but by default it's the folder~/.volarein your home directory. If you have the variablePDK_ROOTset, volare will use that instead. You can also manually override both values by supplying the--pdk-rootcommandline argument.Listing All Available PDKsTo list all available pre-built PDKs hosted in this repository, you can just invokevolare ls-remote --pdk <PDK>. If you omit the--pdkargument,sky130will be used as a default.$volarels-remote--pdksky130
Pre-builtsky130PDKversions
├──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)$volarels-remote--pdkgf180mcu
Pre-builtgf180mcuPDKversions
└──120b0bd69c745825a0b8b76f364043a1cd08bb6a(2022.09.22)It includes a commit hash, which is theopen_pdksversion 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 PDKsTypingvolare ls --pdk <pdk>in the terminal shows you your PDK Root and the PDKs you currently have installed. Again, if you omit the--pdkargument,sky130will be used as a default.$volarels--pdksky130
/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 PDKsYou can enable a particular sky130 PDK by invokingvolare 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_pdks7519dfb04400f224f140749cda44ee7de6f5e095, you invokevolare enable --pdk sky130 7519dfb04400f224f140749cda44ee7de6f5e095, as shown below:$volareenable--pdksky1307519dfb04400f224f140749cda44ee7de6f5e095
Downloadingpre-builttarballfor7519dfb04400f224f140749cda44ee7de6f5e095…━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:00
Unpacking…━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:00
PDKversion7519dfb04400f224f140749cda44ee7de6f5e095enabled.What's more is: if you're using a repository with atool_metadata.ymlfile, such asOpenLaneorDFFRAM, you can just invokevolare enable --pdk sky130without the commit hash and Volare will automatically extract the version required by the utility. Once again, if you omit the--pdkargument,sky130will be used as a default.Building PDKsFor special cases, i.e. you require other libraries, you'll have to build the PDK yourself, which Volare does support.You'll either need Magic installed or you'll need to pass the flag--build-magicto build Magic ad-hoc for the PDK build, the latter option of which is only supported on Linux and requires all of Magic's dependencies to be installed. On Ubuntu, that's:sudoapt-getinstall-ypython3tcshtcl-devtk-devlibcairo2-devm4You can invokevolare build --helpfor more options. Be aware, the built PDK won't automatically be enabled and you'll have tovolare enablethe appropriate version.LicenseThe Apache License, version 2.0. See 'License'.