Skip to main content

A compiler framework that automates translation from source code to silicon.

Project description

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
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 Magic, Synopsys, Siemens
PDKs sky130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16, ihp130

Getting Started

SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and Linux platforms. For working Python 3.8-3.12 environment, just use pip.

python3 -m pip install --upgrade siliconcompiler

Converting RTL into DRC clean GDS takes 10 lines of simple Python code.

from siliconcompiler import Chip                   # import python package
from siliconcompiler.targets import skywater130_demo
chip = Chip('heartbeat')                           # create chip object
chip.use(skywater130_demo)                         # load a pre-defined target
chip.input('heartbeat.v')                          # set input sources
chip.clock('clk', period=10)                       # set constraints
chip.set('option','remote', True)                  # enable remote execution
chip.run()                                         # run compilation
chip.summary()                                     # print summary
chip.show()                                        # show layout

Simple designs can be compiled in a single line using the built in command line 'sc' app:

sc -remote -target "asic_demo"

Why SiliconCompiler?

  • Ease-of-use: Programmable with a simple Python API
  • Portability: Powerful dynamic JSON schema supports ASIC and FPGA design and simulation
  • Speed: Flowgraph execution model enables cloud scale execution.
  • Friction-less: Remote execution model enables "zero install" compilation
  • Modularity: Tool abstraction layer makes it easy to add/port new tools to the project.
  • Provenance: Compilation manifests created automatically during execution.
  • Documented: An extensive set of auto-generated high quality reference documents.
  • In-use: Actively used by Zero ASIC for commercial tapeouts at advanced process nodes.

Documentation

The full reference manual and tutorials can be found HERE.

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 pip install -e .             # Required install step
python3 -m pip install -e .[docs,test]  # Optional install step for generating docs and running tests

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. See the ./setup directory for a complete set of scripts and ./setup/_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.

Issues / Bugs

We use GitHub Issues for tracking requests and bugs.

More information

Resources Link
Website https://www.siliconcompiler.com
Documentation https://docs.siliconcompiler.com
Sources https://github.com/siliconcompiler/siliconcompiler
Issues https://github.com/siliconcompiler/siliconcompiler/issues
RFCs https://github.com/siliconcompiler/rfcs
Discussion https://github.com/siliconcompiler/siliconcompiler/discussions

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siliconcompiler-0.28.5.tar.gz (527.3 kB view details)

Uploaded Source

Built Distribution

siliconcompiler-0.28.5-py3-none-any.whl (652.9 kB view details)

Uploaded Python 3

File details

Details for the file siliconcompiler-0.28.5.tar.gz.

File metadata

  • Download URL: siliconcompiler-0.28.5.tar.gz
  • Upload date:
  • Size: 527.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for siliconcompiler-0.28.5.tar.gz
Algorithm Hash digest
SHA256 009c25bfc391affa4b8c4be91053f89d4747340a63be94dd1d39d37067de1e0f
MD5 56a1f0b79b35bbd56bc5d0a76e6063c7
BLAKE2b-256 4c4addbc425f51f1b9cf34a0c0350ecb84ec6c1344ab0a513772eac052b3d208

See more details on using hashes here.

Provenance

The following attestation bundles were made for siliconcompiler-0.28.5.tar.gz:

Publisher: wheels.yml on siliconcompiler/siliconcompiler

Attestations:

File details

Details for the file siliconcompiler-0.28.5-py3-none-any.whl.

File metadata

File hashes

Hashes for siliconcompiler-0.28.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0a999b32b54460f09cdbc5744f422fd6c443c1ba692a583e01df3fbdd80723a5
MD5 2b7f199d0b09a65cf946f342e5d62b3b
BLAKE2b-256 2fda86c3f51cb84745306874034c6cf1393d3420f07c8644a57ad3ad7f15c905

See more details on using hashes here.

Provenance

The following attestation bundles were made for siliconcompiler-0.28.5-py3-none-any.whl:

Publisher: wheels.yml on siliconcompiler/siliconcompiler

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page