A compiler framework that automates translation from source code to silicon.
Project description
- 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
Mission
SiliconCompiler is an open source compiler framework that aims to automate translation from source code to silicon.
Project Overview
The SiliconCompiler project includes a standardized compiler data Schema, a Python object oriented API, and a distributed systems execution model. The project philosophy is to "make the complex possible while keeping the simple simple".
Intrigued? Check out the extensive documentation!
import siliconcompiler # import python package
chip = siliconcompiler.Chip() # create chip object
chip.load_target('freepdk45_demo') # load pre-defined flow
chip.set('source', 'heartbeat.v') # define list of sources
chip.set('design', 'heartbeat') # set top module name
chip.set('constraint', 'heartbeat.sdc') # define constraints
chip.set('remote', True) # compiler remotely
chip.run() # run compilation
chip.summary() # print run summary
chip.show() # show layout
Command Line Interface
Command line interface programs are very effective for quick experimentation. SiliconCompiler includes a command line program 'sc', with full support for all compiler schema parameters. For simple designs, compiling using sc is as easy as using gcc or llvm.
pip install siliconcompiler
echo "module flipflop (input clk, d, output reg out); \
always @ (posedge clk) out <= d; endmodule"> flipflop.v
sc flipflop.v -remote
More complex designs are handled by simply adding more options.
sc hello.v add.v -remote -constraint hello.sdc -target "skywater130_demo"
Installation
SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and Linux platforms. Full complete installation instructions see the Installation Guide. If you already have a working Python 3.6-3.10 environment, just use pip:
python -m pip install siliconcompiler
To install the project from source (supported on Linux and macOS platforms):
git clone https://github.com/siliconcompiler/siliconcompiler
cd siliconcompiler
git submodule update --init --recursive third_party/tools/openroad
pip install -r requirements.txt
python -m pip install -e .
External Dependencies
Installation instructions for all external tools can be found in the Tools Directory. For the '-remote' option, there are no external dependencies.
Contributing
SiliconCompiler is an open-source project and welcomes contributions. To find out how to contribute to the project, see our Contributing Guidelines.
Issues / Bug Reports
We use GitHub Issues for tracking requests and bugs.
License
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 Distributions
Built Distributions
Hashes for siliconcompiler-0.9.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97927b7e482531a8517d6010c524c201ad3bfab4706fc534a14536b215dbca5c |
|
MD5 | 1b4cf3b9c9ec47199bcab246635538dd |
|
BLAKE2b-256 | 38a7866e1f5cfac749032b1be355a95f606511df5ed8f2b34f856227507f1c35 |
Hashes for siliconcompiler-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ffd4daf94fbb60784ea5926a1ed6edf9bab2cd8d8f66e478e8a810f51529b48 |
|
MD5 | 52302bc4d7d7cc7f4cc5030ff452872b |
|
BLAKE2b-256 | b5fdfd7dcf5dbe4c60c21d1f9661c94f2de048f83bd7c99f30ae0ee832a42ad3 |
Hashes for siliconcompiler-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8a44b85d700be621adb3828ee29681cc73b04be45367f916a9670828b8bd97f |
|
MD5 | f0e2d0bc017d59522ff0627aeb5d8893 |
|
BLAKE2b-256 | a0089840fa89d3cf003a4d18bf11d8dec066a77048b9ac71c2c505da9b81d306 |
Hashes for siliconcompiler-0.9.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb8ba8d29f6f0c7909effd2fb7dcdbbbea2bc69af13611740d866ada4376c847 |
|
MD5 | 0cb34b6f9ab6d7aa7f7c205a4ce76e59 |
|
BLAKE2b-256 | 55592ef2b0f517b97b4d49a8121830bee84d9c1e59f08f3c9f017246b9d4521b |
Hashes for siliconcompiler-0.9.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a595718c2aef3ef10088a524704c4254c8243a1dea6d81e8c72761dd19b2e8cb |
|
MD5 | 42d3da2306929aa073cb4d0d1020f166 |
|
BLAKE2b-256 | 464aaa8b5c124b32bfaa8e4d203a551274ec39636b26c5ddcf4a3a180088c216 |
Hashes for siliconcompiler-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1db1bce8c961b4ed170c249f0fc757b98c2d9b14394abcadc8a507805fbb707c |
|
MD5 | 3a7a52c9cd1a75a736c908992f1ce741 |
|
BLAKE2b-256 | 0cee6100efd5026439313a002945c005ebb8f6fe1486eebfc5f1a8bd2473fd1f |
Hashes for siliconcompiler-0.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e717a6afb846726c589acd1a7941d02439acaee58e180228512c15d62e3db895 |
|
MD5 | 6164a34df6c6da56bfc9499ba76c110d |
|
BLAKE2b-256 | 29fe9fc66d1b67af9a200d41a4b4f2e31d920cd5730d7f25732ece87efa6a22f |
Hashes for siliconcompiler-0.9.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2de324f6a768c3d81ea64c3a69966ba7cf3de572adddb608f2f710b61f136ee7 |
|
MD5 | b00e2bc0ff39edde48ae87ed24ee4aba |
|
BLAKE2b-256 | 9d08586389d4f634cd63afbfbc7fe940fa11ec8cb7d32f0977b6c0741f3f8c4e |
Hashes for siliconcompiler-0.9.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5106202558ff2cf2444d545cf22c34f5c48c7c512499b13805fc14297f334567 |
|
MD5 | 689599777b2220d7345bfa6245782285 |
|
BLAKE2b-256 | 1c6dab017d500d86cbddbcfadb8aa6b1291e7e9acb2f3931586b53bf744c70df |
Hashes for siliconcompiler-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59bdfc05f35db925898a2caf22b24086d8c8bba56a5a4a8992a0f065bd29c64d |
|
MD5 | 34dbca1048b59e11a2da217dbf2eb2cf |
|
BLAKE2b-256 | e9ee57cc38ac892eed761b6f611c55ef7ff9ac948e48af65557b41fa4e90a145 |
Hashes for siliconcompiler-0.9.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 728143b0d8e8aa7da1a41ea226a6acbff79c0a38d5d3ce2256461e0880cb0bf7 |
|
MD5 | efa3ea757e7756a1bff3bcad3f58c378 |
|
BLAKE2b-256 | 1200fd7b4fe69ef664bbbd87cd023acb76874fab87fdc55f175a15a5271a8ba4 |
Hashes for siliconcompiler-0.9.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb538eadc0c1d483d49113cbeeb16ab89a38f54ed568453b8ac9efa3b17c96e3 |
|
MD5 | 6b7d0590cfbf4c85978ff29334ea2a16 |
|
BLAKE2b-256 | c256d58dbae242f4e7e11945d32d4437028c2fe30a04964b90fb776198ffeb5d |
Hashes for siliconcompiler-0.9.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccdb8cfd6df6e888c40538e93d18eecfec79ebf8c4995a78b3093f2987c26cd2 |
|
MD5 | 00a5ef60cc2a45fd0c78b7277214af8f |
|
BLAKE2b-256 | f7c4978014894542edae638d725f2f60eb1a524f467b0b42a95cb9959ab210a2 |
Hashes for siliconcompiler-0.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e7058a6e772b4f5efaf1b87f26c7f12b80f9b6b65a9c7d7d90343ddd3f8e670 |
|
MD5 | fce92a483c8ec3707da2922a486aee31 |
|
BLAKE2b-256 | ab6f1363ddfa35e6f1526119be9e076fa077f543a6c60d8af33bae9f79da9a73 |
Hashes for siliconcompiler-0.9.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2209f616d3bc9352f0b31962000c805d654067990a03da7e23b7073a3f42eb0a |
|
MD5 | 6774650192eafb5cc2a745364c8f1b6b |
|
BLAKE2b-256 | 79414aeab42763aaf28304f520691863b651d49ffdb719c40efeeff05e2a22df |
Hashes for siliconcompiler-0.9.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fedb0d6cd7f729272835d4f82f36c70955f766ea6c81edb3e2027e1634a08e5 |
|
MD5 | 5ef996340b2e11f9816c48f96dc369ac |
|
BLAKE2b-256 | c8b3a6b437c1bbbec4b25b3bfcce90bf4a4a2eb1646ee196ed52a3751cd59ae7 |
Hashes for siliconcompiler-0.9.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c17aeca586a72d82aff0252455560d31faa8e9f6a6ce042c33bf2854acc4e3e3 |
|
MD5 | b8ae5670a5fbf22717e31afc2cb5b007 |
|
BLAKE2b-256 | fd23eed70b80ee14c4ecd19e268f72ecac7c804d49af3e0838791e10fe26d398 |
Hashes for siliconcompiler-0.9.0-cp36-cp36m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69c193cc9f1936a465ff0748a1743f08fb4d0202e47b010397d4450cd115668e |
|
MD5 | 1fec1714c511bd92ab8ac810a87ca82b |
|
BLAKE2b-256 | 81429482ac0c14ca899b36bb8b9f75bf489dfc721e9ea41dc5c0db33edb3437a |