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.
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/.github/workflows/action.yaml +18 -3
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/PKG-INFO +1 -1
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/generate_testcases.py +8 -15
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/__about__.py +1 -1
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/async_register_and_field.py +3 -11
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/register_and_field.py +7 -20
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib_test/_common_base_test_class.py +29 -8
- peakrdl_python-3.0.0rc3/src/peakrdl_python/lib_test/async_reg_base_test_class.py +891 -0
- peakrdl_python-3.0.0rc3/src/peakrdl_python/lib_test/base_reg_test_class.py +878 -0
- peakrdl_python-3.0.0rc3/src/peakrdl_python/lib_test/utilities.py +234 -0
- peakrdl_python-3.0.0rc3/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +200 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_tb.py.jinja +3 -428
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/baseclass_tb.py.jinja +14 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/PKG-INFO +1 -1
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_reg.py +9 -8
- peakrdl_python-3.0.0rc1/src/peakrdl_python/lib_test/async_reg_base_test_class.py +0 -307
- peakrdl_python-3.0.0rc1/src/peakrdl_python/lib_test/base_reg_test_class.py +0 -290
- peakrdl_python-3.0.0rc1/src/peakrdl_python/lib_test/utilities.py +0 -108
- peakrdl_python-3.0.0rc1/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +0 -437
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/.gitignore +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/.readthedocs.yaml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/LICENSE +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/MANIFEST.in +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/README.md +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/api.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/api_components.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/command_line.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/conf.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/customisation.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/design_decisions.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/design_tools.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/generated_package.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/genindex.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/index.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/installation.rst +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/docs/requirements.txt +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/array_access/array_access.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/array_access/demo_array_access.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/enumerated_fields/demo_enumerated_fields.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/enumerated_fields/enumerated_fields.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/demo_optimised_access.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/demo_optimised_array_access.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/optimised_access.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/optimised_access/optimised_array_access.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/overridden_names/demo_over_ridden_names.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/overridden_names/overridden_names.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/simulating_callbacks/chip_with_a_GPIO.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/simulating_callbacks/flashing_the_LED.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/chip_with_registers.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/dumping_register_state_to_json_file.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/reg_dump.json +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/reseting_registers.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/tranversing_address_map/writing_register_state_from_json_file.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/user_defined_properties/demo_user_defined_properties.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/user_defined_properties/user_defined_properties.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/gpio.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/with_hal.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/with_ral.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/example/why_ral/without_ral.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/generate_and_test.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/pyproject.toml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/setup.cfg +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/.coveragerc +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/__peakrdl__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/_deploy_package.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/_node_walkers.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/class_names.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/compiler_udp.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/exporter.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/async_memory.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/base.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/base_field.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/base_register.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/callbacks.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/field_encoding.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/memory.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/py.typed +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/sections.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/utility_functions.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib_test/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/py.typed +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/safe_name_utility.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/_callbacks.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/base.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/dummy_callbacks.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/field.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/memory.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/py.typed +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/register.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/sim_lib/simulator.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/systemrdl_node_hashes.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/systemrdl_node_utility_functions.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_field.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_memory.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_register.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_simulation.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_system_rdl_name_mapping.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_udp_property.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/addrmap_universal_property.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/baseclass_simulation_tb.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/child_definitions.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/example.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/field_enums.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/header.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/header_tb.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/property_enums.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/reg_definitions.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/templates/template_ultilities.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/unique_component_iterator.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/SOURCES.txt +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/dependency_links.txt +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/entry_points.txt +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/requires.txt +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python.egg-info/top_level.txt +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates/header.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates/header_tb.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic/header.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic/header_tb.py.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic_toml/header_check.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_dynamic_toml/peakrdl.toml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_toml/header_check.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/alternative_templates_toml/peakrdl.toml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/pathological_register_maps/pathalogical_rdl_builder.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/pathological_register_maps/templates/pathological_template.rdl.jinja +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/RDLFormatCode_example.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/addr_map.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/aliases.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/all_register_access_types.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/basic.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/block_a.xml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/block_b.xml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/deduplicated_field.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/different_array_types.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/enum_example.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/example_issue_106.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/extended_memories.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/extended_sizes_registers_array.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/field_scope.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/field_with_overridden_reset.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/fields_with_HW_write.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/fields_with_reset_values.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/hidden_property.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/large_field_combinations.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/memories.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/memories_with_registers.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/msb0_and_lsb0.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/multi_block.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/multifile.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_clash.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_desc_all_levels.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_desc_option_deduplicate.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/name_desc_stress_test.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/overridden_python_name.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/parametrised_readonly_and_readwrite.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/parametrised_top.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/reg_name_stress.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/regfile_and_arrays.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/reserved_elements.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/same_but_different_enum.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/shared_register_issue_202 +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/signals_definitions_at_various_levels.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/simple.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/simple.xml +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/simulator_test.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/sizes_registers.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/sizes_registers_array.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/sparse_enum_issue_200.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/user_defined_properties.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/testcases/write_only_enum_with_undefined_reset.rdl +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/__init__.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/simple_components.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_array_indexing.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_building_inner_addrmap.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_export.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_field.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_name_desc_export.py +0 -0
- {peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/tests/unit_tests/test_optimised_reg_array.py +0 -0
- {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
|
|
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
|
|
372
|
+
python generate_testcases.py --output testcase_output
|
|
358
373
|
|
|
359
374
|
- name: Static checks
|
|
360
375
|
run: |
|
|
@@ -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 = '
|
|
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=
|
|
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:
|
|
@@ -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
|
|
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
|
-
|
|
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
|
"""
|
{peakrdl_python-3.0.0rc1 → peakrdl_python-3.0.0rc3}/src/peakrdl_python/lib/register_and_field.py
RENAMED
|
@@ -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):
|
|
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
|
|
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):
|
|
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
|
|
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,
|
|
64
|
-
self.assertEqual(fut.inverse_bitmask,
|
|
65
|
-
|
|
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)
|