Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/google/autopiper
https://github.com/google/autopiper
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/google/autopiper
- Owner: google
- License: apache-2.0
- Archived: true
- Created: 2014-10-08T22:33:47.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-26T22:18:04.000Z (over 8 years ago)
- Last Synced: 2024-01-25T23:45:14.608Z (5 months ago)
- Language: C++
- Size: 2.14 MB
- Stars: 45
- Watchers: 14
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-hdl - autopiper
- awesome-hdl - autopiper
README
Autopiper: automatic pipeline synthesis
---------------------------------------Autopiper is a pipeline synthesis tool that understands high-level constructs
and allows for automatic pipelining and automatic inference of low-level
microarchitectural 'plumbing' in RTL (Verilog). It has well-defined semantics
that allow for easier reasoning about digital systems at the level of
functional state, and allow leeway for formal transforms to produce *correct*
high-performance implementations.Autopiper is a research project -- this may or may not work! -- and is intended
for now more as a developed-in-the-open toy than a serious tool.Autopiper is developed by Chris Fallin ``. Autopiper's
copyright is assigned to Google Inc., but autopiper is an independent
side-project and is not an official Google product in any way.Current status
--------------The pipeline lowering / synthesis backend (IR to Verilog) has implemented the
key transforms, and works with small tests. Currently the frontend is in
development (parsing, typechecking/inference, codegen), after which the macro
layer will be developed alongside some larger test designs.In other words: it's not actually done yet! You can play with the current
functionality, i.e., lowering IR to pipeline form, by running autopiper on the
IR inputs in tests/.Building
--------Autopiper requires CMake, the Boost C++ libraries, and GMP (an
arbitrary-precision numeric library).On Ubuntu:
$ sudo apt-get install cmake libboost-dev libgmp-dev
On Arch Linux:
$ sudo pacman -Syu cmake boost gmp
Then create a build directory and compile the application:
$ mkdir build/
$ cd build/
$ cmake ..
$ make
$ src/autopiper --help