6.1. Introduction with Sky130 and OpenROAD

The following directions will get a simple pass design from RTL to GDS using the OpenROAD tools and the Skywater 130nm PDK. These directions are meant to provide the minimal set of steps to do so, please reference the next section, Hammer End-to-End Integration Tests, for more detailed descriptions of all files and commands.

6.1.1. Instructions

First, follow the Hammer Developer Setup to clone Hammer and install/activate the poetry virtual environment.

Next, run the setup script to install the OpenROAD tools using Conda, and Skywater 130nm PDK using the Open-PDKs tool. This step will take a long time due to the amount and size of the required installs. You should supply a PREFIX path to a directory that will serve as the root of all PDK files and supporting tools (total size of all files is ~42GB), otherwise the script will default to installing to your home directory (~/).

cd hammer/e2e
./scripts/setup-sky130-openroad.sh [PREFIX]

You should now have a file configs-env/my-env.yml containing all required tool and technology paths for this tutorial. To point to your custom environment setup, set the Make variable env=my. Additionally, we set the design, pdk, and tools Make variables to the appropriate RTL design, PDK, and tools flow, respecively. Now simply run the VLSI flow:

make design=pass pdk=sky130 tools=or env=my build
make design=pass pdk=sky130 tools=or env=my syn
make design=pass pdk=sky130 tools=or env=my par
make design=pass pdk=sky130 tools=or env=my drc
make design=pass pdk=sky130 tools=or env=my lvs

After Place-and-Route completes, the final database can be opened in an interactive OpenROAD session. Hammer generates a convenient script to launch these sessions:

cd ./build-sky130-or/pass/par-rundir

After DRC and LVS complete, the final results may be viewed with the following scripts:

# View DRC results:
cd ./build-sky130-or/pass/drc-rundir

# View LVS results:
cd ./build-sky130-or/pass/lvs-rundir

Congrats, you’ve just run your pass design from RTL to GDS with Hammer!

6.1.2. Next Steps

At this point, you should go through the Hammer End-to-End Integration Tests documentation to learn how to configure Hammer further. We’ve also outlined some common next steps below. Commercial flow

This flow may be run with commercial tools by setting the Make variable tools=cm, which selects the tool plugins via configs-tools/cm.yml. You will need to create a custom environment YAML file with your environment configuration, in configs-env/<my_custom>-env.yml. As a minimum, you must specify YAML keys below for the CAD tool licenses and versions/paths of the tools you are using, see examples in configs-env/.

    # Commercial tool licenses/paths
    mentor.mentor_home: "" # Base path to where Mentor tools are installed
    mentor.MGLS_LICENSE_FILE: "" # Mentor license server/file
    cadence.cadence_home: "" # Base path to where Cadence tools are installed
    cadence.CDS_LIC_FILE: "" # Cadence license server/file
    synopsys.synopsys_home: "" # Base path to where Synopsys tools are installed
    synopsys.SNPSLMD_LICENSE_FILE: "" # Synopsys license server/files
    synopsys.MGLS_LICENSE_FILE: ""
    # Commercial tool versions/paths
    sim.vcs.version: ""
    synthesis.genus.version: "" # NOTE: for genus/innovus/joules, must specify binary path if version < 221
    par.innovus.version: ""
    power.joules.joules_bin: ""

Now re-run a similar flow as before, but pointing to your environment and the commercial tool plugins:

make design=pass pdk=sky130 tools=cm env=<my_custom> build

Running DRC/LVS with commercial tools requires access to an NDA-version of the Skywater PDK. We support running DRC/LVS with either Cadence Pegasus or Siemens Calibre. See the Sky130 documentation for how to point to the NDA PDKs and run DRC/LVS with their respective tools. Chipyard flow

Follow these directions in the Chipyard docs to build your own Chisel SoC design with OpenROAD and Sky130.