This repository converts the SkyWater 130 nm PDK into the format required by mflowgen for running a digital flow. mflowgen requires the following files in view_standard
directory (for now, we will perform the setup for only regular VT cells, in typical corner). Once complete, your folder should have the following:
adk.tcl
calibre-drc-block.rule
calibre.layerprops
calibre-lvs.rule
magicrc
netgen_setup.tcl
primitives.v
rtk-stream-out.map
rtk-tech.lef
rtk-tech.tf
rtk-typical.captable
stdcells.cdl
stdcells.db
stdcells.gds
stdcells.lef
stdcells.lib
stdcells.mwlib/ # Directory
stdcells.spi
stdcells.v
All of the steps below are automated by scripts in their respective folders. The python and/or shell script can be modified to automate hotfixes as the sky130A pdk is updated.
Running make all
will build the entire adk.
- Edit the environment variables in
setenv.csh
to point to the top folder of your PDK repository and open_pdks (or volare) generated sky130A files. make rtk_lef
copies the technology lef file intortk-tech.lef
. LEF generation in Innovus requires an OVERLAP layer, and a cut layer is required between the non-routing layers (nwell/pwell/poly) and local interconnect.generate_rtk_lef/generate_rtk_lef.sh
performs the hotfixes documented here: google/skywater-pdk-libs-sky130_fd_sc_hd#5.make captable
createsrtk-typical.captable
. This takes several hours!make lib
copies the typical lib file from open_pdks. Note that the copied lib file does not work out-of-box with the commercial tools. Hotfixes are documented in thegenerate_lib
folder'sREADME.md
.make sc_lef
generatesstdcells.lef
by copying the open_pdks version.make spi
generatesstdcells.spi
by copying the open_pdks version.make cdl
generatesstdcells.cdl
by copying the open_pdks version.make verilog
generatesstdcells.v
by copying the open_pdks stdcells and primitives verilog files.make db
generatesstdcells.db
using Library Compiler'slc_shell
.make milkyway
generatesstdcells.mwlib
andrtk-tech.tf
following the steps ingenerate_milkyway/README.md
.make gds
generatesstdcells.gds
by copying the open_pdks version.rtk-stream-out.map
in theview-standard
directory is copied from https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc/+/refs/heads/master/flow/pnr/streamOut.map.adk.tcl
is handwritten looking at the lef and lib files.- The final files relate to Calibre and Magic to Check DRC and LVS:
- The final three calibre files are not available yet. We need to create some scripts that generate these files from the technology information in the PDK.
- As an alternative, we are using magic to check DRCs, and extract a SPICE netlist from the layout and netgen for LVS. Magic needs a
.magicrc
file to be in the folder from which magic is invoked. Netgen also needs a setup file. These files are obtained by runningmake magic
, which executes the two shell commands below:
cp ${SKYWATER130_HOME}/libs.tech/magic/sky130A.magicrc view-standard/magicrc
cp ${SKYWATER130_HOME}/libs.tech/netgen/sky130A_setup.tcl view-standard/netgen_setup.tcl