peakrdl-python 3.0.0rc1__tar.gz → 3.0.0rc3__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 (184) hide show
  1. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/.github/workflows/action.yaml +18 -3
  2. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/PKG-INFO +1 -1
  3. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/generate_testcases.py +8 -15
  4. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/__about__.py +1 -1
  5. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/async_register_and_field.py +3 -11
  6. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/register_and_field.py +7 -20
  7. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib_test/_common_base_test_class.py +29 -8
  8. peakrdl_python-3.0.0rc3/src/peakrdl_python/lib_test/async_reg_base_test_class.py +891 -0
  9. peakrdl_python-3.0.0rc3/src/peakrdl_python/lib_test/base_reg_test_class.py +878 -0
  10. peakrdl_python-3.0.0rc3/src/peakrdl_python/lib_test/utilities.py +234 -0
  11. peakrdl_python-3.0.0rc3/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +200 -0
  12. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_tb.py.jinja +3 -428
  13. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/baseclass_tb.py.jinja +14 -0
  14. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/PKG-INFO +1 -1
  15. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_reg.py +9 -8
  16. peakrdl_python-3.0.0rc1/src/peakrdl_python/lib_test/async_reg_base_test_class.py +0 -307
  17. peakrdl_python-3.0.0rc1/src/peakrdl_python/lib_test/base_reg_test_class.py +0 -290
  18. peakrdl_python-3.0.0rc1/src/peakrdl_python/lib_test/utilities.py +0 -108
  19. peakrdl_python-3.0.0rc1/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +0 -437
  20. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/.gitignore +0 -0
  21. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/.readthedocs.yaml +0 -0
  22. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/LICENSE +0 -0
  23. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/MANIFEST.in +0 -0
  24. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/README.md +0 -0
  25. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/api.rst +0 -0
  26. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/api_components.rst +0 -0
  27. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/command_line.rst +0 -0
  28. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/conf.py +0 -0
  29. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/customisation.rst +0 -0
  30. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/design_decisions.rst +0 -0
  31. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/design_tools.rst +0 -0
  32. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/generated_package.rst +0 -0
  33. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/genindex.rst +0 -0
  34. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/index.rst +0 -0
  35. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/installation.rst +0 -0
  36. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/requirements.txt +0 -0
  37. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/array_access/array_access.rdl +0 -0
  38. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/array_access/demo_array_access.py +0 -0
  39. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/enumerated_fields/demo_enumerated_fields.py +0 -0
  40. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/enumerated_fields/enumerated_fields.rdl +0 -0
  41. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/demo_optimised_access.py +0 -0
  42. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/demo_optimised_array_access.py +0 -0
  43. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/optimised_access.rdl +0 -0
  44. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/optimised_array_access.rdl +0 -0
  45. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/overridden_names/demo_over_ridden_names.py +0 -0
  46. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/overridden_names/overridden_names.rdl +0 -0
  47. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/simulating_callbacks/chip_with_a_GPIO.rdl +0 -0
  48. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/simulating_callbacks/flashing_the_LED.py +0 -0
  49. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/chip_with_registers.rdl +0 -0
  50. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/dumping_register_state_to_json_file.py +0 -0
  51. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/reg_dump.json +0 -0
  52. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/reseting_registers.py +0 -0
  53. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/writing_register_state_from_json_file.py +0 -0
  54. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/user_defined_properties/demo_user_defined_properties.py +0 -0
  55. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/user_defined_properties/user_defined_properties.rdl +0 -0
  56. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/__init__.py +0 -0
  57. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/gpio.rdl +0 -0
  58. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/with_hal.py +0 -0
  59. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/with_ral.py +0 -0
  60. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/without_ral.py +0 -0
  61. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/generate_and_test.py +0 -0
  62. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/pyproject.toml +0 -0
  63. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/setup.cfg +0 -0
  64. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/.coveragerc +0 -0
  65. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/__init__.py +0 -0
  66. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/__peakrdl__.py +0 -0
  67. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/_deploy_package.py +0 -0
  68. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/_node_walkers.py +0 -0
  69. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/class_names.py +0 -0
  70. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/compiler_udp.py +0 -0
  71. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/exporter.py +0 -0
  72. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/__init__.py +0 -0
  73. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/async_memory.py +0 -0
  74. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/base.py +0 -0
  75. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/base_field.py +0 -0
  76. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/base_register.py +0 -0
  77. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/callbacks.py +0 -0
  78. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/field_encoding.py +0 -0
  79. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/memory.py +0 -0
  80. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/py.typed +0 -0
  81. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/sections.py +0 -0
  82. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/utility_functions.py +0 -0
  83. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib_test/__init__.py +0 -0
  84. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/py.typed +0 -0
  85. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/safe_name_utility.py +0 -0
  86. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/__init__.py +0 -0
  87. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/_callbacks.py +0 -0
  88. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/base.py +0 -0
  89. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/dummy_callbacks.py +0 -0
  90. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/field.py +0 -0
  91. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/memory.py +0 -0
  92. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/py.typed +0 -0
  93. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/register.py +0 -0
  94. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/simulator.py +0 -0
  95. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/systemrdl_node_hashes.py +0 -0
  96. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/systemrdl_node_utility_functions.py +0 -0
  97. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/__init__.py +0 -0
  98. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap.py.jinja +0 -0
  99. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_field.py.jinja +0 -0
  100. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_memory.py.jinja +0 -0
  101. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_register.py.jinja +0 -0
  102. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_simulation.py.jinja +0 -0
  103. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_system_rdl_name_mapping.py.jinja +0 -0
  104. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_udp_property.py.jinja +0 -0
  105. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_universal_property.py.jinja +0 -0
  106. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/baseclass_simulation_tb.py.jinja +0 -0
  107. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/child_definitions.py.jinja +0 -0
  108. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/example.py.jinja +0 -0
  109. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/field_enums.py.jinja +0 -0
  110. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/header.py.jinja +0 -0
  111. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/header_tb.py.jinja +0 -0
  112. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/property_enums.py.jinja +0 -0
  113. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/reg_definitions.py.jinja +0 -0
  114. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/template_ultilities.py.jinja +0 -0
  115. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/unique_component_iterator.py +0 -0
  116. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/SOURCES.txt +0 -0
  117. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/dependency_links.txt +0 -0
  118. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/entry_points.txt +0 -0
  119. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/requires.txt +0 -0
  120. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/top_level.txt +0 -0
  121. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates/header.py.jinja +0 -0
  122. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates/header_tb.py.jinja +0 -0
  123. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic/header.py.jinja +0 -0
  124. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic/header_tb.py.jinja +0 -0
  125. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic_toml/header_check.py +0 -0
  126. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic_toml/peakrdl.toml +0 -0
  127. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_toml/header_check.py +0 -0
  128. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_toml/peakrdl.toml +0 -0
  129. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/pathological_register_maps/pathalogical_rdl_builder.py +0 -0
  130. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/pathological_register_maps/templates/pathological_template.rdl.jinja +0 -0
  131. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/RDLFormatCode_example.rdl +0 -0
  132. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/addr_map.rdl +0 -0
  133. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/aliases.rdl +0 -0
  134. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/all_register_access_types.rdl +0 -0
  135. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/basic.rdl +0 -0
  136. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/block_a.xml +0 -0
  137. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/block_b.xml +0 -0
  138. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/deduplicated_field.rdl +0 -0
  139. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/different_array_types.rdl +0 -0
  140. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/enum_example.rdl +0 -0
  141. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/example_issue_106.rdl +0 -0
  142. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/extended_memories.rdl +0 -0
  143. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/extended_sizes_registers_array.rdl +0 -0
  144. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/field_scope.rdl +0 -0
  145. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/field_with_overridden_reset.rdl +0 -0
  146. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/fields_with_HW_write.rdl +0 -0
  147. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/fields_with_reset_values.rdl +0 -0
  148. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/hidden_property.rdl +0 -0
  149. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/large_field_combinations.rdl +0 -0
  150. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/memories.rdl +0 -0
  151. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/memories_with_registers.rdl +0 -0
  152. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/msb0_and_lsb0.rdl +0 -0
  153. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/multi_block.rdl +0 -0
  154. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/multifile.rdl +0 -0
  155. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_clash.rdl +0 -0
  156. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_desc_all_levels.rdl +0 -0
  157. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_desc_option_deduplicate.rdl +0 -0
  158. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_desc_stress_test.rdl +0 -0
  159. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/overridden_python_name.rdl +0 -0
  160. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/parametrised_readonly_and_readwrite.rdl +0 -0
  161. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/parametrised_top.rdl +0 -0
  162. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/reg_name_stress.rdl +0 -0
  163. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/regfile_and_arrays.rdl +0 -0
  164. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/reserved_elements.rdl +0 -0
  165. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/same_but_different_enum.rdl +0 -0
  166. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/shared_register_issue_202 +0 -0
  167. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/signals_definitions_at_various_levels.rdl +0 -0
  168. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/simple.rdl +0 -0
  169. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/simple.xml +0 -0
  170. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/simulator_test.rdl +0 -0
  171. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/sizes_registers.rdl +0 -0
  172. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/sizes_registers_array.rdl +0 -0
  173. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/sparse_enum_issue_200.rdl +0 -0
  174. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/user_defined_properties.rdl +0 -0
  175. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/write_only_enum_with_undefined_reset.rdl +0 -0
  176. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/__init__.py +0 -0
  177. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/simple_components.py +0 -0
  178. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_array_indexing.py +0 -0
  179. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_building_inner_addrmap.py +0 -0
  180. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_export.py +0 -0
  181. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_field.py +0 -0
  182. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_name_desc_export.py +0 -0
  183. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_optimised_reg_array.py +0 -0
  184. {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_system_rdl_enum.py +0 -0
@@ -134,26 +134,42 @@ jobs:
134
134
  run: |
135
135
 
136
136
  python -m generate_and_test --RDL_source_file tests/testcases/simulator_test.rdl --root_node simulator_test
137
+ sleep 10
137
138
  python -m generate_and_test --RDL_source_file tests/testcases/simulator_test.rdl --root_node simulator_test --async
139
+ sleep 10
138
140
 
139
141
  python -m generate_and_test --RDL_source_file tests/testcases/accelera-generic_example.rdl --root_node some_register_map
142
+ sleep 10
140
143
  python -m generate_and_test --RDL_source_file tests/testcases/accelera-generic_example.rdl --root_node some_register_map --legacy_block_access
144
+ sleep 10
141
145
  python -m generate_and_test --RDL_source_file tests/testcases/accelera-generic_example.rdl --root_node some_register_map --legacy_enum_type
146
+ sleep 10
142
147
  python -m generate_and_test --RDL_source_file tests/testcases/accelera-generic_example.rdl --root_node some_register_map --copy_libraries
148
+ sleep 10
143
149
  python -m generate_and_test --RDL_source_file tests/testcases/accelera-generic_example.rdl --root_node some_register_map --hashing_mode PYTHONHASH
150
+ sleep 10
144
151
  python -m generate_and_test --RDL_source_file tests/testcases/accelera-generic_example.rdl --root_node some_register_map --hashing_mode SHA256
152
+ sleep 10
145
153
 
146
154
  python -m generate_and_test --RDL_source_file tests/testcases/user_defined_properties.rdl --root_node user_defined_properties --udp bool_property_to_include
155
+ sleep 10
147
156
  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
157
+ sleep 10
148
158
  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
159
+ sleep 10
149
160
  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
161
+ sleep 10
150
162
  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
163
+ sleep 10
151
164
 
152
165
  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"
166
+ sleep 10
153
167
 
154
168
  python -m generate_and_test --RDL_source_file tests/testcases/reserved_elements.rdl --root_node reserved_elements --hide_regex "(?:[\w_\[\]]+\.)+RSVD"
169
+ sleep 10
155
170
 
156
171
  python -m generate_and_test --RDL_source_file tests/testcases/name_desc_all_levels.rdl --root_node name_desc_all_levels --skip_systemrdl_name_and_desc_properties
172
+ sleep 10
157
173
 
158
174
  peakrdl_integration:
159
175
  needs:
@@ -323,7 +339,6 @@ jobs:
323
339
  matrix:
324
340
  python-version: [3.9, "3.10", "3.11", "3.12", "3.13", "3.14"]
325
341
  lib_copy: [true, false]
326
- hashing_mode: ["PYTHONHASH", "SHA256"]
327
342
 
328
343
  steps:
329
344
  - uses: actions/checkout@v4
@@ -349,12 +364,12 @@ jobs:
349
364
  - name: Generate testcases (lib_copy true)
350
365
  if: matrix.lib_copy == true
351
366
  run: |
352
- python generate_testcases.py --copy_libraries --output testcase_output --hashing_mode ${{ matrix.hashing_mode }}
367
+ python generate_testcases.py --copy_libraries --output testcase_output
353
368
 
354
369
  - name: Generate testcases (lib_copy false)
355
370
  if: matrix.lib_copy == false
356
371
  run: |
357
- python generate_testcases.py --output testcase_output --hashing_mode ${{ matrix.hashing_mode }}
372
+ python generate_testcases.py --output testcase_output
358
373
 
359
374
  - name: Static checks
360
375
  run: |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: peakrdl-python
3
- Version: 3.0.0rc1
3
+ Version: 3.0.0rc3
4
4
  Summary: Generate Python Register Access Layer (RAL) from SystemRDL
5
5
  Author: Keith Brady
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -49,16 +49,6 @@ CommandLineParser.add_argument('--copy_libraries', action='store_true', dest='co
49
49
  'and debugging as multiple copies of the libraries can cause'
50
50
  'confusion. Therefore by default this script does not copy '
51
51
  'them over.')
52
- CommandLineParser.add_argument('--hashing_mode',
53
- dest='hashing_mode',
54
- type=str,
55
- choices=[item.name for item in NodeHashingMethod],
56
- default='PYTHONHASH',
57
- help='The method used to generate the hash of the node, in order to '
58
- 'deduplicate the register model. Set this to `SHA256` if '
59
- 'the python names need to stay consistent one export to the '
60
- 'next. However, this mode is slower')
61
-
62
52
 
63
53
  def compile_rdl(infile: str,
64
54
  incl_search_paths: Optional[List[str]] = None,
@@ -158,19 +148,22 @@ if __name__ == '__main__':
158
148
  options = {
159
149
  'asyncoutput': [True, False],
160
150
  'legacy': [True, False],
161
- 'skip_systemrdl_name_and_desc_in_docstring': [True, False]
151
+ 'skip_systemrdl_name_and_desc_in_docstring': [True, False],
152
+ 'hashing': list(NodeHashingMethod)
162
153
  }
163
154
 
164
- for asyncoutput, legacy, skip_name_and_desc_in_docstring in product(
155
+ for asyncoutput, legacy, skip_name_and_desc_in_docstring, hashing_method in product(
165
156
  options['asyncoutput'], options['legacy'],
166
- options['skip_systemrdl_name_and_desc_in_docstring'] ):
157
+ options['skip_systemrdl_name_and_desc_in_docstring'],
158
+ options['hashing']):
167
159
 
168
160
  # test cases that use the extended widths an not be tested in the non-legacy modes
169
161
  if (testcase_name in ['extended_memories', 'extended_sizes_registers_array']) and \
170
162
  (legacy is True):
171
163
  continue
172
164
 
173
- folder_parts = 'raw'
165
+ folder_parts = 'raw_'
166
+ folder_parts += hashing_method.name
174
167
  if asyncoutput:
175
168
  folder_parts += '_async'
176
169
  if legacy:
@@ -184,7 +177,7 @@ if __name__ == '__main__':
184
177
  legacy_enum_type=legacy,
185
178
  copy_library=CommandLineArgs.copy_libraries,
186
179
  skip_systemrdl_name_and_desc_in_docstring=skip_name_and_desc_in_docstring,
187
- hashing_mode=NodeHashingMethod[CommandLineArgs.hashing_mode])
180
+ hashing_mode=hashing_method)
188
181
 
189
182
  module_fqfn = output_path / folder_parts / '__init__.py'
190
183
  with open(module_fqfn, 'w', encoding='utf-8') as fid:
@@ -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__ = "3.0.0rc1"
20
+ __version__ = "3.0.0rc3"
@@ -346,8 +346,7 @@ class RegAsyncReadWrite(RegAsyncReadOnly, RegAsyncWriteOnly, ABC):
346
346
  # pylint: enable=too-many-arguments, duplicate-code
347
347
 
348
348
  @asynccontextmanager
349
- async def single_read_modify_write(self, verify: bool = False, skip_write: bool = False) -> \
350
- AsyncGenerator[Self]:
349
+ async def single_read_modify_write(self, verify: bool = False) -> AsyncGenerator[Self]:
351
350
  """
352
351
  Context manager to allow multiple field reads/write to be done with a single set of
353
352
  field operations
@@ -361,11 +360,6 @@ class RegAsyncReadWrite(RegAsyncReadOnly, RegAsyncWriteOnly, ABC):
361
360
  if self.__in_read_context_manager:
362
361
  raise RuntimeError('using the `single_read_modify_write` context manager within the '
363
362
  'single_read` is not permitted')
364
-
365
- if skip_write is True:
366
- warn('The `skip_write` argument will be removed in the future, use `single_read`'
367
- ' instead',
368
- DeprecationWarning, stacklevel=2)
369
363
  # pylint: enable=duplicate-code
370
364
 
371
365
  self.__register_state = await self.read()
@@ -379,15 +373,13 @@ class RegAsyncReadWrite(RegAsyncReadOnly, RegAsyncWriteOnly, ABC):
379
373
  finally:
380
374
  self.__in_read_write_context_manager = False
381
375
  # pylint: enable=duplicate-code
382
- if not skip_write:
383
- await self.write(self.__register_state, verify)
376
+ await self.write(self.__register_state, verify)
384
377
 
385
378
  # clear the register states at the end of the context manager
386
379
  self.__register_state = None
387
380
 
388
381
  @asynccontextmanager
389
- async def single_read(self) -> \
390
- AsyncGenerator[Self]:
382
+ async def single_read(self) -> AsyncGenerator[Self]:
391
383
  """
392
384
  Context manager to allow multiple field reads with a single register read
393
385
  """
@@ -26,7 +26,6 @@ from abc import ABC, abstractmethod
26
26
  from contextlib import contextmanager
27
27
  from array import array as Array
28
28
  import sys
29
- from warnings import warn
30
29
 
31
30
  from .sections import AddressMap, RegFile
32
31
  from .utility_functions import get_array_typecode
@@ -409,7 +408,7 @@ class RegArray(BaseRegArray[RegArrayElementType], ABC):
409
408
  field operations
410
409
 
411
410
  Args:
412
- verify (bool): very the write with a read afterwards
411
+ verify (bool): verify the write with a read afterwards
413
412
  skip_write (bool): skip the write back at the end
414
413
  """
415
414
  self.__register_address_array = \
@@ -667,26 +666,19 @@ class RegReadWrite(RegReadOnly, RegWriteOnly, ABC):
667
666
  # pylint: enable=too-many-arguments, duplicate-code
668
667
 
669
668
  @contextmanager
670
- def single_read_modify_write(self, verify: bool = False, skip_write: bool = False) -> \
671
- Generator[Self]:
669
+ def single_read_modify_write(self, verify: bool = False) -> Generator[Self]:
672
670
  """
673
671
  Context manager to allow multiple field reads/write to be done with a single set of
674
672
  field operations
675
673
 
676
674
  Args:
677
- verify (bool): very the write with a read afterwards
678
- skip_write (bool): skip the write back at the end
675
+ verify (bool): verify the write with a read afterwards
679
676
 
680
677
  """
681
678
  if self.__in_read_context_manager:
682
679
  raise RuntimeError('using the `single_read_modify_write` context manager within the '
683
680
  'single_read` is not permitted')
684
681
 
685
- if skip_write is True:
686
- warn('The `skip_write` argument will be removed in the future, use `single_read`'
687
- ' instead',
688
- DeprecationWarning, stacklevel=2)
689
-
690
682
  self.__register_state = self.read()
691
683
  self.__in_read_write_context_manager = True
692
684
  try:
@@ -695,16 +687,13 @@ class RegReadWrite(RegReadOnly, RegWriteOnly, ABC):
695
687
  # need to make sure the state flag is cleared even if an exception occurs within
696
688
  # the context
697
689
  self.__in_read_write_context_manager = False
698
-
699
- if not skip_write:
700
- self.write(self.__register_state, verify)
690
+ self.write(self.__register_state, verify)
701
691
 
702
692
  # clear the register states at the end of the context manager
703
693
  self.__register_state = None
704
694
 
705
695
  @contextmanager
706
- def single_read(self) -> \
707
- Generator[Self]:
696
+ def single_read(self) -> Generator[Self]:
708
697
  """
709
698
  Context manager to allow multiple field reads with a single register read
710
699
  """
@@ -837,8 +826,7 @@ class RegReadOnlyArray(RegArray[RegReadOnly], ABC):
837
826
  # pylint: enable=too-many-arguments,duplicate-code
838
827
 
839
828
  @contextmanager
840
- def single_read(self) -> \
841
- Generator[Self]:
829
+ def single_read(self) -> Generator[Self]:
842
830
  """
843
831
  Context manager to allow multiple field reads/write to be done with a single set of
844
832
  field operations
@@ -889,8 +877,7 @@ class RegWriteOnlyArray(RegArray[RegWriteOnly], ABC):
889
877
  # pylint: enable=too-many-arguments,duplicate-code
890
878
 
891
879
  @contextmanager
892
- def single_write(self) -> \
893
- Generator[Self]:
880
+ def single_write(self) -> Generator[Self]:
894
881
  """
895
882
  Context manager to allow multiple field reads/write to be done with a single set of
896
883
  field operations
@@ -19,20 +19,30 @@ This package is intended to distributed as part of automatically generated code
19
19
  Python tool. It provide the base class common to both the async and non-async versions
20
20
  """
21
21
  import unittest
22
- from abc import ABC
22
+ from abc import ABC, abstractmethod
23
23
  from typing import Union, Optional
24
24
 
25
25
  from ..lib import FieldReadWrite, FieldReadOnly, FieldWriteOnly
26
26
  from ..lib import FieldEnumReadWrite, FieldEnumReadOnly, FieldEnumWriteOnly
27
27
  from ..lib import FieldAsyncReadOnly, FieldAsyncWriteOnly, FieldAsyncReadWrite
28
28
  from ..lib import FieldEnumAsyncReadOnly, FieldEnumAsyncWriteOnly, FieldEnumAsyncReadWrite
29
+ from ..lib.base_register import BaseReg
30
+ from .utilities import get_field_bitmask_int, get_field_inv_bitmask
31
+ from ..sim_lib.simulator import BaseSimulator
29
32
 
30
33
  class CommonTestBase(unittest.TestCase, ABC):
31
34
  """
32
- Base Test class for the autogenerated register test to be used for for the async and
35
+ Base Test class for the autogenerated register test to be used for the async and
33
36
  non-async cases
34
37
  """
35
38
 
39
+ @property
40
+ @abstractmethod
41
+ def simulator_instance(self) -> BaseSimulator:
42
+ """
43
+ Simulator configured for the DUT
44
+ """
45
+
36
46
  # pylint:disable-next=too-many-arguments
37
47
  def _single_field_property_test(self, *,
38
48
  fut: Union[FieldReadWrite,
@@ -51,18 +61,17 @@ class CommonTestBase(unittest.TestCase, ABC):
51
61
  msb: int,
52
62
  low: int,
53
63
  high: int,
54
- bitmask: int,
55
- inverse_bitmask: int,
56
- max_value: int,
57
64
  is_volatile: bool,
58
65
  default: Optional[int]) -> None:
59
66
  self.assertEqual(fut.lsb, lsb)
60
67
  self.assertEqual(fut.msb, msb)
61
68
  self.assertEqual(fut.low, low)
62
69
  self.assertEqual(fut.high, high)
63
- self.assertEqual(fut.bitmask, bitmask)
64
- self.assertEqual(fut.inverse_bitmask, inverse_bitmask)
65
- self.assertEqual(fut.max_value, max_value)
70
+ self.assertEqual(fut.bitmask, get_field_bitmask_int(fut))
71
+ self.assertEqual(fut.inverse_bitmask, get_field_inv_bitmask(fut))
72
+ width = (fut.high - fut.low) + 1
73
+ self.assertEqual(fut.width, width)
74
+ self.assertEqual(fut.max_value, (2**width) - 1)
66
75
  self.assertEqual(fut.is_volatile, is_volatile)
67
76
 
68
77
  if default is None:
@@ -86,3 +95,15 @@ class CommonTestBase(unittest.TestCase, ABC):
86
95
  self.assertIsNone(fut.default)
87
96
  else:
88
97
  self.assertEqual(fut.default, default)
98
+
99
+ def _single_register_property_test(self, *,
100
+ rut: BaseReg,
101
+ address: int,
102
+ width: int,
103
+ accesswidth: Optional[int]) -> None:
104
+ self.assertEqual(rut.address, address)
105
+ self.assertEqual(rut.width, width)
106
+ if accesswidth is not None:
107
+ self.assertEqual(rut.accesswidth, accesswidth)
108
+ else:
109
+ self.assertEqual(rut.accesswidth, width)