A Compiler Infrastructure for Accelerator Generators
Calyx is an intermediate language and infrastructure for building compilers that generate custom hardware accelerators.
See the Calyx website, language documentation and the documentation for the source code for more information. Calyx's design is based on our paper.
Installation
Quick
If you want to try out the compiler, install it using cargo
:
cargo install calyx
This will install the calyx
binary can optimize and compile Calyx programs to Verilog or CIRCT.
Recommended
Follow the getting started instructions.
Organization
This repository contains the source code for the following:
calyx-utils
: Utilities for the Calyx compilercalyx-frontend
: Parser and frontend AST for the Calyx language.calyx-ir
: The Calyx intermediate language.calyx-opt
: Optimizations for the Calyx intermediate language.calyx
: The Calyx compiler driver.
You can also use the Calyx compiler as a library and implement your own optimizations. To do this, check out the example provided by the calyx-opt
crate.