systemrdl-compiler
Parse and elaborate front-end for SystemRDL 2.0
What it is and what it does
SystemRDL Compiler is a free, open-source front-end for Accellera's SystemRDL 2.0 register description language. It reads SystemRDL files and produces an elaborated in-memory register model that you can traverse and query programmatically. The primary use case is as a foundation for building custom register space generators—tools that produce documentation, hardware interfaces, software drivers, or verification models from a single register specification.
The package depends on antlr4-python3-runtime for parsing, colorama for terminal output, markdown for documentation rendering, and typing-extensions for type hints. It targets Python 3.7 and later, is actively maintained, and carries no known security vulnerabilities. The classifier tree marks it as Production/Stable and positions it in the Electronic Design Automation (EDA) and Code Generators categories.
Use it for:
- Generate hardware register documentation and data sheets from a single SystemRDL source file.
- Build custom register space view generators for FPGA or ASIC design flows.
- Parse and validate register definitions in a CI/CD pipeline before hardware synthesis.
- Create software register access layers (drivers, HALs) from register specifications.
- Integrate register elaboration into larger EDA tool chains or design automation frameworks.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses and elaborates SystemRDL 2.0 register description language into a traversable register model, enabling custom code generation for hardware register spaces.
Yes. This is a stable, actively maintained compiler for an industry-standard register description language with no security issues and permissive licensing. Install it if you need to parse SystemRDL files or build custom register generators. Medium install friction is offset by broad platform coverage and solid maintenance signal.
Install
systemrdl-compiler on PyPI
pip
pip install systemrdl-compileruv
uv add systemrdl-compilerpoetry
poetry add systemrdl-compilerInstalling systemrdl-compiler
Before you install
Medium install friction due to compiled wheels across multiple platforms (cp37-abi3 stable ABI), but active maintenance with recent release (168 days ago) and 282 repository stars suggest solid upkeep.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install systemrdl-compiler
from systemrdl import RDLCompiler
compiler = RDLCompiler()
compiler.compile_file('registers.rdl')
root = compiler.elaborate()
Requires Python 3.7 or later; depends on antlr4-python3-runtime, colorama, markdown, and typing-extensions.
Verify before relying
- Whether the elaborated register model API is stable and well-documented for custom generator development.
- Performance characteristics when parsing large or complex register hierarchies.
- Ecosystem maturity: how many third-party generators or tools integrate with this compiler.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 4 — antlr4-python3-runtime, colorama, markdown, typing-extensions |
| Maintenance | actively maintained — 168 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 779,469/month — #5,086 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: systemrdl_compiler-1.32.2-cp37-abi3-macosx_11_0_arm64.whl; systemrdl_compiler-1.32.2-cp37-abi3-macosx_11_0_x86_64.whl; systemrdl_compiler-1.32.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; systemrdl_compiler-1.32.2-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl; systemrdl_compiler-1.32.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; systemrdl_compiler-1.32.2-cp37-abi3-musllinux_1_2_aarch64.whl; systemrdl_compiler-1.32.2-cp37-abi3-musllinux_1_2_i686.whl; systemrdl_compiler-1.32.2-cp37-abi3-musllinux_1_2_x86_64.whl; systemrdl_compiler-1.32.2-cp37-abi3-win32.whl; systemrdl_compiler-1.32.2-cp37-abi3-win_amd64.whl
Keywords: SystemRDL, CSR, compiler, tool, registers, generator, register abstraction layer, FPGA, ASIC
Tags
More Code Generators packages
Proto Plus wraps protocol buffers to provide…
permissive · top 1,000 on PyPI
CythonCython is a source code translator that…
permissive · top 1,000 on PyPI
asttokensAnnotates Python abstract syntax trees with the…
permissive · top 1,000 on PyPI
beartypeBeartype is a runtime type checker that…
permissive · top 1,000 on PyPI
llvmlitellvmlite provides a lightweight Python binding…
permissive · top 1,000 on PyPI
astorastor converts Python abstract syntax trees…
permissive · top 5,000 on PyPI
peakrdl-regblockCompiles SystemRDL register descriptions into…
copyleft · top 15,000 on PyPI
peakrdl-cliPeakRDL is a command-line tool that generates…
copyleft · top 15,000 on PyPI
peakrdl-systemrdlExports a compiled register model into…
copyleft · top 15,000 on PyPI
peakrdlPeakRDL is a control and status register (CSR)…
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
siliconcompilerSiliconCompiler is a modular hardware build…
permissive · top 15,000 on PyPI
lambdalibLambdalib provides technology-agnostic hardware…
permissive · top 15,000 on PyPI
pyslangpyslang provides Python bindings to parse,…
permissive · top 15,000 on PyPI
xdslxDSL is a Python framework for building…
permissive · top 15,000 on PyPI