Skip to main content

SiliconCompiler

Python CI Tests Tools CI Tests Daily CI Tests Wheels Lint Documentation Status codecov Downloads

Introduction

SiliconCompiler is a modular hardware build system ("make for silicon"). The project philosophy is to "make the complex possible while keeping the simple simple".

Supported Technologies

Type Supported
Design Languages C, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec, MLIR
Simulation Tools Verilator, Icarus, GHDL, Xyce
Synthesis Yosys, Vivado, Synopsys, Cadence
ASIC APR OpenROAD, Synopsys, Cadence
FPGA APR VPR, nextpnr, Vivado
Layout Viewer Klayout, OpenROAD, Cadence, Synopsys
DRC/LVS Klayout, Magic, Synopsys, Siemens
Open PDKs sky130, ihp130, gf180, asap7, freepdk45, gt2n, icsprout55, interposer — all shipped by lambdapdk
Foundry PDKs gf12lp, gf22fdx, intel16 — require a foundry agreement; package them yourself following the external library guide

Getting Started

SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and Linux platforms. For working Python 3.10-3.14 environment, just use pip. On Windows, use Docker or remote execution — local tool flows are supported on Linux and macOS.

pip install --upgrade siliconcompiler

Converting RTL into DRC clean GDS takes 13 lines of simple Python code. (asicflow reports geometric violations from detailed routing as the drcs metric, and electrical ones — slew, capacitance, fanout, antenna — as drvs. Signoff DRC and LVS run in the separate signoffflow.)

from siliconcompiler import ASIC, Design               # import python package
from siliconcompiler.targets import skywater130_demo
design = Design("heartbeat")                           # create design object
design.set_topmodule("heartbeat", fileset="rtl")       # set top module
design.add_file("heartbeat.v", fileset="rtl")          # add input sources
design.add_file("heartbeat.sdc", fileset="sdc")        # add input sources
project = ASIC(design)                                 # create project
project.add_fileset(["rtl", "sdc"])                    # enable filesets
skywater130_demo(project)                              # load a pre-defined target
project.option.scheduler.set_name("docker")            # run the tools in containers
project.run()                                          # run compilation
project.summary()                                      # print summary
project.show()                                         # show layout

Not building an ASIC?

The example above is an ASIC build, but the same Design feeds every flow. The project class is what decides what happens to it:

Goal Class Tools needed Start here
Lint your RTL Lint none Lint your RTL
Simulate, or prove properties formally Sim Verilator, Icarus, GHDL or SymbiYosys Simulate and verify
Build an FPGA bitstream FPGA Yosys, plus VPR or nextpnr Build for an FPGA

Linting is the quickest way to see SiliconCompiler work: the default linter ships as a Python package, so it needs no EDA tools installed at all. For a complete FPGA build with no EDA tools installed locally, the demo runs in containers:

python3 -m siliconcompiler.demos.fpga_demo -scheduler docker

Why SiliconCompiler?

Documentation

New here? Start with the Quickstart guide, which walks through the example above line by line.

The SiliconCompiler reference manual and tutorials cover the rest.

License

Apache License 2.0

How to Cite

If you want to cite our work, please use the following paper:

A. Olofsson, W. Ransohoff, N. Moroze, "Invited: A Distributed Approach to Silicon Compilation", 59th Design Automation Conference (DAC), 10-14 July 2022, San Francisco, CA, USA. Published, 7/2022.

Bibtex:

@inproceedings{10.1145/3489517.3530673,
  author = {Olofsson, Andreas and Ransohoff, William and Moroze, Noah},
  title = {A Distributed Approach to Silicon Compilation: Invited},
  year = {2022},
  booktitle = {Proceedings of the 59th ACM/IEEE Design Automation Conference},
  pages = {1343–1346},
  location = {San Francisco, California}
}

Installation

Complete installation instructions are available in the Installation Guide.

To install the project from source (recommended for developers only).

git clone https://github.com/siliconcompiler/siliconcompiler
cd siliconcompiler
python3 -m venv .venv        # Setup virtual environment
source .venv/bin/activate
pip install --upgrade pip    # Update pip
pip install -e .             # Required install step
pip install -e .[test,lint]  # Optional install step for running tests and lint
pip install -e .[docs]       # Optional install step for generating docs

EDA Tool Installation

Installation instructions for all external tools can be found in the External Tools section of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools, which can be accessed via sc-install. See the siliconcompiler/toolscripts directory for a complete set of scripts and siliconcompiler/toolscripts/_tools.json for the currently recommended tool versions.

Contributing

SiliconCompiler is an open-source project and welcomes contributions. To find out how to contribute to the project, see our Contributing Guidelines.

Getting help

Discussions is the best place to ask a question. The Help (Q&A) category is actively answered and is worth searching before you post — the answer to "how do I harden a macro", "how are filesets ordered" or "why won't this PDK build" is often already there.

Also useful:

We use GitHub Issues for tracking requests and bugs. If you hit a tool failure, sc-issue packages a runnable test case to attach.

More information

Resources Link
Website https://www.siliconcompiler.com
Documentation https://docs.siliconcompiler.com
Discussions https://github.com/siliconcompiler/siliconcompiler/discussions
Sources https://github.com/siliconcompiler/siliconcompiler
Issues https://github.com/siliconcompiler/siliconcompiler/issues
Open PDKs https://github.com/siliconcompiler/lambdapdk — every open PDK and standard cell library SiliconCompiler ships
Portable RTL libraries https://github.com/siliconcompiler/lambdalib — technology-independent blocks, including the pad ring

Metadata

Release files for siliconcompiler 0.38.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for siliconcompiler 0.38.9
File Size Uploaded
siliconcompiler-0.38.9.tar.gz 4.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for siliconcompiler 0.38.9
File Interpreter ABI Platform
siliconcompiler-0.38.9-py3-none-any.whl Python 3 none any Details

Total release size: 8.6 MB

Release files / siliconcompiler-0.38.9.tar.gz

Download URL siliconcompiler-0.38.9.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
fc171e8f5c30e0ee3df57a6c0519343f9482be99b0b6dd1376a983d92e50eb73
BLAKE2b-256 checksum
How to use checksums
8f46f8583c6c016a086598e655589e3acfd8f9caf95308ad1682ad286c1cae9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / siliconcompiler-0.38.9-py3-none-any.whl

Download URL siliconcompiler-0.38.9-py3-none-any.whl
Size 4.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cd4bf8f859849dda4d7e246ca683c4bf51edfdd1da4f7ccc2e72a273a5f285d2
BLAKE2b-256 checksum
How to use checksums
8cff48a6050d36cc716eae3afa8fc2a6125921fc2ee25951122e36dd57741c4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.38.9 This release

2 release files

0.38.8

2 release files

0.38.5

2 release files

0.38.4

2 release files

0.38.3

2 release files

0.38.2

2 release files

0.37.7

2 release files

0.37.6

2 release files

0.37.4

2 release files

0.37.3

2 release files

0.37.1

2 release files

0.37.0

2 release files

0.36.4

2 release files

0.36.3

2 release files

0.36.2

2 release files

0.36.1

2 release files

0.35.3

2 release files

0.35.2

2 release files

0.35.1

2 release files

0.34.3

2 release files

0.34.2

2 release files

0.34.0

2 release files

0.33.1

2 release files

0.33.0

2 release files

0.32.3

2 release files

0.32.2

2 release files

0.32.1

2 release files

0.32.0

2 release files

0.30.0

2 release files

0.29.3

2 release files

0.29.2

2 release files

0.29.0

2 release files

0.28.9

2 release files

0.28.8

2 release files

0.28.7

2 release files

0.28.6

2 release files

0.28.4

2 release files

0.28.3

2 release files

0.28.1

2 release files

0.28.0

1 release file

0.27.1

1 release file

0.27.0

1 release file

0.26.5

1 release file

0.9.5

18 release files

0.9.4

18 release files

0.9.2

18 release files

0.9.1

18 release files

0.9.0

18 release files

0.6.0

18 release files

0.3.1

18 release files

0.3.0

18 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page