MCPcopy Index your code
hub / github.com/fabianschuiki/llhd

github.com/fabianschuiki/llhd @v0.16.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.16.0 ↗ · + Follow
1,560 symbols 4,526 edges 62 files 701 documented · 45% updated 4y ago★ 43438 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LLHD

Build Status Released API docs Crates.io Crates.io dependency status

The Low Level Hardware Description language is an intermediate representation for digital circuit descriptions, together with an accompanying simulator and SystemVerilog/VHDL compiler.

LLHD separates input languages from EDA tools such as simulators, synthesizers, and placers/routers. This makes writing such tools easier, allows for more rich and complex HDLs, and does not require vendors to agree upon the implementation of a language.

Try it yourself!

LLHD is being developed as part of CIRCT, a larger community effort to establish an open hardware design stack.

Scientific Work

The scientific paper on LLHD is available on arXiv:

Are you interested in using open-source ideas to re-invent the hardware design software stack? Do you see LLHD as step one of a bigger picture and dream about extending it with formal verification, hardware synthesis, etc.? We are continuously looking for future PhD students and postdocs who are excited to work in this direction. For more details check out http://grosser.science or just write an informal email to tobias@grosser.es for us to discuss potential next steps.

Documentation

Extension points exported contracts — how you extend this code

Pass (Interface)
An optimization pass. The optimization infrastructure will always call `run_on_module()`. However, implementors of the [10 …
src/opt/pass.rs
Tracer (Interface)
A simulation tracer that can operate on the simulation trace as it is being generated. [3 implementers]
src/bin/llhd-sim/tracer/mod.rs
TableKey (Interface)
An opaque key to uniquely identify a table entry.
src/table.rs
Visitor (Interface)
A visitor for a Liberty file. [1 implementers]
src/bin/llhd-conv/liberty.rs

Core symbols most depended-on inside this repo

args
called by 217
src/ir/sig.rs
ins
called by 151
src/ir/unit.rs
iter
called by 125
src/table.rs
opcode
called by 74
src/ir/inst.rs
len
called by 73
src/ty.rs
value_type
called by 60
src/ir/unit.rs
get
called by 59
src/table.rs
blocks
called by 52
src/ir/inst.rs

Shape

Method 755
Function 659
Class 105
Enum 35
Interface 6

Languages

Rust99%
Python1%

Modules by API surface

src/assembly/grammar.rs546 symbols
src/ir/unit.rs135 symbols
src/ir/inst.rs108 symbols
src/bin/llhd-conv/liberty_parser.rs66 symbols
src/bin/llhd-sim/value.rs55 symbols
src/verifier.rs53 symbols
src/value/int.rs53 symbols
src/bin/llhd-sim/state.rs38 symbols
src/ir/module.rs35 symbols
src/ty.rs31 symbols
src/bin/llhd-sim/engine.rs30 symbols
src/pass/deseq.rs28 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page