# autopiper **Repository Path**: RepoMirror/autopiper ## Basic Information - **Project Name**: autopiper - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-12 - **Last Updated**: 2022-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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