Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Modular hardware build system

License

NotificationsYou must be signed in to change notification settings

siliconcompiler/siliconcompiler

SiliconCompiler

Python CI TestsTools CI TestsDaily CI TestsWheelsLintDocumentation StatuscodecovDownloads

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

TypeSupported
Design LanguagesC, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec,MLIR
Simulation ToolsVerilator, Icarus, GHDL, Xyce
SynthesisYosys, Vivado, Synopsys, Cadence
ASIC APROpenROAD, Synopsys, Cadence
FPGA APRVPR, nextpnr, Vivado
Layout ViewerKlayout, OpenROAD, Cadence, Synopsys
DRC/LVSKlayout, Magic, Synopsys, Siemens
PDKssky130, ihp130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16

Getting Started

SiliconCompiler is available as wheel packages on PyPI for macOS, Windows andLinux platforms. For working Python 3.9-3.13 environment, just use pip.

pip install --upgrade siliconcompiler

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

fromsiliconcompilerimportASIC,Design# import python packagefromsiliconcompiler.targetsimportskywater130_demodesign=Design("heartbeat")# create design objectdesign.set_topmodule("heartbeat",fileset="rtl")# set top moduledesign.add_file("heartbeat.v",fileset="rtl")# add input sourcesdesign.add_file("heartbeat.sdc",fileset="sdc")# add input sourcesproject=ASIC(design)# create projectproject.add_fileset(["rtl","sdc"])# enable filesetsskywater130_demo(project)# load a pre-defined targetproject.set('option','remote',True)# enable remote executionproject.run()# run compilationproject.summary()# print summaryproject.show()# show layout

Note

The required files can be found at:heartbeat example

Why SiliconCompiler?

  • Ease-of-use: Programmable with a simplePython API
  • Portability: Powerful dynamic JSONschema supports ASIC and FPGA design and simulation
  • Speed: Flowgraphexecution 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 qualityreference documents.
  • In-use: Actively used by Zero ASIC for commercial tapeouts at advanced process nodes.

Documentation

The full reference manual and tutorials can be foundHERE.

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 theInstallation Guide.

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

git clone https://github.com/siliconcompiler/siliconcompilercd siliconcompilerpython3 -m venv .venv# Setup virtual environmentsource .venv/bin/activatepip install --upgrade pip# Update pippip install -e.# Required install steppip install -e .[test,lint]# Optional install step for running tests and lintpip install -e .[docs]# Optional install step for generating docs

EDA Tool Installation

Installation instructions for all external tools can be found in theExternal Tools sectionof the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools, which can be accessed viasc-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 outhow to contribute to the project, see ourContributing Guidelines.

Issues / Bugs

We useGitHub Issuesfor tracking requests and bugs.

More information

ResourcesLink
Websitehttps://www.siliconcompiler.com
Documentationhttps://docs.siliconcompiler.com
Sourceshttps://github.com/siliconcompiler/siliconcompiler
Issueshttps://github.com/siliconcompiler/siliconcompiler/issues
RFCshttps://github.com/siliconcompiler/rfcs
Discussionhttps://github.com/siliconcompiler/siliconcompiler/discussions

[8]ページ先頭

©2009-2025 Movatter.jp