AXI4-Lite Register Generation. One Command.

Automate AXI register generation for FPGA and ASIC. Create AXI4-Lite register interfaces from VHDL annotations, YAML, XML, JSON, or TOML. Built-in CDC synchronizers, subregisters, and complete documentation.

pip install axion-hdl
pwm_controller.sv
terminal

Three Ways to Use

Pick the interface that suits your workflow best.

Command Line

Perfect for scripts and CI/CD pipelines. Fast, scriptable, and easy to integrate.

axion-hdl -s src/ -o output/ --all

Python API

Full programmatic control for custom workflows and tool integration.

from axion_hdl import AxionHDL

Web GUI

Interactive visual editor for register maps. Great for exploration and quick local prototyping.

pip install axion-hdl[gui] axion-hdl --gui

Try It Live

Drop in a register definition and generate VHDL/SystemVerilog register spaces and C headers in seconds.

Runs the actual axion-hdl engine on the server.

terminal
Click "Generate" to run axion-hdl...
generated VHDL
Generated VHDL will appear here...
generated SystemVerilog
Generated SystemVerilog will appear here...
generated C header
Generated C header will appear here...

Everything You Need for Register Automation

From simple LED controllers to complex SoC peripherals.

VHDL & SystemVerilog Output

Parse annotations from .vhd or .sv files. Generate AXI4-Lite register interfaces in VHDL, SystemVerilog, or both — plus C headers for drivers.

Multi-Format Input

Define registers in VHDL/SV annotations, YAML, XML, JSON, or TOML. Use whatever fits your workflow.

CDC Synchronizers

Built-in 2/3/4-stage clock domain crossing. Safe register access across clock domains with zero boilerplate.

Subregisters & Wide Signals

Pack bit fields into a single address. Automatically split 64-bit+ signals across multiple registers — no manual work needed.

Full Documentation

Auto-generate Markdown docs, C headers, and IP-XACT XML. Enumerated values propagate into all outputs automatically.

Hierarchical Register Maps

Compose nested register maps from multiple source files into one unified AXI4-Lite address space.