peakrdl-python 0.9.2__tar.gz → 0.9.4__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-0.9.2 → peakrdl_python-0.9.4}/.github/workflows/action.yaml +5 -7
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/PKG-INFO +2 -5
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/pyproject.toml +1 -4
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/__about__.py +1 -1
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/__init__.py +41 -41
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/async_memory.py +40 -60
- peakrdl_python-0.9.2/src/peakrdl_python/lib/async_register.py → peakrdl_python-0.9.4/src/peakrdl_python/lib/async_register_and_field.py +291 -99
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/base.py +6 -6
- peakrdl_python-0.9.4/src/peakrdl_python/lib/base_field.py +473 -0
- peakrdl_python-0.9.4/src/peakrdl_python/lib/base_register.py +229 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/callbacks.py +86 -107
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/memory.py +37 -57
- peakrdl_python-0.9.2/src/peakrdl_python/lib/register.py → peakrdl_python-0.9.4/src/peakrdl_python/lib/register_and_field.py +278 -291
- peakrdl_python-0.9.4/src/peakrdl_python/sim_lib/_callbacks.py +79 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/memory.py +2 -8
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/register.py +4 -14
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/systemrdl_node_utility_functions.py +9 -19
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_register.py.jinja +1 -26
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +2 -6
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_tb.py.jinja +2 -6
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/PKG-INFO +2 -5
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/SOURCES.txt +4 -3
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/requires.txt +0 -3
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/name_clash.rdl +2 -0
- peakrdl_python-0.9.2/src/peakrdl_python/lib/fields.py +0 -892
- peakrdl_python-0.9.2/src/peakrdl_python/sim_lib/_callbacks.py +0 -95
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/.gitignore +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/.readthedocs.yaml +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/LICENSE +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/MANIFEST.in +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/README.md +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/api.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/api_components.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/command_line.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/conf.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/customisation.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/design_decisions.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/design_tools.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/generated_package.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/genindex.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/index.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/installation.rst +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/requirements.txt +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/array_access/array_access.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/array_access/demo_array_access.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/enumerated_fields/demo_enumerated_fields.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/enumerated_fields/enumerated_fields.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/demo_optimised_access.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/demo_optimised_array_access.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/optimised_access.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/optimised_array_access.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/overridden_names/demo_over_ridden_names.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/overridden_names/overridden_names.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/simulating_callbacks/chip_with_a_GPIO.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/simulating_callbacks/flashing_the_LED.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/chip_with_registers.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/dumping_register_state_to_json_file.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/reg_dump.json +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/reseting_registers.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/writing_register_state_from_json_file.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/user_defined_properties/demo_user_defined_properties.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/user_defined_properties/user_defined_properties.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/__init__.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/gpio.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/with_hal.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/with_ral.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/without_ral.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/generate_and_test.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/generate_testcases.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/setup.cfg +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/.coveragerc +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/__init__.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/__peakrdl__.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/_node_walkers.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/compiler_udp.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/exporter.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/utility_functions.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/safe_name_utility.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/__init__.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/base.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/dummy_callbacks.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/field.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/simulator.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/__init__.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_field.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_memory.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_simulation.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_udp_property.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/baseclass_simulation_tb.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/baseclass_tb.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/example.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/header.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/header_tb.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/reg_definitions.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/sim_addrmap.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/dependency_links.txt +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/entry_points.txt +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/top_level.txt +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/.mypy.ini +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates/header.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates/header_tb.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic/header.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic/header_tb.py.jinja +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic_toml/header_check.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic_toml/peakrdl.toml +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_toml/header_check.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_toml/peakrdl.toml +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/pylint.rc +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/RDLFormatCode_example.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/addr_map.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/all_register_access_types.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/basic.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/block_a.xml +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/block_b.xml +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/different_array_types.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/enum_example.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/example_issue_106.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/extended_memories.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/extended_sizes_registers_array.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/field_scope.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/field_with_overridden_reset.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/fields_with_HW_write.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/fields_with_reset_values.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/hidden_property.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/memories.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/memories_with_registers.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/msb0_and_lsb0.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/multi_block.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/multifile.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/overridden_python_name.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/parametrised_readonly_and_readwrite.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/regfile_and_arrays.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/reserved_elements.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/same_but_different_enum.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/signals_definitions_at_various_levels.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/simple.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/simple.xml +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/simulator_test.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/sizes_registers.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/sizes_registers_array.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/user_defined_properties.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/write_only_enum_with_undefined_reset.rdl +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/__init__.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/simple_components.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_array_indexing.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_export.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_optimised_reg_array.py +0 -0
- {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_reg.py +0 -0
|
@@ -71,7 +71,7 @@ jobs:
|
|
|
71
71
|
runs-on: ubuntu-latest
|
|
72
72
|
strategy:
|
|
73
73
|
matrix:
|
|
74
|
-
python-version: [ 3.
|
|
74
|
+
python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
|
|
75
75
|
|
|
76
76
|
steps:
|
|
77
77
|
- uses: actions/checkout@v4
|
|
@@ -101,7 +101,7 @@ jobs:
|
|
|
101
101
|
runs-on: ubuntu-latest
|
|
102
102
|
strategy:
|
|
103
103
|
matrix:
|
|
104
|
-
python-version: [ 3.
|
|
104
|
+
python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
|
|
105
105
|
|
|
106
106
|
steps:
|
|
107
107
|
- uses: actions/checkout@v4
|
|
@@ -150,7 +150,7 @@ jobs:
|
|
|
150
150
|
runs-on: ubuntu-latest
|
|
151
151
|
strategy:
|
|
152
152
|
matrix:
|
|
153
|
-
python-version: [ 3.
|
|
153
|
+
python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
|
|
154
154
|
|
|
155
155
|
steps:
|
|
156
156
|
- uses: actions/checkout@v4
|
|
@@ -252,7 +252,7 @@ jobs:
|
|
|
252
252
|
runs-on: ubuntu-latest
|
|
253
253
|
strategy:
|
|
254
254
|
matrix:
|
|
255
|
-
python-version: [3.
|
|
255
|
+
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
|
|
256
256
|
|
|
257
257
|
steps:
|
|
258
258
|
- uses: actions/checkout@v4
|
|
@@ -291,9 +291,7 @@ jobs:
|
|
|
291
291
|
runs-on: ubuntu-latest
|
|
292
292
|
strategy:
|
|
293
293
|
matrix:
|
|
294
|
-
|
|
295
|
-
# limit this to modern versions of python only
|
|
296
|
-
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
|
|
294
|
+
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
|
|
297
295
|
|
|
298
296
|
steps:
|
|
299
297
|
- uses: actions/checkout@v4
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: peakrdl-python
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.4
|
|
4
4
|
Summary: Generate Python Register Access Layer (RAL) from SystemRDL
|
|
5
5
|
Author: Keith Brady
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -686,8 +686,6 @@ Keywords: SystemRDL,PeakRDL,CSR,compiler,tool,registers,generator,Python
|
|
|
686
686
|
Classifier: Development Status :: 4 - Beta
|
|
687
687
|
Classifier: Programming Language :: Python
|
|
688
688
|
Classifier: Programming Language :: Python :: 3
|
|
689
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
690
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
691
689
|
Classifier: Programming Language :: Python :: 3.9
|
|
692
690
|
Classifier: Programming Language :: Python :: 3.10
|
|
693
691
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -698,12 +696,11 @@ Classifier: Intended Audience :: Developers
|
|
|
698
696
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
699
697
|
Classifier: Operating System :: OS Independent
|
|
700
698
|
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
|
|
701
|
-
Requires-Python: >=3.
|
|
699
|
+
Requires-Python: >=3.9
|
|
702
700
|
Description-Content-Type: text/markdown
|
|
703
701
|
License-File: LICENSE
|
|
704
702
|
Requires-Dist: systemrdl-compiler>=1.25.0
|
|
705
703
|
Requires-Dist: jinja2
|
|
706
|
-
Requires-Dist: asynctest; python_version < "3.8"
|
|
707
704
|
Requires-Dist: typing-extensions; python_version < "3.11"
|
|
708
705
|
Provides-Extra: dev
|
|
709
706
|
Requires-Dist: mypy; extra == "dev"
|
|
@@ -5,11 +5,10 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "peakrdl-python"
|
|
7
7
|
dynamic = ["version"]
|
|
8
|
-
requires-python = ">=3.
|
|
8
|
+
requires-python = ">=3.9"
|
|
9
9
|
dependencies = [
|
|
10
10
|
"systemrdl-compiler>=1.25.0",
|
|
11
11
|
"jinja2",
|
|
12
|
-
"asynctest;python_version<'3.8'",
|
|
13
12
|
"typing-extensions;python_version<'3.11'"
|
|
14
13
|
]
|
|
15
14
|
|
|
@@ -27,8 +26,6 @@ classifiers = [
|
|
|
27
26
|
"Development Status :: 4 - Beta",
|
|
28
27
|
"Programming Language :: Python",
|
|
29
28
|
"Programming Language :: Python :: 3",
|
|
30
|
-
"Programming Language :: Python :: 3.7",
|
|
31
|
-
"Programming Language :: Python :: 3.8",
|
|
32
29
|
"Programming Language :: Python :: 3.9",
|
|
33
30
|
"Programming Language :: Python :: 3.10",
|
|
34
31
|
"Programming Language :: Python :: 3.11",
|
|
@@ -37,52 +37,52 @@ from .base import AsyncRegFile
|
|
|
37
37
|
from .base import AsyncAddressMapArray
|
|
38
38
|
from .base import AsyncRegFileArray
|
|
39
39
|
|
|
40
|
-
from .
|
|
41
|
-
from .
|
|
42
|
-
from .
|
|
40
|
+
from .register_and_field import Reg
|
|
41
|
+
from .register_and_field import RegArray
|
|
42
|
+
from .register_and_field import RegisterWriteVerifyError
|
|
43
43
|
|
|
44
|
-
from .
|
|
45
|
-
from .
|
|
46
|
-
from .
|
|
47
|
-
from .
|
|
48
|
-
from .
|
|
44
|
+
from .register_and_field import RegReadOnly
|
|
45
|
+
from .register_and_field import RegWriteOnly
|
|
46
|
+
from .register_and_field import RegReadWrite
|
|
47
|
+
from .register_and_field import WritableRegister
|
|
48
|
+
from .register_and_field import ReadableRegister
|
|
49
49
|
|
|
50
|
-
from .
|
|
51
|
-
from .
|
|
52
|
-
from .
|
|
53
|
-
from .
|
|
54
|
-
from .
|
|
50
|
+
from .register_and_field import RegReadOnlyArray
|
|
51
|
+
from .register_and_field import RegWriteOnlyArray
|
|
52
|
+
from .register_and_field import RegReadWriteArray
|
|
53
|
+
from .register_and_field import ReadableRegisterArray
|
|
54
|
+
from .register_and_field import WriteableRegisterArray
|
|
55
55
|
|
|
56
|
-
from .
|
|
57
|
-
from .
|
|
58
|
-
from .
|
|
59
|
-
from .
|
|
60
|
-
from .
|
|
61
|
-
from .
|
|
62
|
-
from .
|
|
63
|
-
from .
|
|
64
|
-
from .
|
|
65
|
-
from .
|
|
66
|
-
from .
|
|
67
|
-
from .
|
|
56
|
+
from .async_register_and_field import AsyncReg
|
|
57
|
+
from .async_register_and_field import AsyncRegArray
|
|
58
|
+
from .async_register_and_field import RegAsyncReadOnly
|
|
59
|
+
from .async_register_and_field import RegAsyncWriteOnly
|
|
60
|
+
from .async_register_and_field import RegAsyncReadWrite
|
|
61
|
+
from .async_register_and_field import ReadableAsyncRegister
|
|
62
|
+
from .async_register_and_field import WritableAsyncRegister
|
|
63
|
+
from .async_register_and_field import RegAsyncReadOnlyArray
|
|
64
|
+
from .async_register_and_field import RegAsyncWriteOnlyArray
|
|
65
|
+
from .async_register_and_field import RegAsyncReadWriteArray
|
|
66
|
+
from .async_register_and_field import ReadableAsyncRegisterArray
|
|
67
|
+
from .async_register_and_field import WriteableAsyncRegisterArray
|
|
68
68
|
|
|
69
|
-
from .
|
|
70
|
-
from .
|
|
71
|
-
from .
|
|
72
|
-
from .
|
|
73
|
-
from .
|
|
74
|
-
from .
|
|
75
|
-
from .
|
|
76
|
-
from .
|
|
77
|
-
from .
|
|
78
|
-
from .
|
|
69
|
+
from .base_field import FieldSizeProps
|
|
70
|
+
from .base_field import FieldMiscProps
|
|
71
|
+
from .register_and_field import FieldReadOnly
|
|
72
|
+
from .register_and_field import FieldWriteOnly
|
|
73
|
+
from .register_and_field import FieldReadWrite
|
|
74
|
+
from .base_field import Field
|
|
75
|
+
from .register_and_field import FieldEnumReadOnly
|
|
76
|
+
from .register_and_field import FieldEnumWriteOnly
|
|
77
|
+
from .register_and_field import FieldEnumReadWrite
|
|
78
|
+
from .base_field import FieldEnum
|
|
79
79
|
|
|
80
|
-
from .
|
|
81
|
-
from .
|
|
82
|
-
from .
|
|
83
|
-
from .
|
|
84
|
-
from .
|
|
85
|
-
from .
|
|
80
|
+
from .async_register_and_field import FieldAsyncReadOnly
|
|
81
|
+
from .async_register_and_field import FieldAsyncWriteOnly
|
|
82
|
+
from .async_register_and_field import FieldAsyncReadWrite
|
|
83
|
+
from .async_register_and_field import FieldEnumAsyncReadOnly
|
|
84
|
+
from .async_register_and_field import FieldEnumAsyncWriteOnly
|
|
85
|
+
from .async_register_and_field import FieldEnumAsyncReadWrite
|
|
86
86
|
|
|
87
87
|
from .memory import MemoryReadOnly, MemoryReadOnlyLegacy
|
|
88
88
|
from .memory import MemoryWriteOnly, MemoryWriteOnlyLegacy
|
|
@@ -40,10 +40,9 @@ else:
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
if TYPE_CHECKING:
|
|
43
|
-
from .
|
|
44
|
-
from .
|
|
45
|
-
from .
|
|
46
|
-
|
|
43
|
+
from .async_register_and_field import AsyncReg, AsyncRegArray
|
|
44
|
+
from .async_register_and_field import ReadableAsyncRegister, WritableAsyncRegister
|
|
45
|
+
from .async_register_and_field import ReadableAsyncRegisterArray, WriteableAsyncRegisterArray
|
|
47
46
|
# pylint: disable=duplicate-code
|
|
48
47
|
|
|
49
48
|
|
|
@@ -178,14 +177,12 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
|
|
|
178
177
|
read_callback = self._callbacks.read_callback
|
|
179
178
|
|
|
180
179
|
if read_block_callback is not None:
|
|
181
|
-
# python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
|
|
182
|
-
# the arguments in the call back functions
|
|
183
180
|
addr = self.address_lookup(entry=start_entry)
|
|
184
181
|
data_read = \
|
|
185
|
-
await read_block_callback(addr=addr,
|
|
186
|
-
width=self.width,
|
|
187
|
-
accesswidth=self.width,
|
|
188
|
-
length=number_entries)
|
|
182
|
+
await read_block_callback(addr=addr,
|
|
183
|
+
width=self.width,
|
|
184
|
+
accesswidth=self.width,
|
|
185
|
+
length=number_entries)
|
|
189
186
|
|
|
190
187
|
if isinstance(self._callbacks, AsyncCallbackSet):
|
|
191
188
|
if not isinstance(data_read, List):
|
|
@@ -205,11 +202,10 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
|
|
|
205
202
|
|
|
206
203
|
for entry in range(number_entries):
|
|
207
204
|
entry_address = self.address_lookup(entry=start_entry+entry)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
accesswidth=self.width) # type: ignore[call-arg]
|
|
205
|
+
|
|
206
|
+
data_entry = await read_callback(addr=entry_address,
|
|
207
|
+
width=self.width,
|
|
208
|
+
accesswidth=self.width)
|
|
213
209
|
|
|
214
210
|
data_read[entry] = data_entry
|
|
215
211
|
|
|
@@ -249,14 +245,12 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
|
|
|
249
245
|
read_callback = self._callbacks.read_callback
|
|
250
246
|
|
|
251
247
|
if read_block_callback is not None:
|
|
252
|
-
# python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
|
|
253
|
-
# the arguments in the call back functions
|
|
254
248
|
addr = self.address_lookup(entry=start_entry)
|
|
255
249
|
data_read = \
|
|
256
|
-
await read_block_callback(addr=addr,
|
|
257
|
-
width=self.width,
|
|
258
|
-
accesswidth=self.width,
|
|
259
|
-
length=number_entries)
|
|
250
|
+
await read_block_callback(addr=addr,
|
|
251
|
+
width=self.width,
|
|
252
|
+
accesswidth=self.width,
|
|
253
|
+
length=number_entries)
|
|
260
254
|
|
|
261
255
|
if isinstance(self._callbacks, AsyncCallbackSet):
|
|
262
256
|
if not isinstance(data_read, List):
|
|
@@ -276,11 +270,9 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
|
|
|
276
270
|
|
|
277
271
|
for entry in range(number_entries):
|
|
278
272
|
entry_address = self.address_lookup(entry=start_entry + entry)
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
width=self.width, # type: ignore[call-arg]
|
|
283
|
-
accesswidth=self.width) # type: ignore[call-arg]
|
|
273
|
+
data_entry = await read_callback(addr=entry_address,
|
|
274
|
+
width=self.width,
|
|
275
|
+
accesswidth=self.width)
|
|
284
276
|
|
|
285
277
|
data_read_block[entry] = data_entry
|
|
286
278
|
|
|
@@ -429,53 +421,41 @@ class _MemoryAsyncWriteOnly(AsyncMemory, ABC):
|
|
|
429
421
|
f'but got {len(data):d}')
|
|
430
422
|
|
|
431
423
|
if self._callbacks.write_block_callback is not None:
|
|
432
|
-
|
|
433
|
-
# the arguments in the call back functions
|
|
424
|
+
|
|
434
425
|
addr = self.address_lookup(entry=start_entry)
|
|
435
426
|
if isinstance(self._callbacks, AsyncCallbackSet):
|
|
436
427
|
if isinstance(data, Array):
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
data=data.tolist()) # type: ignore[call-arg]
|
|
442
|
-
# pylint: enable=line-too-long
|
|
428
|
+
await self._callbacks.write_block_callback(addr=addr,
|
|
429
|
+
width=self.width,
|
|
430
|
+
accesswidth=self.width,
|
|
431
|
+
data=data.tolist())
|
|
443
432
|
else:
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
data=data) # type: ignore[call-arg]
|
|
449
|
-
# pylint: enable=line-too-long
|
|
433
|
+
await self._callbacks.write_block_callback(addr=addr,
|
|
434
|
+
width=self.width,
|
|
435
|
+
accesswidth=self.width,
|
|
436
|
+
data=data)
|
|
450
437
|
if isinstance(self._callbacks, AsyncCallbackSetLegacy):
|
|
451
438
|
if isinstance(data, list):
|
|
452
439
|
# need to convert the data to an array before calling
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
# pylint: enable=line-too-long
|
|
440
|
+
await self._callbacks.write_block_callback(
|
|
441
|
+
addr=addr,
|
|
442
|
+
width=self.width,
|
|
443
|
+
accesswidth=self.width,
|
|
444
|
+
data=Array(self.array_typecode, data))
|
|
459
445
|
else:
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
data=data) # type: ignore[call-arg]
|
|
465
|
-
# pylint: enable=line-too-long
|
|
446
|
+
await self._callbacks.write_block_callback(addr=addr,
|
|
447
|
+
width=self.width,
|
|
448
|
+
accesswidth=self.width,
|
|
449
|
+
data=data)
|
|
466
450
|
|
|
467
451
|
elif self._callbacks.write_callback is not None:
|
|
468
452
|
# there is not write_block_callback defined so we must used individual write
|
|
469
453
|
for entry_index, entry_data in enumerate(data):
|
|
470
454
|
entry_address = self.address_lookup(entry=start_entry+entry_index)
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
width=self.width, # type: ignore[call-arg]
|
|
476
|
-
accesswidth=self.width, # type: ignore[call-arg]
|
|
477
|
-
data=entry_data) # type: ignore[call-arg]
|
|
478
|
-
# pylint: enable=line-too-long
|
|
455
|
+
await self._callbacks.write_callback(addr=entry_address,
|
|
456
|
+
width=self.width,
|
|
457
|
+
accesswidth=self.width,
|
|
458
|
+
data=entry_data)
|
|
479
459
|
|
|
480
460
|
else:
|
|
481
461
|
raise RuntimeError('No suitable callback')
|