# Register Generator The register generator (`reggen`) is integrated in `uve_tools`. It takes a register description file and generates all register-related artifacts needed for both hardware and verification teams. ## Supported Input Formats - YAML / JSON / TOML - XLSX (Excel) - SystemRDL - IP-XACT ## Supported Output Types - **UVM RAL Model** — SystemVerilog UVM register abstraction layer for testbench integration - **SystemVerilog RTL** — synthesizable register block RTL with configurable bus interface - **C Header** — portable C header file for embedded software / firmware access - **Markdown Documentation** — auto-generated register reference documentation ## Supported Bus Protocols Bus protocol and bus/address width are configurable. Supported protocols: APB, AXI4-Lite, Avalon, Wishbone. ## Format Conversion Register description files can be converted between YAML, JSON, TOML, and XLSX formats without regenerating outputs. Config files can also be converted between formats. ## Templates Starter templates are available in YAML, JSON, and TOML to help bootstrap a new register description file. ## Bit Field Access Types The generator supports a comprehensive set of bit field access types: rw, ro, wo, rwtrg, rotrg, rof, rohw, wrc, wrs, rowo, rowotrg, wc, woc, ws, wos, w0c, w1c, w0s, w1s, w0t, w1t, rc, rs, w0crs, w1crs, wcrs, w0src, w1src, wsrc, rwc, rws, rwe, rwl, rwhw, w0trg, w1trg, row0trg, row1trg, wotrg, wo1, w1, counter, custom, reserved. ## Extensibility The generator supports a plugin system for loading custom output generators.