MCPcopy Index your code
hub / github.com/calyxir/calyx

github.com/calyxir/calyx @v0.7.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.7.1 ↗ · + Follow
3,870 symbols 13,112 edges 359 files 1,583 documented · 41%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Built with Depot

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 compiler * [calyx-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.

Extension points exported contracts — how you extend this code

Named (Interface)
Trait that describes named things. Calling [`do_pass`](Visitor::do_pass) and [`do_pass_default`](Visitor::do_pass_defaul [46 …
calyx-opt/src/traversal/construct.rs
GetAttributes (Interface)
Structs that can return an [`Attributes`] instance. [17 implementers]
calyx-frontend/src/attributes.rs
Backend (Interface)
A backend for Calyx. [9 implementers]
calyx-backend/src/traits.rs
Interpreter (Interface)
The core interpreter trait which defines the methods each interpretation construct must support. This trait is implement [10 …
interp/src/interpreter/interpreter_trait.rs
GetName (Interface)
A trait representing something in the IR that has a name. [5 implementers]
calyx-utils/src/id.rs
QueryResult (Interface)
Describes the result of document queries that potentially need to access other documents. For example, to jump to defini [2 …
calyx-lsp/src/query_result.rs
EmitBuild (Interface)
Code to emit a Ninja `build` command. [2 implementers]
fud2/fud-core/src/run.rs
GetMemInfo (Interface)
Returns a vector of tuples containing external memory info of [comp] of form: [(WIDTH, SIZE, IDX_SIZE)] [2 implementers]
calyx-ir/src/utils.rs

Core symbols most depended-on inside this repo

borrow
called by 797
interp/src/debugger/cidr.rs
unwrap
called by 543
calyx-py/calyx/builder.py
map
called by 478
frontends/mrxl/mrxl/parse.py
clone
called by 288
calyx-ir/src/common.rs
into
called by 217
interp/src/structures/values.rs
iter
called by 177
calyx-opt/src/passes/well_formed.rs
iter
called by 152
calyx-ir/src/component.rs
append
called by 151
calyx-ir/src/component.rs

Shape

Method 2,471
Function 719
Class 550
Enum 95
Interface 34
Route 1

Languages

Rust71%
Python28%
TypeScript1%
C++1%
C1%

Modules by API surface

calyx-py/calyx/builder.py142 symbols
calyx-frontend/src/parser.rs104 symbols
calyx-py/calyx/py_ast.py101 symbols
tools/btor2/verible_verilog_syntax.py59 symbols
interp/src/flatten/flat_ir/base.rs56 symbols
calyx-ir/src/structure.rs53 symbols
interp/src/tests/primitives.rs48 symbols
interp/src/structures/values.rs46 symbols
calyx-ir/src/control.rs45 symbols
fud/fud/errors.py43 symbols
interp/src/debugger/context.rs42 symbols
interp/src/structures/stk_env.rs38 symbols

For agents

$ claude mcp add calyx \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page