siliconcompiler
A compiler framework that automates translation from source code to silicon.
What it is and what it does
SiliconCompiler is a Python-based hardware build system that orchestrates the entire design flow from RTL (Verilog, SystemVerilog, VHDL, Chisel, MLIR) to fabrication-ready GDS. It abstracts over many industry EDA tools—synthesis (Yosys, Vivado, Synopsys), place-and-route (OpenROAD, VPR, nextpnr), simulation (Verilator, Icarus, GHDL), and DRC/LVS—through a unified Python API and dynamic JSON schema. The system supports ASIC design, FPGA builds, simulation, and linting, with built-in support for open PDKs (sky130, ihp130, gf180, asap7) via lambdapdk.
The package is designed to "make the complex possible while keeping the simple simple": a basic ASIC flow takes 13 lines of Python, yet the tool scales to commercial tapeouts at advanced nodes. It includes a remote execution model to avoid local tool installation, automatic compilation manifests for provenance, and a modular tool abstraction layer for adding new EDA tools. With 22 runtime dependencies (aiohttp, docker, pandas, Jinja2, PyYAML, etc.), it handles networking, containerization, templating, and data processing internally.
Use it for:
- Lint RTL designs without installing any EDA tools—the default linter ships as pure Python.
- Automate ASIC design flows from RTL to DRC-clean GDS using open PDKs (sky130, gf180) or foundry PDKs.
- Build FPGA bitstreams with Yosys, VPR, or nextpnr through a single Python interface.
- Run formal verification and simulation (Verilator, GHDL, SymbiYosys) as part of a unified design flow.
- Execute hardware builds remotely or in Docker to avoid local tool installation and enable cloud-scale compilation.
- Integrate hardware design into CI/CD pipelines using the programmatic Python API and automatic manifests.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
SiliconCompiler is a modular hardware build system that automates translation from source code (RTL, Chisel, MLIR, etc.) to silicon through a programmable Python API, supporting ASIC, FPGA, simulation, and linting workflows.
Yes. SiliconCompiler is actively maintained, has no known vulnerabilities, and offers low install friction (pure Python wheel). It is a mature, production-grade tool used for commercial tapeouts. Install it if you need to automate hardware design flows, integrate RTL-to-GDS into CI/CD, or explore ASIC/FPGA design without managing many EDA tools separately. The Apache-2.0 license poses no restrictions.
Install
siliconcompiler on PyPI
pip
pip install siliconcompileruv
uv add siliconcompilerpoetry
poetry add siliconcompilerInstalling siliconcompiler
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance (last commit 2026-08-14, 1199 GitHub stars). Requires Python 3.10–3.14. Most EDA tools are optional; linting works out-of-the-box. Remote execution available to avoid local tool installation.
License in practice
Apache-2.0 (permissive): you can use, modify, and distribute SiliconCompiler freely in commercial and open-source projects, with minimal restrictions beyond attribution and liability disclaimers.
Quickstart
pip install siliconcompiler
from siliconcompiler import ASIC, Design
from siliconcompiler.targets import skywater130_demo
design = Design("heartbeat")
design.set_topmodule("heartbeat", fileset="rtl")
design.add_file("heartbeat.v", fileset="rtl")
project = ASIC(design)
skywater130_demo(project)
project.run()
Requires Python 3.10 or later. Full ASIC/FPGA flows require external EDA tools (Yosys, OpenROAD, etc.); linting and remote execution work without local tools installed.
Verify before relying
- Whether remote execution is available by default or requires additional setup/credentials.
- Specific performance characteristics or scalability limits for large designs.
- Whether foundry PDK packaging (gf12lp, gf22fdx, intel16) requires proprietary agreements beyond what the package provides.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 22 — aiohttp, distro, docker, fastjsonschema, graphviz, orjson, packaging, requests, Pillow, PyYAML, GitPython, PyGithub, urllib3, lambdapdk, fasteners, tomli, backports.zstd, pandas, psutil, Jinja2, pyslang, rich |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 148,390/month — #11,037 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: siliconcompiler-0.38.4-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
dvsimDVSim is a Python-based build and run system…
permissive · top 15,000 on PyPI
edalizeEdalize abstracts the interface to EDA tools…
permissive · top 15,000 on PyPI
lambdalibLambdalib provides technology-agnostic hardware…
permissive · top 15,000 on PyPI
lambdapdkLambdapdk provides pre-configured, open-source…
permissive · top 5,000 on PyPI
fusesocFuseSoC is a package manager and build…
permissive · top 15,000 on PyPI
amaranthAmaranth is a Python-based hardware definition…
permissive · top 15,000 on PyPI
peakrdl-regblockCompiles SystemRDL register descriptions into…
copyleft · top 15,000 on PyPI
gdsfactoryplusGDSFactory+ extends the GDSFactory library with…
unclear · top 15,000 on PyPI
systemrdl-compilerParses and elaborates SystemRDL 2.0 register…
permissive · top 15,000 on PyPI
gdsfactoryGDSFactory generates CAD files (GDS, OASIS,…
unclear · top 15,000 on PyPI