peakrdl-uvm
Generate UVM register model from compiled SystemRDL input
What it is and what it does
PeakRDL-uvm is a code generator that converts compiled SystemRDL register specifications into ready-to-use UVM register models in SystemVerilog. It sits downstream of the systemrdl-compiler, taking an elaborated register tree and emitting either a SystemVerilog package or header file containing UVM register classes, fields, and memories that mirror the original register layout. The tool supports optional features like UVM factory integration, class definition reuse, and user-defined template overrides via jinja2.
It is primarily used as a plugin to the PeakRDL command-line tool, though it can also be invoked directly from Python code. The generated UVM models are meant to accelerate hardware verification by automating the creation of the register abstraction layer—a tedious and error-prone task when done by hand—allowing verification engineers to focus on testbench logic rather than register boilerplate.
Use it for:
- Generate UVM register models from SystemRDL specifications in a CI/CD pipeline to keep testbenches synchronized with register changes.
- Automate register abstraction layer creation for complex SoCs with hundreds of registers across multiple address maps.
- Customize generated UVM classes via user-defined templates to match project-specific verification patterns or naming conventions.
- Export register models as includable headers for integration into existing UVM testbenches without package namespace constraints.
- Enable reuse of register class definitions across multiple design instances to reduce generated code size and compilation time.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates UVM (Universal Verification Methodology) register models in SystemVerilog from compiled SystemRDL register descriptions, enabling automated hardware verification testbench creation.
Yes, if you work with SystemRDL-based hardware designs and need UVM testbenches. The package is stable (Production/Stable classifier), has no known vulnerabilities, and low install friction. The copyleft license is a consideration for proprietary flows—verify compliance before use. Aging maintenance (262 days since last release) is typical for mature tools but means slower response to new UVM or SystemVerilog standards.
Install
peakrdl-uvm on PyPI
pip
pip install peakrdl-uvmuv
uv add peakrdl-uvmpoetry
poetry add peakrdl-uvmInstalling peakrdl-uvm
Before you install
Low friction installation with only two runtime dependencies (systemrdl-compiler and jinja2). Maintenance status is aging—last release was 262 days ago—but the repository remains active and unarchived with a modest user base of 61 stars.
License in practice
Licensed under LGPLv3 (copyleft). You must distribute source code and license terms if you distribute derivative works or modifications; using it as a library in proprietary tools requires careful compliance review.
Quickstart
from systemrdl import RDLCompiler
from peakrdl_uvm import UVMExporter
rdlc = RDLCompiler()
rdlc.compile_file("design.rdl")
root = rdlc.elaborate()
exporter = UVMExporter()
exporter.export(root, "output.sv")
Requires systemrdl-compiler to parse and elaborate SystemRDL files before export; Python >=3.7.
Verify before relying
- Whether custom template overrides and context variables are documented with examples beyond the API reference.
- Support status for UVM versions and SystemVerilog standard compliance levels.
- Performance characteristics with large register hierarchies or complex designs.
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 | aging — 262 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 160,007/month — #10,681 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: peakrdl_uvm-2.4.0-py3-none-any.whl
Keywords: SystemRDL, PeakRDL, CSR, compiler, tool, registers, generator, UVM
Tags
More Documentation packages
Docutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
MarkdownConverts Markdown text to HTML using a Python…
permissive · top 1,000 on PyPI
SphinxSphinx generates professional documentation…
permissive · top 1,000 on PyPI
griffeGriffe extracts the complete structure and…
permissive · top 1,000 on PyPI
alabasterAlabaster is a clean, responsive Sphinx theme…
permissive · top 1,000 on PyPI
mkdocs-materialMaterial for MkDocs is a professional theme and…
permissive · top 5,000 on PyPI
peakrdl-cliPeakRDL is a command-line tool that generates…
copyleft · top 15,000 on PyPI
pyuvmImplements the IEEE 1800.2 Universal…
permissive · top 15,000 on PyPI
peakrdlPeakRDL is a control and status register (CSR)…
copyleft · top 15,000 on PyPI
peakrdl-htmlGenerates HTML documentation for register…
copyleft · top 15,000 on PyPI
peakrdl-regblockCompiles SystemRDL register descriptions into…
copyleft · top 15,000 on PyPI
peakrdl-systemrdlExports a compiled register model into…
copyleft · top 15,000 on PyPI
peakrdl-cheaderGenerates C header files from SystemRDL…
copyleft · top 15,000 on PyPI
peakrdl-ipxactConverts between SystemRDL register…
copyleft · top 15,000 on PyPI
peakrdl-pythonGenerates a Python Register Access Layer (RAL)…
copyleft · top 15,000 on PyPI
systemrdl-compilerParses and elaborates SystemRDL 2.0 register…
permissive · top 15,000 on PyPI