Welcome to AnvilHDL Documentation!
Anvil is a general-purpose hardware description language (HDL) that guarantees timing safety, the absence of timing hazards. Its novel type system enforces this guarantee at compile time.
In traditional HDLs, signals may unintentionally change when their underlying registers are updated. These changes make it difficult to guarantee that intermediate values remain stable across multiple clock cycles. Anvil eliminates this class of errors by making the timing relationships between the creation and use of values explicit. It enforces that values are used only when they are semantically valid. At the same time, Anvil gives designers full control over state-storing elements (registers) and cycle-level latency. Anvil compiles to synthesizable SystemVerilog. In practice, it has demonstrated comparable area, power, and frequency to handwritten SystemVerilog designs, with no additional clock-cycle latency.
You can try Anvil without installation at AnvilHDL Playground, or install it locally by following the Installation Guide guide.
Artefacts and Contributors: AnvilHDL repositories, tools, research artefacts, and contributors.
Citation
If you use Anvil in your research, please cite the
Anvil paper:
@inproceedings{yu2026anvil,
title={Anvil: A General-Purpose Timing-Safe Hardware Description Language},
author={Yu, Jason Zhijingcheng and Jha, Aditya Ranjan and Mathur, Umang and Carlson, Trevor E and Saxena, Prateek},
year={2026},
publisher={Association for Computing Machinery},
booktitle={Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems},
series={ASPLOS '26},
address={Pittsburgh, PA, USA},
doi={10.1145/3779212.3790125},
url={https://dl.acm.org/doi/10.1145/3779212.3790125}
}
Documentation Overview
This documentation is organized as follows:
Language Reference - An up-to-date description of Anvil’s syntax and language features.
Tutorial - Installation and a guided introduction to Anvil, including interactive examples and practice problems.
Artefacts and Contributors - Project repositories, research resources, and contributor profiles.
Project
Language Reference
Quick Links
Contact Us
You can also join the AnvilHDL community chat for questions and discussion.
Acknowledgement: We want to thank for sponsoring the community chat channel and allowing us to encourage discussions. Zulip is an organized team chat app designed for efficient communication.