peakrdl-regblock
Compile SystemRDL into a SystemVerilog control/status register (CSR) block
What it is and what it does
PeakRDL-regblock is a compiler that transforms SystemRDL register descriptions into synthesizable SystemVerilog code for control/status register blocks. It sits in the hardware design toolchain as a code generator, taking a high-level register abstraction language (SystemRDL) and producing low-level Verilog suitable for FPGA and ASIC projects. The tool depends on systemrdl-compiler for parsing and validation, and uses Jinja2 for template-based code generation.
It is designed for hardware engineers and RTL developers who want to specify register layouts declaratively in SystemRDL rather than hand-coding repetitive Verilog. The package is actively maintained, marked as production-stable, and carries a copyleft license that requires derivative works to remain open-source.
Use it for:
- Generate CSR blocks for FPGA designs from a single SystemRDL specification to reduce hand-coding and ensure consistency.
- Automate register documentation and validation by compiling a formal register abstraction layer into synthesizable Verilog.
- Integrate register generation into hardware build pipelines alongside other EDA tools for ASIC and FPGA projects.
- Create reusable register templates across multiple design projects using SystemRDL as a portable register definition format.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Compiles SystemRDL register descriptions into synthesizable SystemVerilog control/status register (CSR) blocks for hardware design.
Yes, if you work with SystemRDL register descriptions in FPGA or ASIC design. Low install friction, active maintenance, no known vulnerabilities, and production-stable status make it reliable. The copyleft license is a constraint only if your project must remain proprietary; open-source hardware projects face no barrier.
Install
peakrdl-regblock on PyPI
pip
pip install peakrdl-regblockuv
uv add peakrdl-regblockpoetry
poetry add peakrdl-regblockInstalling peakrdl-regblock
Before you install
Low friction installation with only two runtime dependencies (systemrdl-compiler and Jinja2). Active maintenance with recent release and 84 repository stars indicates ongoing support.
License in practice
LGPLv3 copyleft license requires derivative works to remain open-source and include license notices; suitable for open-source projects but may conflict with proprietary hardware design workflows.
Quickstart
pip install peakrdl-regblock
from peakrdl.compiler import RDLCompiler
from peakrdl_regblock import RegBlockExporter
compiler = RDLCompiler()
compiler.compile_file('design.rdl')
root = compiler.elaborate()
exporter = RegBlockExporter()
exporter.export(root, 'output.sv')
Requires systemrdl-compiler as a runtime dependency; assumes an existing SystemRDL design file (.rdl) as input.
Verify before relying
- Whether the generated SystemVerilog output requires post-processing or is directly synthesizable by standard tools.
- Support scope for SystemRDL specification versions and which Verilog/SystemVerilog standards are targeted.
- Integration points with common EDA tools (Vivado, Quartus, etc.) beyond raw code generation.
Package facts
| License | LGPLv3 (copyleft) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — systemrdl-compiler, Jinja2 |
| Maintenance | actively maintained — 139 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 222,534/month — #9,262 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: peakrdl_regblock-1.3.1-py3-none-any.whl
Keywords: SystemRDL, PeakRDL, CSR, compiler, tool, registers, generator, Verilog, SystemVerilog, register abstraction layer, FPGA, ASIC
Tags
More Electronic Design Automation (EDA) packages
Parses and elaborates SystemRDL 2.0 register…
permissive · top 15,000 on PyPI
planarityTests whether a graph is planar, computes…
permissive · top 15,000 on PyPI
cocotbcocotb is a Python framework for writing…
permissive · top 15,000 on PyPI
pyslangpyslang provides Python bindings to parse,…
permissive · top 15,000 on PyPI
peakrdl-ipxactConverts between SystemRDL register…
copyleft · top 15,000 on PyPI
klayoutKLayout is a Python package for layout viewing,…
copyleft · top 15,000 on PyPI
fusesocFuseSoC is a package manager and build…
permissive · top 15,000 on PyPI
peakrdlPeakRDL is a control and status register (CSR)…
copyleft · top 15,000 on PyPI
peakrdl-cliPeakRDL is a command-line tool that generates…
copyleft · top 15,000 on PyPI
peakrdl-pythonGenerates a Python Register Access Layer (RAL)…
copyleft · top 15,000 on PyPI
peakrdl-cheaderGenerates C header files from SystemRDL…
copyleft · top 15,000 on PyPI
peakrdl-systemrdlExports a compiled register model into…
copyleft · top 15,000 on PyPI
svqlParses SystemVerilog modules and exposes their…
permissive · top 15,000 on PyPI
peakrdl-uvmGenerates UVM (Universal Verification…
copyleft · top 15,000 on PyPI
peakrdl-htmlGenerates HTML documentation for register…
copyleft · top 15,000 on PyPI