2.4. Sky130 Technology Library
Hammer supports the Skywater 130nm Technology process. The SkyWater Open Source PDK is a collaboration between Google and SkyWater Technology Foundry to provide a fully open source Process Design Kit (PDK) and related resources, which can be used to create manufacturable designs at SkyWater’s facility.
2.4.1. PDK Setup
All Sky130 PDK files required for the Hammer VLSI flow can now be installed via conda by running:
conda install -c litex-hub open_pdks.sky130a
We recommend using the conda install, but the manual PDK setup is documented below (although it may be outdated).
Now in your Hammer YAML configs, point to the location of this install:
2.4.2. SRAM Macros
If you are using SRAMs in your design, such as for the Chipyard Sky130 tutorial, you will require a set of SRAM macros. The Sky130 PDK did not come with it’s own SRAM macros, so these have been generated by various third-party contributors. Hammer is compatible with Sky130 SRAM macros generated by Sram22 and OpenRAM, but starting with Hammer v1.0.2 only Sram22 macros will be supported. To obtain these macros, clone their github repo:
git clone https://github.com/rahulk29/sram22_sky130_macros
Then set the respective Hammer YAML key:
Note that the various configurations of the SRAMs available are encoded in the file
To modify this file to include different configurations, or switch to using the OpenRAM SRAMs,
./extra/[sram22|openram] and run the script
./sram-cache-gen.py for usage information.
2.4.3. NDA Files
The NDA version of the Sky130 PDK is only required for Siemens Calibre to perform DRC/LVS signoff with the commercial VLSI flow. It is NOT REQUIRED for the remaining commercial flow, as well as the open-source tool flow. Therefore this NDA PDK is not used to generate a GDS.
If you have access to the NDA repo, you should add this path to your Hammer YAML configs:
We use the Calibre decks in the
s8 PDK, version
see here for the DRC deck path
and here for the LVS deck path.
The good thing about this process being open-source is that most questions about the process are answerable through a google search. The tradeoff is that the documentation is a bit of a mess, and is currently scattered over a few pages and Github repos. We try to summarize these below.
Various pre-compiled sizes of SRAM macros to support Hammer Sky130 flow
Open-source SRAM generator
Currently only supports the Sky130 process
Very much under development, and some parts currently require commercial tools (for LEF and LIB generation)
Precompiled sizes are 1kbytes, 2kbytes and 4kbytes
Open-source static random access memory (SRAM) compiler
Git repo of the main Skywater 130nm files
Git repo of Open-PDKs tool that compiles the Sky130 PDK
Additional useful repos, such as Berkeley Analog Generator (BAG) setup
SkyWater SKY130 PDK’s documentation
Main documentation site for the PDK
Join the SkyWater PDK Slack Channel
By far the best way to have questions about the process answered, with 80+ channels for different topics
Skywater130 Standard Cell and Primitives Overview
Additional useful documentation for the PDK
2.4.5. Manual PDK Setup
220.127.116.11. PDK Structure
OpenLANE expects a certain file structure for the Sky130 PDK.
We recommend adhering to this file structure for Hammer as well.
All the files reside in a root folder (named something like
The environment variable
$PDK_ROOT should be set to this folder’s path:
$PDK_ROOT contains the following:
Original PDK source files
install of Open-PDKs tool
output files from Open-PDKs compilation process
18.104.22.168. Prerequisites for PDK Setup
tricky to install, closely follow the directions on the
Installpage of the website
as the directions indicate, you will likely need to manually specify the location of the Tcl/Tk package installation using
If using conda, these installs alone caused the Magic install to work:
conda install -c intel tcl conda install -c anaconda tk conda install -c anaconda libglu
22.214.171.124. PDK Install
$PDK_ROOT, clone the skywater-pdk repo and generate the liberty files for each library:
git clone https://github.com/google/skywater-pdk.git cd skywater-pdk # Expect a large download! ~7GB at time of writing. git submodule init libraries/*/latest git submodule update # Regenerate liberty files make timing
$PDK_ROOT, clone the open_pdks repo and run the install process to generate the
git clone https://github.com/RTimothyEdwards/open_pdks.git cd open_pdks ./configure \ --enable-sky130-pdk=$PDK_ROOT/skywater-pdk/libraries \ --prefix=$PDK_ROOT \ make make install
This generates all the Sky130 PDK files and installs them to