![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
A compiler framework that automates translation from source code to silicon.
SiliconCompiler is a modular hardware build system ("make for silicon"). The project philosophy is to "make the complex possible while keeping the simple simple".
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 |
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"
The full reference manual and tutorials can be found HERE.
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}
}
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
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 ./siliconcompiler/toolscripts directory for a complete set of scripts and ./siliconcompiler/toolscripts/_tools.json for the currently recommended tool versions.
SiliconCompiler is an open-source project and welcomes contributions. To find out how to contribute to the project, see our Contributing Guidelines.
We use GitHub Issues for tracking requests and bugs.
FAQs
A compiler framework that automates translation from source code to silicon.
We found that siliconcompiler demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.