peakrdl-busdecoder 0.6.0__tar.gz → 0.6.3__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_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/test.yml +9 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/PKG-INFO +5 -4
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/README.md +4 -3
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/pyproject.toml +1 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/apb3_cpuif.py +2 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/apb3_cpuif_flat.py +9 -3
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/apb3_interface.py +2 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/apb4_cpuif.py +2 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/apb4_cpuif_flat.py +9 -3
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/apb4_interface.py +2 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/apb4_tmpl.sv +0 -2
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif.py +2 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif_flat.py +12 -4
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_interface.py +3 -2
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/base_cpuif.py +2 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/fanout_gen.py +1 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/validate_design.py +1 -25
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/PKG-INFO +5 -4
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/uv.lock +1 -1
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.devcontainer/Dockerfile +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.devcontainer/devcontainer.json +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/pull_request_template.md +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/build.yml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/docs.yml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/format.yml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/lint.yml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/release.yml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/workflows/typecheck.yml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.gitignore +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.readthedocs.yaml +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/CONTRIBUTING.md +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/LICENSE +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/MANIFEST.in +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/Makefile +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/api.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/architecture.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/conf.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/configuring.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/apb.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/avalon.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/axi4lite.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/customizing.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/internal_protocol.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/introduction.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/cpuif/passthrough.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/Alpha-Beta Versioning +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/Hierarchy-and-Indexing +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/Program Flow +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/Resets +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/Signal Dereferencer +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/Validation Needed +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/1-port-declaration +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/1.1.hardware-interface +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/2-CPUIF +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/3-address-decode +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/4-fields +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/5-readback-mux +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/6-output-port-mapping +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/diagrams/arch.png +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/diagrams/diagrams.odg +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/diagrams/rbuf.png +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/diagrams/readback.png +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/diagrams/wbuf.png +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/faq.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/hwif.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/img/err.svg +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/img/ok.svg +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/img/warn.svg +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/index.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/licensing.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/limitations.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/props/addrmap.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/props/field.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/props/reg.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/props/rhs_props.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/props/signal.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/rdl_features/external.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/requirements.txt +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/udps/intro.rst +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/hdl-src/README.md +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/hdl-src/apb3_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/hdl-src/apb4_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/hdl-src/avalon_mm_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/hdl-src/axi4lite_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/setup.cfg +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/__peakrdl__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/body.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/combinational_body.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/for_loop_body.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/if_body.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/struct_body.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/apb3_tmpl.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/axi4lite/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_tmpl.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/fanin_gen.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/fanin_intermediate_gen.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/interface.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/decode_logic_gen.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/design_scanner.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/design_state.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/exporter.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/identifier_filter.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/listener.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/module_tmpl.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/package_tmpl.sv +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/py.typed +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/struct_gen.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/sv_int.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/udps/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/utils.py +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/SOURCES.txt +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/dependency_links.txt +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/entry_points.txt +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/requires.txt +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/top_level.txt +0 -0
- {peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/tools/shims/xargs +0 -0
|
@@ -45,6 +45,15 @@ jobs:
|
|
|
45
45
|
- name: Run tests
|
|
46
46
|
run: uv run pytest tests/ --cov=peakrdl_busdecoder --cov-report=xml --cov-report=term
|
|
47
47
|
|
|
48
|
+
- name: Upload coverage to Coveralls
|
|
49
|
+
if: matrix.python-version == '3.12'
|
|
50
|
+
env:
|
|
51
|
+
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
52
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
53
|
+
run: |
|
|
54
|
+
uv pip install coveralls
|
|
55
|
+
uv run coveralls --service=github
|
|
56
|
+
|
|
48
57
|
- name: Upload coverage to Codecov
|
|
49
58
|
uses: codecov/codecov-action@v4
|
|
50
59
|
if: matrix.python-version == '3.12'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: peakrdl-busdecoder
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary: Generate a SystemVerilog bus decoder from SystemRDL for splitting CPU interfaces to multiple sub-address spaces
|
|
5
5
|
Author: Arnav Sacheti
|
|
6
6
|
License: LGPLv3
|
|
@@ -26,9 +26,10 @@ Provides-Extra: cli
|
|
|
26
26
|
Requires-Dist: peakrdl-cli>=1.2.3; extra == "cli"
|
|
27
27
|
Dynamic: license-file
|
|
28
28
|
|
|
29
|
-
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/build.yml)
|
|
30
|
+
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/test.yml)
|
|
31
|
+
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/docs.yml)
|
|
32
|
+
[](https://coveralls.io/github/arnavsacheti/PeakRDL-BusDecoder?branch=tests/coveralls)
|
|
32
33
|
[](https://pypi.org/project/peakrdl-busdecoder)
|
|
33
34
|
|
|
34
35
|
# PeakRDL-BusDecoder
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/build.yml)
|
|
2
|
+
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/test.yml)
|
|
3
|
+
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/docs.yml)
|
|
4
|
+
[](https://coveralls.io/github/arnavsacheti/PeakRDL-BusDecoder?branch=tests/coveralls)
|
|
4
5
|
[](https://pypi.org/project/peakrdl-busdecoder)
|
|
5
6
|
|
|
6
7
|
# PeakRDL-BusDecoder
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections import deque
|
|
1
2
|
from typing import TYPE_CHECKING, overload
|
|
2
3
|
|
|
3
4
|
from systemrdl.node import AddressableNode
|
|
@@ -32,7 +33,7 @@ class APB3Cpuif(BaseCpuif):
|
|
|
32
33
|
def signal(self, signal: str, node: AddressableNode | None = None, indexer: str | None = None) -> str:
|
|
33
34
|
return self._interface.signal(signal, node, indexer)
|
|
34
35
|
|
|
35
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
36
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
36
37
|
fanout: dict[str, str] = {}
|
|
37
38
|
fanout[self.signal("PSEL", node, "gi")] = (
|
|
38
39
|
f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}|cpuif_rd_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
from collections import deque
|
|
1
2
|
from typing import TYPE_CHECKING
|
|
2
3
|
|
|
3
4
|
from systemrdl.node import AddressableNode
|
|
4
5
|
|
|
5
|
-
from ...
|
|
6
|
+
from ...sv_int import SVInt
|
|
7
|
+
from ...utils import clog2, get_indexed_path
|
|
6
8
|
from ..base_cpuif import BaseCpuif
|
|
7
9
|
from .apb3_interface import APB3FlatInterface
|
|
8
10
|
|
|
@@ -33,8 +35,12 @@ class APB3CpuifFlat(BaseCpuif):
|
|
|
33
35
|
) -> str:
|
|
34
36
|
return self._interface.signal(signal, node, idx)
|
|
35
37
|
|
|
36
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
38
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
37
39
|
fanout: dict[str, str] = {}
|
|
40
|
+
addr_comp = [f"{self.signal('PADDR')}"]
|
|
41
|
+
for i, stride in enumerate(array_stack):
|
|
42
|
+
addr_comp.append(f"(gi{i}*{SVInt(stride, self.addr_width)})")
|
|
43
|
+
|
|
38
44
|
fanout[self.signal("PSEL", node, "gi")] = (
|
|
39
45
|
f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}|cpuif_rd_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
40
46
|
)
|
|
@@ -42,7 +48,7 @@ class APB3CpuifFlat(BaseCpuif):
|
|
|
42
48
|
fanout[self.signal("PWRITE", node, "gi")] = (
|
|
43
49
|
f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
44
50
|
)
|
|
45
|
-
fanout[self.signal("PADDR", node, "gi")] =
|
|
51
|
+
fanout[self.signal("PADDR", node, "gi")] = f"{{{'-'.join(addr_comp)}}}[{clog2(node.size) - 1}:0]"
|
|
46
52
|
fanout[self.signal("PWDATA", node, "gi")] = "cpuif_wr_data"
|
|
47
53
|
|
|
48
54
|
return "\n".join(map(lambda kv: f"assign {kv[0]} = {kv[1]};", fanout.items()))
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from systemrdl.node import AddressableNode
|
|
4
4
|
|
|
5
|
+
from ...utils import clog2
|
|
5
6
|
from ..interface import FlatInterface, SVInterface
|
|
6
7
|
|
|
7
8
|
|
|
@@ -48,7 +49,7 @@ class APB3FlatInterface(FlatInterface):
|
|
|
48
49
|
f"output logic {self.signal('PSEL', child)}",
|
|
49
50
|
f"output logic {self.signal('PENABLE', child)}",
|
|
50
51
|
f"output logic {self.signal('PWRITE', child)}",
|
|
51
|
-
f"output logic [{
|
|
52
|
+
f"output logic [{clog2(child.size) - 1}:0] {self.signal('PADDR', child)}",
|
|
52
53
|
f"output logic [{self.cpuif.data_width - 1}:0] {self.signal('PWDATA', child)}",
|
|
53
54
|
f"input logic [{self.cpuif.data_width - 1}:0] {self.signal('PRDATA', child)}",
|
|
54
55
|
f"input logic {self.signal('PREADY', child)}",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections import deque
|
|
1
2
|
from typing import TYPE_CHECKING, overload
|
|
2
3
|
|
|
3
4
|
from systemrdl.node import AddressableNode
|
|
@@ -33,7 +34,7 @@ class APB4Cpuif(BaseCpuif):
|
|
|
33
34
|
def signal(self, signal: str, node: AddressableNode | None = None, indexer: str | None = None) -> str:
|
|
34
35
|
return self._interface.signal(signal, node, indexer)
|
|
35
36
|
|
|
36
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
37
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
37
38
|
fanout: dict[str, str] = {}
|
|
38
39
|
fanout[self.signal("PSEL", node, "gi")] = (
|
|
39
40
|
f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}|cpuif_rd_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
from collections import deque
|
|
1
2
|
from typing import TYPE_CHECKING
|
|
2
3
|
|
|
3
4
|
from systemrdl.node import AddressableNode
|
|
4
5
|
|
|
5
|
-
from ...
|
|
6
|
+
from ...sv_int import SVInt
|
|
7
|
+
from ...utils import clog2, get_indexed_path
|
|
6
8
|
from ..base_cpuif import BaseCpuif
|
|
7
9
|
from .apb4_interface import APB4FlatInterface
|
|
8
10
|
|
|
@@ -33,8 +35,12 @@ class APB4CpuifFlat(BaseCpuif):
|
|
|
33
35
|
) -> str:
|
|
34
36
|
return self._interface.signal(signal, node, idx)
|
|
35
37
|
|
|
36
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
38
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
37
39
|
fanout: dict[str, str] = {}
|
|
40
|
+
addr_comp = [f"{self.signal('PADDR')}"]
|
|
41
|
+
for i, stride in enumerate(array_stack):
|
|
42
|
+
addr_comp.append(f"(gi{i}*{SVInt(stride, self.addr_width)})")
|
|
43
|
+
|
|
38
44
|
fanout[self.signal("PSEL", node, "gi")] = (
|
|
39
45
|
f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}|cpuif_rd_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
40
46
|
)
|
|
@@ -42,7 +48,7 @@ class APB4CpuifFlat(BaseCpuif):
|
|
|
42
48
|
fanout[self.signal("PWRITE", node, "gi")] = (
|
|
43
49
|
f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
44
50
|
)
|
|
45
|
-
fanout[self.signal("PADDR", node, "gi")] =
|
|
51
|
+
fanout[self.signal("PADDR", node, "gi")] = f"{{{'-'.join(addr_comp)}}}[{clog2(node.size) - 1}:0]"
|
|
46
52
|
fanout[self.signal("PPROT", node, "gi")] = self.signal("PPROT")
|
|
47
53
|
fanout[self.signal("PWDATA", node, "gi")] = "cpuif_wr_data"
|
|
48
54
|
fanout[self.signal("PSTRB", node, "gi")] = "cpuif_wr_byte_en"
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from systemrdl.node import AddressableNode
|
|
4
4
|
|
|
5
|
+
from ...utils import clog2
|
|
5
6
|
from ..interface import FlatInterface, SVInterface
|
|
6
7
|
|
|
7
8
|
|
|
@@ -50,7 +51,7 @@ class APB4FlatInterface(FlatInterface):
|
|
|
50
51
|
f"output logic {self.signal('PSEL', child)}",
|
|
51
52
|
f"output logic {self.signal('PENABLE', child)}",
|
|
52
53
|
f"output logic {self.signal('PWRITE', child)}",
|
|
53
|
-
f"output logic [{
|
|
54
|
+
f"output logic [{clog2(child.size) - 1}:0] {self.signal('PADDR', child)}",
|
|
54
55
|
f"output logic [2:0] {self.signal('PPROT', child)}",
|
|
55
56
|
f"output logic [{self.cpuif.data_width - 1}:0] {self.signal('PWDATA', child)}",
|
|
56
57
|
f"output logic [{self.cpuif.data_width // 8 - 1}:0] {self.signal('PSTRB', child)}",
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/apb4_tmpl.sv
RENAMED
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
assert_bad_data_width: assert($bits({{cpuif.signal("PWDATA")}}) == {{ds.package_name}}::{{ds.module_name|upper}}_DATA_WIDTH)
|
|
7
7
|
else $error("Interface data width of %0d is incorrect. Shall be %0d bits", $bits({{cpuif.signal("PWDATA")}}), {{ds.package_name}}::{{ds.module_name|upper}}_DATA_WIDTH);
|
|
8
8
|
end
|
|
9
|
-
assert_wr_sel: assert property (@(posedge {{cpuif.signal("PCLK")}}) {{cpuif.signal("PSEL")}} && {{cpuif.signal("PWRITE")}} |-> ##1 ({{cpuif.signal("PREADY")}} || {{cpuif.signal("PSLVERR")}}))
|
|
10
|
-
else $error("APB4 Slave port SEL implies that cpuif_wr_sel must be one-hot encoded");
|
|
11
9
|
`endif
|
|
12
10
|
{%- endif %}
|
|
13
11
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections import deque
|
|
1
2
|
from typing import TYPE_CHECKING, overload
|
|
2
3
|
|
|
3
4
|
from systemrdl.node import AddressableNode
|
|
@@ -33,7 +34,7 @@ class AXI4LiteCpuif(BaseCpuif):
|
|
|
33
34
|
def signal(self, signal: str, node: AddressableNode | None = None, indexer: str | None = None) -> str:
|
|
34
35
|
return self._interface.signal(signal, node, indexer)
|
|
35
36
|
|
|
36
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
37
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
37
38
|
fanout: dict[str, str] = {}
|
|
38
39
|
|
|
39
40
|
wr_sel = f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
from collections import deque
|
|
1
2
|
from typing import TYPE_CHECKING, overload
|
|
2
3
|
|
|
3
4
|
from systemrdl.node import AddressableNode
|
|
4
5
|
|
|
5
|
-
from ...
|
|
6
|
+
from ...sv_int import SVInt
|
|
7
|
+
from ...utils import clog2, get_indexed_path
|
|
6
8
|
from ..base_cpuif import BaseCpuif
|
|
7
9
|
from .axi4_lite_interface import AXI4LiteFlatInterface
|
|
8
10
|
|
|
@@ -35,15 +37,21 @@ class AXI4LiteCpuifFlat(BaseCpuif):
|
|
|
35
37
|
def signal(self, signal: str, node: AddressableNode | None = None, indexer: str | None = None) -> str:
|
|
36
38
|
return self._interface.signal(signal, node, indexer)
|
|
37
39
|
|
|
38
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
40
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
39
41
|
fanout: dict[str, str] = {}
|
|
42
|
+
waddr_comp = [f"{self.signal('AWADDR')}"]
|
|
43
|
+
raddr_comp = [f"{self.signal('ARADDR')}"]
|
|
44
|
+
for i, stride in enumerate(array_stack):
|
|
45
|
+
offset = f"(gi{i}*{SVInt(stride, self.addr_width)})"
|
|
46
|
+
waddr_comp.append(offset)
|
|
47
|
+
raddr_comp.append(offset)
|
|
40
48
|
|
|
41
49
|
wr_sel = f"cpuif_wr_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
42
50
|
rd_sel = f"cpuif_rd_sel.{get_indexed_path(self.exp.ds.top_node, node, 'gi')}"
|
|
43
51
|
|
|
44
52
|
# Write address channel
|
|
45
53
|
fanout[self.signal("AWVALID", node, "gi")] = wr_sel
|
|
46
|
-
fanout[self.signal("AWADDR", node, "gi")] =
|
|
54
|
+
fanout[self.signal("AWADDR", node, "gi")] = f"{{{'-'.join(waddr_comp)}}}[{clog2(node.size) - 1}:0]"
|
|
47
55
|
fanout[self.signal("AWPROT", node, "gi")] = self.signal("AWPROT")
|
|
48
56
|
|
|
49
57
|
# Write data channel
|
|
@@ -56,7 +64,7 @@ class AXI4LiteCpuifFlat(BaseCpuif):
|
|
|
56
64
|
|
|
57
65
|
# Read address channel
|
|
58
66
|
fanout[self.signal("ARVALID", node, "gi")] = rd_sel
|
|
59
|
-
fanout[self.signal("ARADDR", node, "gi")] =
|
|
67
|
+
fanout[self.signal("ARADDR", node, "gi")] = f"{{{'-'.join(raddr_comp)}}}[{clog2(node.size) - 1}:0]"
|
|
60
68
|
fanout[self.signal("ARPROT", node, "gi")] = self.signal("ARPROT")
|
|
61
69
|
|
|
62
70
|
# Read data channel (master -> slave)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from systemrdl.node import AddressableNode
|
|
4
4
|
|
|
5
|
+
from ...utils import clog2
|
|
5
6
|
from ..interface import FlatInterface, SVInterface
|
|
6
7
|
|
|
7
8
|
|
|
@@ -60,7 +61,7 @@ class AXI4LiteFlatInterface(FlatInterface):
|
|
|
60
61
|
# Write address channel
|
|
61
62
|
f"output logic {self.signal('AWVALID', child)}",
|
|
62
63
|
f"input logic {self.signal('AWREADY', child)}",
|
|
63
|
-
f"output logic [{
|
|
64
|
+
f"output logic [{clog2(child.size) - 1}:0] {self.signal('AWADDR', child)}",
|
|
64
65
|
f"output logic [2:0] {self.signal('AWPROT', child)}",
|
|
65
66
|
# Write data channel
|
|
66
67
|
f"output logic {self.signal('WVALID', child)}",
|
|
@@ -74,7 +75,7 @@ class AXI4LiteFlatInterface(FlatInterface):
|
|
|
74
75
|
# Read address channel
|
|
75
76
|
f"output logic {self.signal('ARVALID', child)}",
|
|
76
77
|
f"input logic {self.signal('ARREADY', child)}",
|
|
77
|
-
f"output logic [{
|
|
78
|
+
f"output logic [{clog2(child.size) - 1}:0] {self.signal('ARADDR', child)}",
|
|
78
79
|
f"output logic [2:0] {self.signal('ARPROT', child)}",
|
|
79
80
|
# Read data channel
|
|
80
81
|
f"input logic {self.signal('RVALID', child)}",
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/base_cpuif.py
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import inspect
|
|
2
2
|
import os
|
|
3
|
+
from collections import deque
|
|
3
4
|
from typing import TYPE_CHECKING
|
|
4
5
|
|
|
5
6
|
import jinja2 as jj
|
|
@@ -106,7 +107,7 @@ class BaseCpuif:
|
|
|
106
107
|
|
|
107
108
|
return f"({cpuif_addr} - 'h{addr:x})[{clog2(size) - 1}:0]"
|
|
108
109
|
|
|
109
|
-
def fanout(self, node: AddressableNode) -> str:
|
|
110
|
+
def fanout(self, node: AddressableNode, array_stack: deque[int]) -> str:
|
|
110
111
|
raise NotImplementedError
|
|
111
112
|
|
|
112
113
|
def fanin(self, node: AddressableNode | None = None) -> str:
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/validate_design.py
RENAMED
|
@@ -4,7 +4,7 @@ from systemrdl.node import AddressableNode, AddrmapNode, FieldNode, Node, Regfil
|
|
|
4
4
|
from systemrdl.rdltypes.references import PropertyReference
|
|
5
5
|
from systemrdl.walker import RDLListener, RDLWalker, WalkerAction
|
|
6
6
|
|
|
7
|
-
from .utils import
|
|
7
|
+
from .utils import ref_is_internal
|
|
8
8
|
|
|
9
9
|
if TYPE_CHECKING:
|
|
10
10
|
from .exporter import BusDecoderExporter
|
|
@@ -159,27 +159,3 @@ class DesignValidator(RDLListener):
|
|
|
159
159
|
else:
|
|
160
160
|
# Exiting top addrmap. Resolve final answer
|
|
161
161
|
self.contains_external_block = contains_external_block
|
|
162
|
-
|
|
163
|
-
if contains_external_block:
|
|
164
|
-
# Check that addressing follows strict alignment rules to allow
|
|
165
|
-
# for simplified address bit-pruning
|
|
166
|
-
if node.external:
|
|
167
|
-
err_suffix = "is external"
|
|
168
|
-
else:
|
|
169
|
-
err_suffix = "contains an external addrmap/regfile/mem"
|
|
170
|
-
|
|
171
|
-
req_align = roundup_pow2(node.size)
|
|
172
|
-
if (node.raw_address_offset % req_align) != 0:
|
|
173
|
-
self.msg.error(
|
|
174
|
-
f"Address offset +0x{node.raw_address_offset:x} of instance '{node.inst_name}' is not a power of 2 multiple of its size 0x{node.size:x}. "
|
|
175
|
-
f"This is required by the busdecoder exporter if a component {err_suffix}.",
|
|
176
|
-
node.inst.inst_src_ref,
|
|
177
|
-
)
|
|
178
|
-
if node.is_array:
|
|
179
|
-
assert node.array_stride is not None
|
|
180
|
-
if not is_pow2(node.array_stride):
|
|
181
|
-
self.msg.error(
|
|
182
|
-
f"Address stride of instance array '{node.inst_name}' is not a power of 2"
|
|
183
|
-
f"This is required by the busdecoder exporter if a component {err_suffix}.",
|
|
184
|
-
node.inst.inst_src_ref,
|
|
185
|
-
)
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: peakrdl-busdecoder
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary: Generate a SystemVerilog bus decoder from SystemRDL for splitting CPU interfaces to multiple sub-address spaces
|
|
5
5
|
Author: Arnav Sacheti
|
|
6
6
|
License: LGPLv3
|
|
@@ -26,9 +26,10 @@ Provides-Extra: cli
|
|
|
26
26
|
Requires-Dist: peakrdl-cli>=1.2.3; extra == "cli"
|
|
27
27
|
Dynamic: license-file
|
|
28
28
|
|
|
29
|
-
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/build.yml)
|
|
30
|
+
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/test.yml)
|
|
31
|
+
[](https://github.com/arnavsacheti/PeakRDL-BusDecoder/actions/workflows/docs.yml)
|
|
32
|
+
[](https://coveralls.io/github/arnavsacheti/PeakRDL-BusDecoder?branch=tests/coveralls)
|
|
32
33
|
[](https://pypi.org/project/peakrdl-busdecoder)
|
|
33
34
|
|
|
34
35
|
# PeakRDL-BusDecoder
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/.github/ISSUE_TEMPLATE/feature_request.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/2-CPUIF
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/4-fields
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/docs/dev_notes/template-layers/5-readback-mux
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/for_loop_body.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/if_body.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/body/struct_body.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/__init__.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/__init__.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb3/apb3_tmpl.sv
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/apb4/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/fanin_gen.py
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/cpuif/interface.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/decode_logic_gen.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/design_scanner.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/design_state.py
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/identifier_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/package_tmpl.sv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder/udps/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/requires.txt
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.0 → peakrdl_busdecoder-0.6.3}/src/peakrdl_busdecoder.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|