peakrdl-python 2.0.0rc6__tar.gz → 2.1.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/.github/workflows/action.yaml +20 -9
  2. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/PKG-INFO +11 -8
  3. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/README.md +8 -6
  4. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/generated_package.rst +21 -0
  5. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/generate_and_test.py +4 -1
  6. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/pyproject.toml +2 -1
  7. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/__about__.py +2 -2
  8. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/__peakrdl__.py +5 -1
  9. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/class_names.py +0 -12
  10. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/exporter.py +105 -91
  11. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/systemrdl_node_hashes.py +196 -68
  12. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/systemrdl_node_utility_functions.py +13 -6
  13. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap.py.jinja +3 -0
  14. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_memory.py.jinja +4 -0
  15. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_register.py.jinja +2 -4
  16. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_tb.py.jinja +11 -15
  17. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/field_enums.py.jinja +2 -2
  18. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/template_ultilities.py.jinja +9 -0
  19. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/unique_component_iterator.py +140 -13
  20. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python.egg-info/PKG-INFO +11 -8
  21. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python.egg-info/requires.txt +1 -1
  22. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/enum_example.rdl +7 -0
  23. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_export.py +39 -24
  24. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/.gitignore +0 -0
  25. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/.readthedocs.yaml +0 -0
  26. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/LICENSE +0 -0
  27. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/MANIFEST.in +0 -0
  28. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/api.rst +0 -0
  29. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/api_components.rst +0 -0
  30. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/command_line.rst +0 -0
  31. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/conf.py +0 -0
  32. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/customisation.rst +0 -0
  33. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/design_decisions.rst +0 -0
  34. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/design_tools.rst +0 -0
  35. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/genindex.rst +0 -0
  36. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/index.rst +0 -0
  37. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/installation.rst +0 -0
  38. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/docs/requirements.txt +0 -0
  39. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/array_access/array_access.rdl +0 -0
  40. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/array_access/demo_array_access.py +0 -0
  41. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/enumerated_fields/demo_enumerated_fields.py +0 -0
  42. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/enumerated_fields/enumerated_fields.rdl +0 -0
  43. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/optimised_access/demo_optimised_access.py +0 -0
  44. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/optimised_access/demo_optimised_array_access.py +0 -0
  45. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/optimised_access/optimised_access.rdl +0 -0
  46. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/optimised_access/optimised_array_access.rdl +0 -0
  47. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/overridden_names/demo_over_ridden_names.py +0 -0
  48. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/overridden_names/overridden_names.rdl +0 -0
  49. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/simulating_callbacks/chip_with_a_GPIO.rdl +0 -0
  50. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/simulating_callbacks/flashing_the_LED.py +0 -0
  51. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/tranversing_address_map/chip_with_registers.rdl +0 -0
  52. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/tranversing_address_map/dumping_register_state_to_json_file.py +0 -0
  53. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/tranversing_address_map/reg_dump.json +0 -0
  54. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/tranversing_address_map/reseting_registers.py +0 -0
  55. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/tranversing_address_map/writing_register_state_from_json_file.py +0 -0
  56. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/user_defined_properties/demo_user_defined_properties.py +0 -0
  57. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/user_defined_properties/user_defined_properties.rdl +0 -0
  58. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/why_ral/__init__.py +0 -0
  59. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/why_ral/gpio.rdl +0 -0
  60. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/why_ral/with_hal.py +0 -0
  61. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/why_ral/with_ral.py +0 -0
  62. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/example/why_ral/without_ral.py +0 -0
  63. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/generate_testcases.py +0 -0
  64. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/setup.cfg +0 -0
  65. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/.coveragerc +0 -0
  66. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/__init__.py +0 -0
  67. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/_deploy_package.py +0 -0
  68. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/_node_walkers.py +0 -0
  69. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/compiler_udp.py +0 -0
  70. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/__init__.py +0 -0
  71. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/async_memory.py +0 -0
  72. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/async_register_and_field.py +0 -0
  73. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/base.py +0 -0
  74. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/base_field.py +0 -0
  75. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/base_register.py +0 -0
  76. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/callbacks.py +0 -0
  77. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/field_encoding.py +0 -0
  78. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/memory.py +0 -0
  79. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/py.typed +0 -0
  80. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/register_and_field.py +0 -0
  81. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/sections.py +0 -0
  82. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/lib/utility_functions.py +0 -0
  83. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/py.typed +0 -0
  84. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/safe_name_utility.py +0 -0
  85. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/__init__.py +0 -0
  86. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/_callbacks.py +0 -0
  87. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/base.py +0 -0
  88. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/dummy_callbacks.py +0 -0
  89. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/field.py +0 -0
  90. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/memory.py +0 -0
  91. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/py.typed +0 -0
  92. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/register.py +0 -0
  93. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/sim_lib/simulator.py +0 -0
  94. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/__init__.py +0 -0
  95. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_field.py.jinja +0 -0
  96. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_simulation.py.jinja +0 -0
  97. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +0 -0
  98. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_system_rdl_name_mapping.py.jinja +0 -0
  99. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_udp_property.py.jinja +0 -0
  100. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/addrmap_universal_property.py.jinja +0 -0
  101. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/baseclass_simulation_tb.py.jinja +0 -0
  102. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/baseclass_tb.py.jinja +0 -0
  103. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/child_definitions.py.jinja +0 -0
  104. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/example.py.jinja +0 -0
  105. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/header.py.jinja +0 -0
  106. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/header_tb.py.jinja +0 -0
  107. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/property_enums.py.jinja +0 -0
  108. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python/templates/reg_definitions.py.jinja +0 -0
  109. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python.egg-info/SOURCES.txt +0 -0
  110. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python.egg-info/dependency_links.txt +0 -0
  111. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python.egg-info/entry_points.txt +0 -0
  112. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/src/peakrdl_python.egg-info/top_level.txt +0 -0
  113. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates/header.py.jinja +0 -0
  114. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates/header_tb.py.jinja +0 -0
  115. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates_dynamic/header.py.jinja +0 -0
  116. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates_dynamic/header_tb.py.jinja +0 -0
  117. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates_dynamic_toml/header_check.py +0 -0
  118. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates_dynamic_toml/peakrdl.toml +0 -0
  119. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates_toml/header_check.py +0 -0
  120. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/alternative_templates_toml/peakrdl.toml +0 -0
  121. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/pathological_register_maps/pathalogical_rdl_builder.py +0 -0
  122. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/pathological_register_maps/templates/pathological_template.rdl.jinja +0 -0
  123. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/RDLFormatCode_example.rdl +0 -0
  124. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/addr_map.rdl +0 -0
  125. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/aliases.rdl +0 -0
  126. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/all_register_access_types.rdl +0 -0
  127. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/basic.rdl +0 -0
  128. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/block_a.xml +0 -0
  129. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/block_b.xml +0 -0
  130. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/deduplicated_field.rdl +0 -0
  131. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/different_array_types.rdl +0 -0
  132. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/example_issue_106.rdl +0 -0
  133. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/extended_memories.rdl +0 -0
  134. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/extended_sizes_registers_array.rdl +0 -0
  135. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/field_scope.rdl +0 -0
  136. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/field_with_overridden_reset.rdl +0 -0
  137. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/fields_with_HW_write.rdl +0 -0
  138. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/fields_with_reset_values.rdl +0 -0
  139. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/hidden_property.rdl +0 -0
  140. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/large_field_combinations.rdl +0 -0
  141. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/memories.rdl +0 -0
  142. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/memories_with_registers.rdl +0 -0
  143. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/msb0_and_lsb0.rdl +0 -0
  144. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/multi_block.rdl +0 -0
  145. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/multifile.rdl +0 -0
  146. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/name_clash.rdl +0 -0
  147. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/name_desc_all_levels.rdl +0 -0
  148. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/name_desc_option_deduplicate.rdl +0 -0
  149. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/overridden_python_name.rdl +0 -0
  150. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/parametrised_readonly_and_readwrite.rdl +0 -0
  151. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/parametrised_top.rdl +0 -0
  152. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/reg_name_stress.rdl +0 -0
  153. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/regfile_and_arrays.rdl +0 -0
  154. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/reserved_elements.rdl +0 -0
  155. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/same_but_different_enum.rdl +0 -0
  156. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/shared_register_issue_202 +0 -0
  157. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/signals_definitions_at_various_levels.rdl +0 -0
  158. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/simple.rdl +0 -0
  159. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/simple.xml +0 -0
  160. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/simulator_test.rdl +0 -0
  161. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/sizes_registers.rdl +0 -0
  162. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/sizes_registers_array.rdl +0 -0
  163. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/sparse_enum_issue_200.rdl +0 -0
  164. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/user_defined_properties.rdl +0 -0
  165. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/testcases/write_only_enum_with_undefined_reset.rdl +0 -0
  166. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/__init__.py +0 -0
  167. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/simple_components.py +0 -0
  168. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_array_indexing.py +0 -0
  169. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_building_inner_addrmap.py +0 -0
  170. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_field.py +0 -0
  171. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_name_desc_export.py +0 -0
  172. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_optimised_reg_array.py +0 -0
  173. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_reg.py +0 -0
  174. {peakrdl_python-2.0.0rc6 → peakrdl_python-2.1.0rc1}/tests/unit_tests/test_system_rdl_enum.py +0 -0
@@ -29,7 +29,7 @@ jobs:
29
29
  - name: Set up Python
30
30
  uses: actions/setup-python@v5
31
31
  with:
32
- python-version: "3.12"
32
+ python-version: "3.13"
33
33
 
34
34
  - name: Install dependencies
35
35
  run: |
@@ -54,7 +54,7 @@ jobs:
54
54
  - name: Set up Python
55
55
  uses: actions/setup-python@v5
56
56
  with:
57
- python-version: "3.12"
57
+ python-version: "3.13"
58
58
 
59
59
  - name: Install dependencies
60
60
  run: |
@@ -72,7 +72,7 @@ jobs:
72
72
  runs-on: ubuntu-latest
73
73
  strategy:
74
74
  matrix:
75
- python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
75
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13", "3.14" ]
76
76
 
77
77
  steps:
78
78
  - uses: actions/checkout@v4
@@ -102,7 +102,7 @@ jobs:
102
102
  runs-on: ubuntu-latest
103
103
  strategy:
104
104
  matrix:
105
- python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
105
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13", "3.14" ]
106
106
 
107
107
  steps:
108
108
  - uses: actions/checkout@v4
@@ -144,6 +144,8 @@ jobs:
144
144
  python -m generate_and_test --RDL_source_file tests/testcases/user_defined_properties.rdl --root_node user_defined_properties --udp bool_property_to_include enum_property_to_include int_property_to_include
145
145
  python -m generate_and_test --RDL_source_file tests/testcases/user_defined_properties.rdl --root_node user_defined_properties --udp bool_property_to_include enum_property_to_include int_property_to_include str_property_to_include
146
146
  python -m generate_and_test --RDL_source_file tests/testcases/user_defined_properties.rdl --root_node user_defined_properties --udp bool_property_to_include enum_property_to_include int_property_to_include str_property_to_include struct_property_to_include double_layer_struct_property_to_include
147
+
148
+ python -m generate_and_test --RDL_source_file tests/testcases/user_defined_properties.rdl --root_node user_defined_properties --udp_regex "bool_property_to_include|enum_property_to_include|int_property_to_include|str_property_to_include|struct_property_to_include|double_layer_struct_property_to_include"
147
149
 
148
150
  python -m generate_and_test --RDL_source_file tests/testcases/reserved_elements.rdl --root_node reserved_elements --hide_regex "(?:[\w_\[\]]+\.)+RSVD"
149
151
 
@@ -158,7 +160,7 @@ jobs:
158
160
  runs-on: ubuntu-latest
159
161
  strategy:
160
162
  matrix:
161
- python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
163
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13", "3.14" ]
162
164
 
163
165
  steps:
164
166
  - uses: actions/checkout@v4
@@ -181,7 +183,8 @@ jobs:
181
183
  peakrdl python tests/testcases/hidden_property.rdl -o peakrdl_out/raw/show_hidden/ --show_hidden
182
184
  peakrdl python tests/testcases/simple.xml tests/testcases/multifile.rdl -o peakrdl_out/raw
183
185
  peakrdl python tests/testcases/extended_memories.rdl -o peakrdl_out/raw/
184
- peakrdl python tests/testcases/user_defined_properties.rdl -o peakrdl_out/raw/ --udp bool_property_to_include
186
+ peakrdl python tests/testcases/user_defined_properties.rdl -o peakrdl_out/raw/list/ --udp bool_property_to_include enum_property_to_include struct_property_to_include str_property_to_include
187
+ peakrdl python tests/testcases/user_defined_properties.rdl -o peakrdl_out/raw/regex/ --udp_regex "bool_property_to_include|enum_property_to_include|struct_property_to_include|str_property_to_include"
185
188
  peakrdl python tests/testcases/reserved_elements.rdl -o peakrdl_out/raw/ --hide_regex "(?:[\w_\[\]]+\.)+RSVD"
186
189
  peakrdl python tests/testcases/parametrised_top.rdl -o peakrdl_out/raw/ -P MY_PARAM=3
187
190
  python -m unittest discover -s peakrdl_out/raw
@@ -259,6 +262,14 @@ jobs:
259
262
  python -m with_hal
260
263
 
261
264
  cd ../..
265
+
266
+ cd example/user_defined_properties/
267
+ peakrdl python user_defined_properties.rdl -o . --udp_regex "^(?!python_hide$)(?!python_name$).+"
268
+ python -m demo_user_defined_properties
269
+
270
+ cd ../..
271
+
272
+
262
273
 
263
274
  integration_tests:
264
275
  needs:
@@ -268,7 +279,7 @@ jobs:
268
279
  runs-on: ubuntu-latest
269
280
  strategy:
270
281
  matrix:
271
- python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
282
+ python-version: [3.9, "3.10", "3.11", "3.12", "3.13", "3.14"]
272
283
  lib_copy: [true, false]
273
284
 
274
285
  steps:
@@ -330,7 +341,7 @@ jobs:
330
341
  runs-on: ubuntu-latest
331
342
  strategy:
332
343
  matrix:
333
- python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
344
+ python-version: [3.9, "3.10", "3.11", "3.12", "3.13", "3.14"]
334
345
 
335
346
  steps:
336
347
  - uses: actions/checkout@v4
@@ -381,7 +392,7 @@ jobs:
381
392
  - uses: actions/setup-python@v5
382
393
  name: Install Python
383
394
  with:
384
- python-version: "3.12"
395
+ python-version: "3.13"
385
396
 
386
397
  - name: Install dependencies
387
398
  run: |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: peakrdl-python
3
- Version: 2.0.0rc6
3
+ Version: 2.1.0rc1
4
4
  Summary: Generate Python Register Access Layer (RAL) from SystemRDL
5
5
  Author: Keith Brady
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -691,6 +691,7 @@ Classifier: Programming Language :: Python :: 3.10
691
691
  Classifier: Programming Language :: Python :: 3.11
692
692
  Classifier: Programming Language :: Python :: 3.12
693
693
  Classifier: Programming Language :: Python :: 3.13
694
+ Classifier: Programming Language :: Python :: 3.14
694
695
  Classifier: Programming Language :: Python :: 3 :: Only
695
696
  Classifier: Intended Audience :: Developers
696
697
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
@@ -708,7 +709,7 @@ Provides-Extra: dev
708
709
  Requires-Dist: mypy; extra == "dev"
709
710
  Requires-Dist: pylint; extra == "dev"
710
711
  Requires-Dist: coverage; extra == "dev"
711
- Requires-Dist: peakrdl-ipxact; extra == "dev"
712
+ Requires-Dist: peakrdl; extra == "dev"
712
713
  Provides-Extra: peakrdl
713
714
  Requires-Dist: peakrdl; extra == "peakrdl"
714
715
  Provides-Extra: unit-test
@@ -717,6 +718,8 @@ Requires-Dist: tomli; python_version < "3.11" and extra == "unit-test"
717
718
  Dynamic: license-file
718
719
 
719
720
  ![CI](https://github.com/krcb197/PeakRDL-python/actions/workflows/action.yaml/badge.svg)
721
+ [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint)
722
+ [![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
720
723
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/peakrdl-python.svg)](https://pypi.org/project/peakrdl-python)
721
724
  [![Documentation Status](https://readthedocs.org/projects/peakrdl-python/badge/?version=latest)](https://peakrdl-python.readthedocs.io/en/latest/?badge=latest)
722
725
  [![Downloads](https://static.pepy.tech/badge/peakrdl-python)](https://pepy.tech/project/peakrdl-python)
@@ -742,7 +745,7 @@ See the [peakrdl-python Documentation](https://peakrdl-python.readthedocs.io/) f
742
745
  python3 -m pip install peakrdl
743
746
  ```
744
747
 
745
- ### First Demo
748
+ ### Demo
746
749
 
747
750
  This demonstration relies on downloading the systemRDL example from Accelera, available here: [accelera-generic_example.rdl](https://github.com/SystemRDL/systemrdl-compiler/blob/main/examples/accelera-generic_example.rdl). This demonstration also
748
751
  assumes that peakrdl has been installed.
@@ -789,11 +792,11 @@ assumes that peakrdl has been installed.
789
792
  # Usage
790
793
 
791
794
  To make use of the RAL with real hardware or a different simulation, the callbacks will need to be
792
- connected to the appropriate access function with perform a address space reads and writes
795
+ connected to the appropriate access function in order to perform an address space reads and writes
793
796
 
794
- ## Upgrading from previous versions (some important changes)
797
+ # Upgrading from previous versions (some important changes)
795
798
 
796
- ### Upgrading from pre 0.9.0
799
+ ## Upgrading from pre 0.9.0
797
800
 
798
801
  In order to address a major limitation of peakrdl-python that prevented it from implementing the
799
802
  full systemRDL specification, a breaking API change was needed for handling blocks:
@@ -804,7 +807,7 @@ Users are encouraged to upgrade in order to avoid this limitation. However, ther
804
807
  to support users with existing designs, see: _Legacy Block Callback and Block Access_ in the
805
808
  documentation
806
809
 
807
- ### Upgrading from pre 1.2.0
810
+ ## Upgrading from pre 1.2.0
808
811
 
809
812
  Version 1.2 introduced a new way to define the enumerations for the field encoding. This allows
810
813
  metadata from the systemRDL to propagate through to the generated code. This may break advanced
@@ -812,7 +815,7 @@ usage of the python enumerations. User are encouraged to use the new feature, ho
812
815
  are problems with the old enumeration types (based on `IntEnum`) can be used, see
813
816
  _Legacy Enumeration Types_ in the documentation
814
817
 
815
- ### Upgrading from pre 2.0.0
818
+ ## Upgrading from pre 2.0.0
816
819
 
817
820
  Version 2.0 introduced a significant change to the process for building the register model python
818
821
  code. This change was intended to reduce the size of the generated code by only generating
@@ -1,4 +1,6 @@
1
1
  ![CI](https://github.com/krcb197/PeakRDL-python/actions/workflows/action.yaml/badge.svg)
2
+ [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint)
3
+ [![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
2
4
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/peakrdl-python.svg)](https://pypi.org/project/peakrdl-python)
3
5
  [![Documentation Status](https://readthedocs.org/projects/peakrdl-python/badge/?version=latest)](https://peakrdl-python.readthedocs.io/en/latest/?badge=latest)
4
6
  [![Downloads](https://static.pepy.tech/badge/peakrdl-python)](https://pepy.tech/project/peakrdl-python)
@@ -24,7 +26,7 @@ See the [peakrdl-python Documentation](https://peakrdl-python.readthedocs.io/) f
24
26
  python3 -m pip install peakrdl
25
27
  ```
26
28
 
27
- ### First Demo
29
+ ### Demo
28
30
 
29
31
  This demonstration relies on downloading the systemRDL example from Accelera, available here: [accelera-generic_example.rdl](https://github.com/SystemRDL/systemrdl-compiler/blob/main/examples/accelera-generic_example.rdl). This demonstration also
30
32
  assumes that peakrdl has been installed.
@@ -71,11 +73,11 @@ assumes that peakrdl has been installed.
71
73
  # Usage
72
74
 
73
75
  To make use of the RAL with real hardware or a different simulation, the callbacks will need to be
74
- connected to the appropriate access function with perform a address space reads and writes
76
+ connected to the appropriate access function in order to perform an address space reads and writes
75
77
 
76
- ## Upgrading from previous versions (some important changes)
78
+ # Upgrading from previous versions (some important changes)
77
79
 
78
- ### Upgrading from pre 0.9.0
80
+ ## Upgrading from pre 0.9.0
79
81
 
80
82
  In order to address a major limitation of peakrdl-python that prevented it from implementing the
81
83
  full systemRDL specification, a breaking API change was needed for handling blocks:
@@ -86,7 +88,7 @@ Users are encouraged to upgrade in order to avoid this limitation. However, ther
86
88
  to support users with existing designs, see: _Legacy Block Callback and Block Access_ in the
87
89
  documentation
88
90
 
89
- ### Upgrading from pre 1.2.0
91
+ ## Upgrading from pre 1.2.0
90
92
 
91
93
  Version 1.2 introduced a new way to define the enumerations for the field encoding. This allows
92
94
  metadata from the systemRDL to propagate through to the generated code. This may break advanced
@@ -94,7 +96,7 @@ usage of the python enumerations. User are encouraged to use the new feature, ho
94
96
  are problems with the old enumeration types (based on `IntEnum`) can be used, see
95
97
  _Legacy Enumeration Types_ in the documentation
96
98
 
97
- ### Upgrading from pre 2.0.0
99
+ ## Upgrading from pre 2.0.0
98
100
 
99
101
  Version 2.0 introduced a significant change to the process for building the register model python
100
102
  code. This change was intended to reduce the size of the generated code by only generating
@@ -418,6 +418,11 @@ Exposing User Defined Properties
418
418
  SystemRDL allows properties to be added to any component (Field, Memory, Register, Register File,
419
419
  Address Map), so called *User Defined Properties (UDP)*.
420
420
 
421
+ There are two methods to expose user defined properties:
422
+
423
+ - A list of strings to include in the package
424
+ - A Regular Expression which will include any UDP which matches the regular expression
425
+
421
426
  Consider the following systemRDL example with a user defined property: ``component_usage``
422
427
 
423
428
  .. literalinclude :: ../example/user_defined_properties/user_defined_properties.rdl
@@ -429,12 +434,28 @@ User Defined Properties are not automatically included they must be specified, a
429
434
 
430
435
  peakrdl python user_defined_properties.rdl -o . --udp component_usage
431
436
 
437
+ Alternatively the User Defined Properties can be included with a regular expression.
438
+ In the following case all UDPs are included, except the ones used by PeakRDL python
439
+
440
+ .. code-block:: bash
441
+
442
+ peakrdl python user_defined_properties.rdl -o . --udp_regex "^(?!python_hide$)(?!python_name$).+"
443
+
444
+ .. warning::
445
+
446
+ Attempting to use both the list and regular expression approach is not supported and will
447
+ generate an error
448
+
432
449
  The user defined properties are stored in a ``udp`` property of all component in the generated
433
450
  register access and can be accessed as follows:
434
451
 
435
452
  .. literalinclude :: ../example/user_defined_properties/demo_user_defined_properties.py
436
453
  :language: python
437
454
 
455
+ .. versionadded:: 2.0.0
456
+
457
+ Regular Expression matching for User Defined Properties was added in version 2.0.0
458
+
438
459
  Python Safe Names
439
460
  =================
440
461
 
@@ -81,9 +81,12 @@ CommandLineParser.add_argument('--legacy_block_access', action='store_true',
81
81
  dest='legacy_block_access',
82
82
  help='peakrdl python has two methods to hold blocks of data, the '
83
83
  'legacy mode based on Array or the new mode using lists')
84
- CommandLineParser.add_argument('--udp', dest='udp', nargs='*',
84
+ udp_group = CommandLineParser.add_mutually_exclusive_group(required=False)
85
+ udp_group.add_argument('--udp', dest='udp', nargs='*',
85
86
  type=str, help='any user defined properties to include in the '
86
87
  'reg_model')
88
+ udp_group.add_argument('--udp_regex', dest='udp_regex', type=str,
89
+ help='a regex to define which UPD ares show in the reg model')
87
90
  CommandLineParser.add_argument('--hide_regex', dest='hide_regex', type=str,
88
91
  help='A regex that will cause any matching fully qualified node to '
89
92
  'be hidden')
@@ -34,6 +34,7 @@ classifiers = [
34
34
  "Programming Language :: Python :: 3.11",
35
35
  "Programming Language :: Python :: 3.12",
36
36
  "Programming Language :: Python :: 3.13",
37
+ "Programming Language :: Python :: 3.14",
37
38
  "Programming Language :: Python :: 3 :: Only",
38
39
  "Intended Audience :: Developers",
39
40
  "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
@@ -62,7 +63,7 @@ dev = [
62
63
  "mypy",
63
64
  "pylint",
64
65
  "coverage",
65
- "peakrdl-ipxact"
66
+ "peakrdl"
66
67
  ]
67
68
  peakrdl = [
68
69
  "peakrdl"
@@ -1,6 +1,6 @@
1
1
  """
2
2
  peakrdl-python is a tool to generate Python Register Access Layer (RAL) from SystemRDL
3
- Copyright (C) 2021 - 2025
3
+ Copyright (C) 2021 - 2023
4
4
 
5
5
  This program is free software: you can redistribute it and/or modify
6
6
  it under the terms of the GNU General Public License as published by
@@ -17,4 +17,4 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
 
18
18
  Variables that describes the peakrdl-python Package
19
19
  """
20
- __version__ = "2.0.0rc6"
20
+ __version__ = "2.1.0rc1"
@@ -85,8 +85,11 @@ class Exporter(ExporterSubcommandPlugin):
85
85
  help='show addrmap, regfile, memory, register and fields that '
86
86
  'have been given the python_hide user defined property and '
87
87
  'would be removed from the build python by default')
88
- arg_group.add_argument('--udp', dest='udp', nargs='*', type=str,
88
+ udp_group = arg_group.add_mutually_exclusive_group(required=False)
89
+ udp_group.add_argument('--udp', dest='udp', nargs='*', type=str,
89
90
  help='any user defined properties to include in the reg_model')
91
+ udp_group.add_argument('--udp_regex', dest='udp_regex', type=str,
92
+ help='a regex to define which UPD ares show in the reg model')
90
93
  arg_group.add_argument('--hide_regex', dest='hide_regex', type=str,
91
94
  help='A regex that will cause any matching fully qualified node to '
92
95
  'be hidden')
@@ -172,6 +175,7 @@ class Exporter(ExporterSubcommandPlugin):
172
175
  legacy_block_access=options.legacy_block_access,
173
176
  show_hidden=options.show_hidden,
174
177
  user_defined_properties_to_include=options.udp,
178
+ user_defined_properties_to_include_regex=options.udp_regex,
175
179
  hidden_inst_name_regex=options.hide_regex,
176
180
  skip_library_copy=options.skip_library_copy,
177
181
  legacy_enum_type=options.legacy_enum_type,
@@ -21,9 +21,7 @@ from systemrdl.node import Node
21
21
  from systemrdl.node import FieldNode
22
22
  from systemrdl.node import RegNode
23
23
  from systemrdl.node import MemNode
24
- from systemrdl.rdltypes.user_enum import UserEnumMeta
25
24
  from .systemrdl_node_utility_functions import is_encoded_field
26
- from .systemrdl_node_hashes import enum_hash
27
25
 
28
26
  def get_field_get_base_class_name(node: FieldNode, async_library_classes: bool) -> str:
29
27
  """
@@ -105,13 +103,3 @@ def get_base_class_name(node: Node, async_library_classes: bool) -> str:
105
103
  return __get_mem_get_base_class_name(node, async_library_classes=async_library_classes)
106
104
 
107
105
  raise TypeError(f'Unhandled node type: {type(node)}')
108
-
109
- def fully_qualified_enum_type(field_enum: UserEnumMeta) -> str:
110
- """
111
- Returns the fully qualified class type name, for an enum
112
- """
113
- enum_hash_value = enum_hash(field_enum)
114
- full_scope_path = field_enum.get_scope_path('_')
115
- if enum_hash_value < 0:
116
- return full_scope_path + '_' + field_enum.type_name + '_neg_' + hex(-enum_hash_value)
117
- return full_scope_path + '_' + field_enum.type_name + hex(enum_hash_value)