Package: siliconcompiler
IntroductionSiliconCompiler is a modular hardware build system ("make for silicon"). The project philosophy is to "make the complex possible while keeping the simple simple".Supported TechnologiesTypeSupportedDesign LanguagesC, Verilog, SV, VHDL, Chisel, Migen/Amaranth, BluespecSimulation ToolsVerilator, Icarus, GHDL, XyceSynthesisYosys, Vivado, Synopsys, CadenceASIC APROpenRoad, Synopsys, CadenceFPGA APRVPR, nextpnr, VivadoLayout ViewerKlayout, OpenRoad, Cadence, SynopsysDRC/LVSMagic, Synopsys, SiemensPDKssky130, asap7, freepdk45, gf12lp, gf22fdx, intel16Getting StartedSiliconCompiler is available as wheel packages on PyPI for macOS, Windows and
Linux platforms. For working Python 3.8-3.12 environment, just use pip.python-mpipinstall--upgradesiliconcompilerConverting RTL into DRC clean GDS takes less than 10 lines of simple Python code.importsiliconcompiler# import python packagechip=siliconcompiler.Chip('heartbeat')# create chip objectchip.load_target('skywater130_demo')# load a pre-defined targetchip.input('heartbeat.v')# set input sourceschip.clock('clk',period=10)# set constraintschip.set('option','remote',True)# enable remote executionchip.run()# run compilationchip.summary()# print summarychip.show()# show layoutSimple 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 simplePython APIPortability:Powerful dynamic JSONschemasupports ASIC and FPGA design and simulationSpeed:Flowgraphexecution modelenables cloud scale execution.Friction-less:Remote execution modelenables "zero install" compilationModularity:Tool abstraction layermakes it easy to add/port new tools to the project.Provenance:Compilation manifestscreated 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.DocumentationThe full reference manual and tutorials can be foundHERE.LicenseApache License 2.0How to CiteIf 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}
}InstallationComplete installation instructions are available in theInstallation Guide.To install the project from source (recommended for developers only).gitclonehttps://github.com/siliconcompiler/siliconcompilercdsiliconcompiler
python-mpipinstall-e.# Required install steppython-mpipinstall-e.[docs,test]# Optional install step for generating docs and running testsEDA Tool InstallationInstallation instructions for all external tools can be found in theExternal Toolssection
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools.
See the./setupdirectory for a complete set of scripts and./setup/_tools.jsonfor the currently recommended tool versions.ContributingSiliconCompiler is an open-source project and welcomes contributions. To find out
how to contribute to the project, see ourContributing Guidelines.Issues / BugsWe useGitHub Issuesfor tracking requests and bugs.More informationResourcesLinkWebsitehttps://www.siliconcompiler.comDocumentationhttps://docs.siliconcompiler.comSourceshttps://github.com/siliconcompiler/siliconcompilerIssueshttps://github.com/siliconcompiler/siliconcompiler/issuesRFCshttps://github.com/siliconcompiler/rfcsDiscussionhttps://github.com/siliconcompiler/siliconcompiler/discussions