peakrdl-busdecoder 0.6.6__tar.gz → 0.6.7__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.6 → peakrdl_busdecoder-0.6.7}/PKG-INFO +1 -1
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/pyproject.toml +1 -1
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/apb3_tmpl.sv +1 -1
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/apb4_tmpl.sv +1 -1
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif.py +14 -2
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_tmpl.sv +19 -5
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/base_cpuif.py +4 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/fanin_gen.py +2 -2
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/fanin_intermediate_gen.py +3 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/PKG-INFO +1 -1
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/uv.lock +1 -1
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.devcontainer/Dockerfile +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.devcontainer/devcontainer.json +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/pull_request_template.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/build.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/docs.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/format.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/lint.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/release.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/test.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.github/workflows/typecheck.yml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.gitignore +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.readthedocs.yaml +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/CONTRIBUTING.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/LICENSE +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/MANIFEST.in +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/README.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/Makefile +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/api.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/architecture.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/conf.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/configuring.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/apb.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/avalon.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/axi4lite.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/customizing.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/internal_protocol.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/introduction.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/cpuif/passthrough.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/Alpha-Beta Versioning +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/Hierarchy-and-Indexing +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/Program Flow +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/Resets +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/Signal Dereferencer +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/Validation Needed +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/1-port-declaration +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/1.1.hardware-interface +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/2-CPUIF +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/3-address-decode +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/4-fields +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/5-readback-mux +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/6-output-port-mapping +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/diagrams/arch.png +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/diagrams/diagrams.odg +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/diagrams/rbuf.png +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/diagrams/readback.png +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/diagrams/wbuf.png +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/faq.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/hwif.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/img/err.svg +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/img/ok.svg +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/img/warn.svg +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/index.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/licensing.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/limitations.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/props/addrmap.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/props/field.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/props/reg.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/props/rhs_props.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/props/signal.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/rdl_features/external.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/requirements.txt +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/udps/intro.rst +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/hdl-src/README.md +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/hdl-src/apb3_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/hdl-src/apb4_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/hdl-src/avalon_mm_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/hdl-src/axi4lite_intf.sv +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/setup.cfg +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/__peakrdl__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/body.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/combinational_body.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/for_loop_body.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/if_body.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/struct_body.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/apb3_cpuif.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/apb3_cpuif_flat.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/apb3_interface.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/apb4_cpuif.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/apb4_cpuif_flat.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/apb4_interface.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/axi4lite/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif_flat.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_interface.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/fanout_gen.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/interface.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/decode_logic_gen.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/design_scanner.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/design_state.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/exporter.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/identifier_filter.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/listener.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/module_tmpl.sv +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/package_tmpl.sv +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/py.typed +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/struct_gen.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/sv_int.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/udps/__init__.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/utils.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/validate_design.py +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/SOURCES.txt +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/dependency_links.txt +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/entry_points.txt +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/requires.txt +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/top_level.txt +0 -0
- {peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/tools/shims/xargs +0 -0
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/apb3_tmpl.sv
RENAMED
|
@@ -37,4 +37,4 @@ assign {{cpuif.signal("PSLVERR")}} = cpuif_rd_err | cpuif_wr_err;
|
|
|
37
37
|
//--------------------------------------------------------------------------
|
|
38
38
|
// Fanin CPU Bus interface signals
|
|
39
39
|
//--------------------------------------------------------------------------
|
|
40
|
-
{{fanin|walk(cpuif=cpuif)}}
|
|
40
|
+
{{fanin|walk(cpuif=cpuif)}}
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/apb4_tmpl.sv
RENAMED
|
@@ -38,4 +38,4 @@ assign {{cpuif.signal("PSLVERR")}} = cpuif_rd_err | cpuif_wr_err;
|
|
|
38
38
|
//--------------------------------------------------------------------------
|
|
39
39
|
// Fanin CPU Bus interface signals
|
|
40
40
|
//--------------------------------------------------------------------------
|
|
41
|
-
{{fanin|walk(cpuif=cpuif)}}
|
|
41
|
+
{{fanin|walk(cpuif=cpuif)}}
|
|
@@ -77,8 +77,8 @@ class AXI4LiteCpuif(BaseCpuif):
|
|
|
77
77
|
if self.is_interface and node.is_array and node.array_dimensions:
|
|
78
78
|
# Generate array index string [i0][i1]... for the intermediate signal
|
|
79
79
|
array_idx = "".join(f"[i{i}]" for i in range(len(node.array_dimensions)))
|
|
80
|
-
fanin["cpuif_wr_ack"] = f"{node.inst_name}
|
|
81
|
-
fanin["cpuif_wr_err"] = f"{node.inst_name}
|
|
80
|
+
fanin["cpuif_wr_ack"] = f"{node.inst_name}_fanin_wr_valid{array_idx}"
|
|
81
|
+
fanin["cpuif_wr_err"] = f"{node.inst_name}_fanin_wr_err{array_idx}"
|
|
82
82
|
else:
|
|
83
83
|
# Read side: ack comes from RVALID; err if RRESP[1] is set (SLVERR/DECERR)
|
|
84
84
|
fanin["cpuif_wr_ack"] = self.signal("BVALID", node, "i")
|
|
@@ -119,4 +119,16 @@ class AXI4LiteCpuif(BaseCpuif):
|
|
|
119
119
|
f"assign {inst_name}_fanin_ready{array_idx} = {master_prefix}{indexed_path}.RVALID;",
|
|
120
120
|
f"assign {inst_name}_fanin_err{array_idx} = {master_prefix}{indexed_path}.RRESP[1];",
|
|
121
121
|
f"assign {inst_name}_fanin_data{array_idx} = {master_prefix}{indexed_path}.RDATA;",
|
|
122
|
+
f"assign {inst_name}_fanin_wr_valid{array_idx} = {master_prefix}{indexed_path}.BVALID;",
|
|
123
|
+
f"assign {inst_name}_fanin_wr_err{array_idx} = {master_prefix}{indexed_path}.BRESP[1];",
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
def fanin_intermediate_declarations(self, node: AddressableNode) -> list[str]:
|
|
127
|
+
if not node.array_dimensions:
|
|
128
|
+
return []
|
|
129
|
+
|
|
130
|
+
array_str = "".join(f"[{dim}]" for dim in node.array_dimensions)
|
|
131
|
+
return [
|
|
132
|
+
f"logic {node.inst_name}_fanin_wr_valid{array_str};",
|
|
133
|
+
f"logic {node.inst_name}_fanin_wr_err{array_str};",
|
|
122
134
|
]
|
|
@@ -26,9 +26,21 @@
|
|
|
26
26
|
`endif
|
|
27
27
|
{% endif -%}
|
|
28
28
|
|
|
29
|
+
logic axi_wr_valid;
|
|
30
|
+
logic axi_wr_invalid;
|
|
31
|
+
logic cpuif_wr_ack_int;
|
|
32
|
+
logic cpuif_rd_ack_int;
|
|
33
|
+
|
|
34
|
+
assign axi_wr_valid = {{cpuif.signal("AWVALID")}} & {{cpuif.signal("WVALID")}};
|
|
35
|
+
assign axi_wr_invalid = {{cpuif.signal("AWVALID")}} ^ {{cpuif.signal("WVALID")}};
|
|
36
|
+
|
|
37
|
+
// Ready/acceptance follows the simplified single-beat requirement
|
|
38
|
+
assign {{cpuif.signal("AWREADY")}} = axi_wr_valid;
|
|
39
|
+
assign {{cpuif.signal("WREADY")}} = axi_wr_valid;
|
|
40
|
+
assign {{cpuif.signal("ARREADY")}} = {{cpuif.signal("ARVALID")}};
|
|
29
41
|
|
|
30
42
|
assign cpuif_req = {{cpuif.signal("AWVALID")}} | {{cpuif.signal("ARVALID")}};
|
|
31
|
-
assign cpuif_wr_en =
|
|
43
|
+
assign cpuif_wr_en = axi_wr_valid;
|
|
32
44
|
assign cpuif_rd_en = {{cpuif.signal("ARVALID")}};
|
|
33
45
|
|
|
34
46
|
assign cpuif_wr_addr = {{cpuif.signal("AWADDR")}};
|
|
@@ -42,12 +54,14 @@ assign cpuif_wr_byte_en = {{cpuif.signal("WSTRB")}};
|
|
|
42
54
|
// Read: ack=RVALID, err=RRESP[1] (SLVERR/DECERR), data=RDATA
|
|
43
55
|
//
|
|
44
56
|
assign {{cpuif.signal("RDATA")}} = cpuif_rd_data;
|
|
45
|
-
assign
|
|
57
|
+
assign cpuif_rd_ack_int = cpuif_rd_ack | cpuif_rd_sel.cpuif_err;
|
|
58
|
+
assign {{cpuif.signal("RVALID")}} = cpuif_rd_ack_int;
|
|
46
59
|
assign {{cpuif.signal("RRESP")}} = (cpuif_rd_err | cpuif_rd_sel.cpuif_err | cpuif_wr_sel.cpuif_err) ? 2'b10 : 2'b00;
|
|
47
60
|
|
|
48
61
|
// Write: ack=BVALID, err=BRESP[1]
|
|
49
|
-
assign
|
|
50
|
-
assign {{cpuif.signal("
|
|
62
|
+
assign cpuif_wr_ack_int = cpuif_wr_ack | cpuif_wr_sel.cpuif_err | axi_wr_invalid;
|
|
63
|
+
assign {{cpuif.signal("BVALID")}} = cpuif_wr_ack_int;
|
|
64
|
+
assign {{cpuif.signal("BRESP")}} = (cpuif_wr_err | cpuif_wr_sel.cpuif_err | cpuif_rd_sel.cpuif_err | axi_wr_invalid) ? 2'b10 : 2'b00;
|
|
51
65
|
|
|
52
66
|
//--------------------------------------------------------------------------
|
|
53
67
|
// Fanout CPU Bus interface signals
|
|
@@ -64,4 +78,4 @@ assign {{cpuif.signal("BRESP")}} = (cpuif_wr_err | cpuif_wr_sel.cpuif_err | cpu
|
|
|
64
78
|
//--------------------------------------------------------------------------
|
|
65
79
|
// Fanin CPU Bus interface signals
|
|
66
80
|
//--------------------------------------------------------------------------
|
|
67
|
-
{{fanin|walk(cpuif=cpuif)}}
|
|
81
|
+
{{fanin|walk(cpuif=cpuif)}}
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/base_cpuif.py
RENAMED
|
@@ -136,3 +136,7 @@ class BaseCpuif:
|
|
|
136
136
|
List of assignment strings
|
|
137
137
|
"""
|
|
138
138
|
return [] # Default: no intermediate assignments needed
|
|
139
|
+
|
|
140
|
+
def fanin_intermediate_declarations(self, node: AddressableNode) -> list[str]:
|
|
141
|
+
"""Optional extra intermediate signal declarations for interface arrays."""
|
|
142
|
+
return []
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/fanin_gen.py
RENAMED
|
@@ -72,12 +72,12 @@ class FaninGenerator(BusDecoderListener):
|
|
|
72
72
|
def __str__(self) -> str:
|
|
73
73
|
wr_ifb = IfBody()
|
|
74
74
|
with wr_ifb.cm("cpuif_wr_sel.cpuif_err") as b:
|
|
75
|
-
self._cpuif.fanin_wr(error=True)
|
|
75
|
+
b += self._cpuif.fanin_wr(error=True)
|
|
76
76
|
self._stack[-1] += wr_ifb
|
|
77
77
|
|
|
78
78
|
rd_ifb = IfBody()
|
|
79
79
|
with rd_ifb.cm("cpuif_rd_sel.cpuif_err") as b:
|
|
80
|
-
self._cpuif.fanin_rd(error=True)
|
|
80
|
+
b += self._cpuif.fanin_rd(error=True)
|
|
81
81
|
self._stack[-1] += rd_ifb
|
|
82
82
|
|
|
83
83
|
return "\n".join(map(str, self._stack))
|
|
@@ -94,6 +94,9 @@ class FaninIntermediateGenerator(BusDecoderListener):
|
|
|
94
94
|
f"logic [{self._cpuif.data_width - 1}:0] {inst_name}_fanin_data{array_str};"
|
|
95
95
|
)
|
|
96
96
|
|
|
97
|
+
# Allow CPU interface to add extra intermediate declarations (e.g., write responses)
|
|
98
|
+
self._declarations.extend(self._cpuif.fanin_intermediate_declarations(node))
|
|
99
|
+
|
|
97
100
|
def _generate_intermediate_assignments(self, node: AddressableNode) -> str:
|
|
98
101
|
"""Generate assignments from interface array to intermediate signals."""
|
|
99
102
|
inst_name = node.inst_name
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/.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
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/2-CPUIF
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/docs/dev_notes/template-layers/4-fields
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/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.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/for_loop_body.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/if_body.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/body/struct_body.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/__init__.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb3/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/apb4/__init__.py
RENAMED
|
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.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/fanout_gen.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/cpuif/interface.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/decode_logic_gen.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/design_scanner.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/design_state.py
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/identifier_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/package_tmpl.sv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/udps/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder/validate_design.py
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/requires.txt
RENAMED
|
File without changes
|
{peakrdl_busdecoder-0.6.6 → peakrdl_busdecoder-0.6.7}/src/peakrdl_busdecoder.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|