{"id":6765,"library":"peakrdl-ipxact","title":"PeakRDL-IPXACT","description":"PeakRDL-IPXACT is a plugin for the systemrdl-compiler library, enabling the import and export of IP-XACT XML files to and from the SystemRDL register model. It provides functionality to parse IP-XACT descriptions into an RDL model and serialize an RDL model back into IP-XACT. The current version is 3.5.0, with a release cadence that includes frequent bug fixes and occasional minor feature updates.","status":"active","version":"3.5.0","language":"python","source_language":"en","source_url":"https://github.com/SystemRDL/PeakRDL-ipxact","tags":["IP-XACT","SystemRDL","HDL","EDA","hardware","compiler","XML","plugin"],"install":[{"cmd":"pip install peakrdl-ipxact","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Core dependency for RDL model compilation and manipulation.","package":"systemrdl-compiler","optional":false},{"reason":"Required for efficient XML parsing and serialization of IP-XACT files.","package":"lxml","optional":false}],"imports":[{"wrong":"from systemrdl.ipxact.importer import IPXACTImporter","symbol":"IPXACTImporter","correct":"from peakrdl_ipxact import IPXACTImporter"},{"symbol":"IPXACTExporter","correct":"from peakrdl_ipxact import IPXACTExporter"},{"symbol":"Standard","correct":"from peakrdl_ipxact import Standard"}],"quickstart":{"code":"import os\nimport tempfile\nfrom pathlib import Path\nfrom systemrdl.core import RDLCompiler\nfrom systemrdl.ipxact.exporter import IPXACTExporter\nfrom systemrdl.ipxact.importer import IPXACTImporter\n\n# Create a temporary directory for test files\nwith tempfile.TemporaryDirectory() as tmpdir:\n    tmp_path = Path(tmpdir)\n\n    # 1. Create a dummy RDL file\n    rdl_content = \"\"\"\n    addrmap my_block {\n        reg my_reg {\n            field { sw=r; hw=w; } my_field[3:0] = 4'h0;\n        } @0x0;\n    };\n    \"\"\"\n    rdl_file = tmp_path / \"example.rdl\"\n    rdl_file.write_text(rdl_content)\n    print(f\"Created RDL file: {rdl_file}\")\n\n    # 2. Compile the RDL file\n    compiler = RDLCompiler()\n    compiler.compile_file(str(rdl_file))\n    root_component = compiler.top\n    print(f\"Compiled RDL, top component: {root_component.get_path()}\")\n\n    # 3. Export to IP-XACT XML\n    exported_xml_file = tmp_path / \"exported_ipxact.xml\"\n    exporter = IPXACTExporter()\n    exporter.export(root_component, str(exported_xml_file))\n    print(f\"Exported to IP-XACT XML: {exported_xml_file}\")\n\n    # 4. Import the IP-XACT XML\n    importer = IPXACTImporter()\n    imported_component = importer.import_file(str(exported_xml_file))\n    print(f\"\\nImported IP-XACT component name: {imported_component.name}\")\n    print(f\"Accessing imported register: {imported_component.registers[0].name}\")\n\nprint(\"Quickstart example completed successfully.\")\n","lang":"python","description":"This example demonstrates how to create a simple RDL model, compile it, export it to an IP-XACT XML file, and then import that XML file back into an RDL model using PeakRDL-IPXACT's `IPXACTExporter` and `IPXACTImporter` classes. The example uses temporary files to ensure it's self-contained and runnable."},"warnings":[{"fix":"Update all import statements from `from peakrdl.ipxact...` to `from systemrdl.ipxact...`.","message":"The `peakrdl.ipxact` namespace was removed. All imports must now use `systemrdl.ipxact`.","severity":"breaking","affected_versions":">=3.4.0"},{"fix":"Review existing IP-XACT imports if they rely on specific generated RDL type names. Adapt downstream RDL processing or scripts to the new naming conventions (concatenated component/memoryMap names).","message":"The importer's mapping of IP-XACT names to SystemRDL type names was reworked to prevent namespace collisions. This changes how component/memoryMap names are concatenated.","severity":"breaking","affected_versions":">=3.3.0"},{"fix":"If you rely on `ispresent=false` nodes being present in the exported XML, ensure your target IP-XACT standard (or the exporter's configuration) supports the `isPresent` tag. Otherwise, these nodes will be omitted.","message":"When exporting, nodes marked with `ispresent=false` (e.g., fields, registers) are now discarded if the target IP-XACT standard does not explicitly support the `isPresent` tag.","severity":"gotcha","affected_versions":">=3.5.0"}],"env_vars":null,"search_vec":"'3.5.0':61 'back':52 'bug':69 'cadenc':65 'compil':14,83 'current':58 'descript':42 'eda':81 'enabl':16 'export':20 'featur':74 'file':26 'fix':70 'frequent':68 'function':36 'hardwar':82 'hdl':80 'import':18 'includ':67 'ip':23,40,55,77 'ip-xact':22,39,54,76 'ipxact':3,6 'librari':15 'minor':73 'model':33,46,51 'occasion':72 'pars':38 'peakrdl':2,5 'peakrdl-ipxact':1,4 'plugin':9,85 'provid':35 'rdl':45,50 'regist':32 'releas':64 'serial':48 'systemrdl':13,31,79 'systemrdl-compil':12 'updat':75 'version':59 'xact':24,41,56,78 'xml':25,84","created_at":"2026-04-15T18:42:00.653285+00:00","updated_at":"2026-04-16T17:57:40.101521+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.5.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/SystemRDL/PeakRDL-ipxact","docs":"https://peakrdl-ipxact.readthedocs.io","changelog":"https://github.com/SystemRDL/PeakRDL-ipxact/releases","pypi":"https://pypi.org/project/peakrdl-ipxact/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data","serialization","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}