# rdlexporter
<!--
# SPDX-FileCopyrightText: lowRISC contributors.
# SPDX-License-Identifier: Apache-2.0
-->
A library to generate SystemRDL files from the Hierarchical Register Model.
How to use it:
```sh
uv pip install rdlexporter
```
Example:
```python
from rdlexporter import RdlExporter
from systemrdl import RDLCompiler, RDLImporter
from systemrdl.rdltypes import AccessType
rdlc = RDLCompiler()
imp = RDLImporter(rdlc)
imp.default_src_ref = None
addrmap = imp.create_addrmap_definition("generic")
field_en = imp.create_field_definition("EN")
field_en = imp.instantiate_field(field_en, "EN", 0, 1)
imp.assign_property(field_en, "reset", 0x00)
imp.assign_property(field_en, "swmod", value=True)
imp.assign_property(field_en, "desc", "Enable the ip")
imp.assign_property(field_mode, "reset", 0x7)
imp.assign_property(field_mode, "desc", "Define the mode.")
imp.assign_property(field_mode, "sw", AccessType.rw)
reg = imp.create_reg_definition("CTRL")
imp.add_child(reg, field_en)
imp.add_child(reg, field_mode)
reg = imp.instantiate_reg(reg, "CTRL", 0x04, [4], 0x04)
imp.add_child(addrmap, reg)
imp.register_root_component(addrmap)
RdlExporter(rdlc).export("./generic.rdl")
```
## Contributing
### How to run tests
```sh
cd rdlexporter
uv run pytest
```
### How to build the package and install it locally
Install dev dependencies
```sh
uv sync --all-extras
```
Build package
```sh
uv build --all
```
Install the package locally
```sh
uv pip install dist/rdlexporter-0.1.0-py3-none-any.whl
```
Raw data
{
"_id": null,
"home_page": null,
"name": "rdlexporter",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "SystemRDL, exporter, library",
"author": "lowRISC contributors",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/81/e7/286b3443cbb955095d223b18a3612dd1825f347c0e4ad2e01314d2dcc589/rdlexporter-0.2.0.tar.gz",
"platform": null,
"description": "# rdlexporter\n<!--\n# SPDX-FileCopyrightText: lowRISC contributors.\n# SPDX-License-Identifier: Apache-2.0\n-->\n\nA library to generate SystemRDL files from the Hierarchical Register Model.\n\nHow to use it: \n```sh\nuv pip install rdlexporter\n```\nExample:\n```python\nfrom rdlexporter import RdlExporter\nfrom systemrdl import RDLCompiler, RDLImporter\nfrom systemrdl.rdltypes import AccessType\n\nrdlc = RDLCompiler()\n\nimp = RDLImporter(rdlc)\nimp.default_src_ref = None\n\naddrmap = imp.create_addrmap_definition(\"generic\")\n\nfield_en = imp.create_field_definition(\"EN\")\nfield_en = imp.instantiate_field(field_en, \"EN\", 0, 1)\nimp.assign_property(field_en, \"reset\", 0x00)\nimp.assign_property(field_en, \"swmod\", value=True)\nimp.assign_property(field_en, \"desc\", \"Enable the ip\")\n\nimp.assign_property(field_mode, \"reset\", 0x7)\nimp.assign_property(field_mode, \"desc\", \"Define the mode.\")\nimp.assign_property(field_mode, \"sw\", AccessType.rw)\n\nreg = imp.create_reg_definition(\"CTRL\")\nimp.add_child(reg, field_en)\nimp.add_child(reg, field_mode)\n\nreg = imp.instantiate_reg(reg, \"CTRL\", 0x04, [4], 0x04)\nimp.add_child(addrmap, reg)\n\nimp.register_root_component(addrmap)\nRdlExporter(rdlc).export(\"./generic.rdl\")\n```\n\n## Contributing\n### How to run tests\n```sh\ncd rdlexporter\nuv run pytest\n```\n\n### How to build the package and install it locally\nInstall dev dependencies\n```sh\nuv sync --all-extras \n```\nBuild package\n```sh\nuv build --all\n```\nInstall the package locally\n```sh\nuv pip install dist/rdlexporter-0.1.0-py3-none-any.whl\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Library to export rdl files",
"version": "0.2.0",
"project_urls": {
"Documentation": "https://github.com/lowrisc/benevisrdl",
"Homepage": "https://github.com/lowrisc/benevisrdl",
"Issues": "https://github.com/lowrisc/benevisrdl/issues"
},
"split_keywords": [
"systemrdl",
" exporter",
" library"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6fe427bbadacbf88c3f515f15fbc177738898a63bbeec3fad8965244cb748be2",
"md5": "0e1572022001fb72ae44344edfd1776e",
"sha256": "38d2dbdda140d9d6aa2977aa49a8857b564a011dd79f774afa50d9b8ebb2ec17"
},
"downloads": -1,
"filename": "rdlexporter-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0e1572022001fb72ae44344edfd1776e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 4595,
"upload_time": "2025-08-22T15:51:32",
"upload_time_iso_8601": "2025-08-22T15:51:32.685841Z",
"url": "https://files.pythonhosted.org/packages/6f/e4/27bbadacbf88c3f515f15fbc177738898a63bbeec3fad8965244cb748be2/rdlexporter-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "81e7286b3443cbb955095d223b18a3612dd1825f347c0e4ad2e01314d2dcc589",
"md5": "c1b4816cbd2f32f2e3f5f936f338d68c",
"sha256": "b20af613f7fe81115ae6a948bd8f4752a8a7adc97594e6689c2703f53cd03b3e"
},
"downloads": -1,
"filename": "rdlexporter-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "c1b4816cbd2f32f2e3f5f936f338d68c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 10996,
"upload_time": "2025-08-22T15:51:33",
"upload_time_iso_8601": "2025-08-22T15:51:33.839658Z",
"url": "https://files.pythonhosted.org/packages/81/e7/286b3443cbb955095d223b18a3612dd1825f347c0e4ad2e01314d2dcc589/rdlexporter-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-22 15:51:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lowrisc",
"github_project": "benevisrdl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rdlexporter"
}