Skip to content
@AnvilHDL

Anvil

A general-purpose Hardware Description Language (HDL) for safer hardware design

AnvilHDL

A general purpose language for safer, yet expressive hardware design.

Try Anvil   ·   Documentation   ·   Research paper   ·   Community


Anvil is a general-purpose hardware description language (HDL) that gives designers control over registers and clock-cycle latency. Its type system ensures that values are used only while valid and that registers are not overwritten while still in use. This property is called timing safety and is enforced at compile time.

Anvil designs compile to synthesizable SystemVerilog.

Type system RTL expressiveness Hardware efficiency
Anvil's type system enforces timing safety modularly. Designers control registers and cycle-level latency. Anvil designs add no clock-cycle latency and have minimal overhead in area, power, and frequency.

Get started

Run a program in the online playground, work through the tutorial, or install the compiler. The language reference covers syntax and semantics.

Repositories

  • Anvil compiler — The compiler, tests, and example hardware designs.
  • Language server — Experimental language support and editor extensions for VS Code and Vim/Neovim.
  • Documentation — The source for the documentation site, tutorial, and language reference.
  • Evaluation experiments — Evaluation designs, test harnesses, synthesis reports, and reproduction instructions.
  • RISCy experiment — A simple pipelined RISC-V processor written in Anvil.

Publications

  1. Jason Zhijingcheng Yu, Aditya Ranjan Jha, Umang Mathur, Trevor E. Carlson, and Prateek Saxena. 2026. Anvil: A General-Purpose Timing-Safe Hardware Description Language. In Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’26). Association for Computing Machinery. DOI: 10.1145/3779212.3790125.

    BibTeX · Evaluation artefacts

Join the discussion

For discussions please join AnvilHDL Zulip community. Report bugs or propose changes through the compiler, language server, or documentation issue trackers. Contributions are welcome.

Collaboration

For collaborations or queries, please reach out to one of the maintainers:

Pinned Loading

  1. anvil anvil Public

    OCaml 38 12

  2. anvil-lsp anvil-lsp Public

    AnvilHDL Language Server Protocol Implementation

    TypeScript 1

  3. AnvilHDL-Experiments AnvilHDL-Experiments Public

    The Experiments for the evaluation of AnvilHDL

    SystemVerilog 4

  4. anvil-RISCy-Experiment anvil-RISCy-Experiment Public

    SystemVerilog

Repositories

Showing 6 of 6 repositories

Top languages

Loading…

Most used topics

Loading…