Git Product home page Git Product logo

hohe / siliconcompiler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from siliconcompiler/siliconcompiler

0.0 0.0 0.0 218.13 MB

SiliconCompiler is an open source build system that automates translation from source code to silicon.

License: Apache License 2.0

Python 86.20% Tcl 4.27% Verilog 0.19% Shell 1.55% Jinja 1.40% CMake 0.25% Cython 3.79% VHDL 0.06% Batchfile 0.13% SystemVerilog 1.79% Scala 0.19% C 0.05% Bluespec 0.06% Dockerfile 0.07%

siliconcompiler's Introduction

SC logo

Quick CI Tests Daily CI Tests Documentation Wheels Downloads

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

Apache License 2.0

siliconcompiler's People

Contributors

aolofsson avatar bsanzhiev avatar hohe avatar nmoroze avatar sconvent avatar wransohoff avatar zyedidia avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.