peakrdl-busdecoder 0.6.1__py3-none-any.whl → 0.6.4__py3-none-any.whl
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/cpuif/apb4/apb4_tmpl.sv +0 -2
- peakrdl_busdecoder/exporter.py +0 -2
- peakrdl_busdecoder/module_tmpl.sv +0 -1
- peakrdl_busdecoder/package_tmpl.sv +0 -1
- peakrdl_busdecoder/validate_design.py +1 -25
- {peakrdl_busdecoder-0.6.1.dist-info → peakrdl_busdecoder-0.6.4.dist-info}/METADATA +5 -4
- {peakrdl_busdecoder-0.6.1.dist-info → peakrdl_busdecoder-0.6.4.dist-info}/RECORD +11 -11
- {peakrdl_busdecoder-0.6.1.dist-info → peakrdl_busdecoder-0.6.4.dist-info}/WHEEL +0 -0
- {peakrdl_busdecoder-0.6.1.dist-info → peakrdl_busdecoder-0.6.4.dist-info}/entry_points.txt +0 -0
- {peakrdl_busdecoder-0.6.1.dist-info → peakrdl_busdecoder-0.6.4.dist-info}/licenses/LICENSE +0 -0
- {peakrdl_busdecoder-0.6.1.dist-info → peakrdl_busdecoder-0.6.4.dist-info}/top_level.txt +0 -0
|
@@ -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
|
|
peakrdl_busdecoder/exporter.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import os
|
|
2
|
-
from datetime import datetime
|
|
3
2
|
from importlib.metadata import version
|
|
4
3
|
from pathlib import Path
|
|
5
4
|
from typing import TYPE_CHECKING, Any, TypedDict
|
|
@@ -115,7 +114,6 @@ class BusDecoderExporter:
|
|
|
115
114
|
|
|
116
115
|
# Build Jinja template context
|
|
117
116
|
context = { # type: ignore
|
|
118
|
-
"current_date": datetime.now().strftime("%Y-%m-%d"),
|
|
119
117
|
"version": version("peakrdl-busdecoder"),
|
|
120
118
|
"cpuif": self.cpuif,
|
|
121
119
|
"cpuif_decode": DecodeLogicGenerator,
|
|
@@ -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
|
-
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: peakrdl-busdecoder
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.4
|
|
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
|
|
@@ -3,16 +3,16 @@ peakrdl_busdecoder/__peakrdl__.py,sha256=76kLBbSWVlKkCI5ESiID1aWVcQHr4sK32ujP5kn
|
|
|
3
3
|
peakrdl_busdecoder/decode_logic_gen.py,sha256=q4qSmufJI28eX75A532BOoNfIufljq3gHNLdqKbRqio,6060
|
|
4
4
|
peakrdl_busdecoder/design_scanner.py,sha256=syD6IXAJWYdpq2PQPvUGflPjhR_pO35R46Ld5K5XZHQ,1562
|
|
5
5
|
peakrdl_busdecoder/design_state.py,sha256=_zqgn2dQH2ozK63NwqRvPV7Bty7G-BAESu3yux2cJmI,4926
|
|
6
|
-
peakrdl_busdecoder/exporter.py,sha256=
|
|
6
|
+
peakrdl_busdecoder/exporter.py,sha256=Ozxu73-CCKDBkWYGACHOTX9qsqHhV7vup1wHq1HBKaY,5261
|
|
7
7
|
peakrdl_busdecoder/identifier_filter.py,sha256=poSIS1BMscORxOuDX_nXqvdNzClhKASdAVv9aDM_aqA,3972
|
|
8
8
|
peakrdl_busdecoder/listener.py,sha256=WZ2fma6oSpGGZwuP7Zcv1futWBalaeZeVZD7DX1KQz4,2509
|
|
9
|
-
peakrdl_busdecoder/module_tmpl.sv,sha256=
|
|
10
|
-
peakrdl_busdecoder/package_tmpl.sv,sha256=
|
|
9
|
+
peakrdl_busdecoder/module_tmpl.sv,sha256=g0g7Xij4ol2H_g8sw9o1_lZdMf78eVyt95AROzc__nU,2850
|
|
10
|
+
peakrdl_busdecoder/package_tmpl.sv,sha256=VWPkW7LpZTKuK7BMtpCqLxgyi9u5Fh6fwCRq7ag7BVk,825
|
|
11
11
|
peakrdl_busdecoder/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
12
|
peakrdl_busdecoder/struct_gen.py,sha256=UGNdGg-S6u2JRoDExP6Mt5h3bu01fP-gQ15FcwD9gNw,2334
|
|
13
13
|
peakrdl_busdecoder/sv_int.py,sha256=D57h4sgqnQWQtPw80OeDZk_i2_t2aOTsihmASB4NkGo,1788
|
|
14
14
|
peakrdl_busdecoder/utils.py,sha256=Kdcee6bhubI5XVX20JQ3wo0qYJTknqrv4l8kxhSd7wI,2219
|
|
15
|
-
peakrdl_busdecoder/validate_design.py,sha256=
|
|
15
|
+
peakrdl_busdecoder/validate_design.py,sha256=74MM3MC1kII0s2HqfEBvhWvD2rummn429X7qmtPjsSI,7523
|
|
16
16
|
peakrdl_busdecoder/body/__init__.py,sha256=ZFTs8xIxeLyasyabLtGp7kClmmLlJpqdKJ854pmvTJg,311
|
|
17
17
|
peakrdl_busdecoder/body/body.py,sha256=X4T3iCr94cgoz76tt2WtvhGGCweUFpUr9ogD6ol0LIg,466
|
|
18
18
|
peakrdl_busdecoder/body/combinational_body.py,sha256=2FqbGHi405oEMAKlBfXz4hnLSn8Sr60kkFIUcL9oXf4,195
|
|
@@ -34,16 +34,16 @@ peakrdl_busdecoder/cpuif/apb4/__init__.py,sha256=k4JCbIrKGT8hiRvWJDcqc5xx7j9i_xY
|
|
|
34
34
|
peakrdl_busdecoder/cpuif/apb4/apb4_cpuif.py,sha256=HarcUUxJcWLraijVaqHVWQOW_9TERD-fyfo3m_uzVhw,4512
|
|
35
35
|
peakrdl_busdecoder/cpuif/apb4/apb4_cpuif_flat.py,sha256=4uNfunrRR8uu0WcgUZFilFlj-Og1eJDKBDT4aMps4wI,2860
|
|
36
36
|
peakrdl_busdecoder/cpuif/apb4/apb4_interface.py,sha256=dnVWHi1NZScIR7sLYVfxbJDrU-Fm221O1XvHMdpSyi4,2472
|
|
37
|
-
peakrdl_busdecoder/cpuif/apb4/apb4_tmpl.sv,sha256=
|
|
37
|
+
peakrdl_busdecoder/cpuif/apb4/apb4_tmpl.sv,sha256=woX7UBWvg_mtnrBKSel60p269d1sFgGelzgA5kISxew,2020
|
|
38
38
|
peakrdl_busdecoder/cpuif/axi4lite/__init__.py,sha256=5XuWfPK2jDzr6egKUDJFr8l3k3lW-feLIh-lN7Mo8Ks,145
|
|
39
39
|
peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif.py,sha256=bSHP_xYczv30-F62wZYe3rqma458qi6sqSzLAKApiGE,5056
|
|
40
40
|
peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif_flat.py,sha256=47yz1o6yoGFyoIswdka946n_kkwsApUhqYO_xNKekR4,3868
|
|
41
41
|
peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_interface.py,sha256=EXW-nPJwMF_oCPdJ4XmreiLwhnpqSca9iViosh2rEXM,3721
|
|
42
42
|
peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_tmpl.sv,sha256=ketPrq715LSEs8Ar9ecXgnSe2AUAdQ70oNVmDbXc2Tc,3351
|
|
43
43
|
peakrdl_busdecoder/udps/__init__.py,sha256=gPc74OMVWTIr5vgtFArzbhEyi1OYjllR3ZFwHJ8APaY,106
|
|
44
|
-
peakrdl_busdecoder-0.6.
|
|
45
|
-
peakrdl_busdecoder-0.6.
|
|
46
|
-
peakrdl_busdecoder-0.6.
|
|
47
|
-
peakrdl_busdecoder-0.6.
|
|
48
|
-
peakrdl_busdecoder-0.6.
|
|
49
|
-
peakrdl_busdecoder-0.6.
|
|
44
|
+
peakrdl_busdecoder-0.6.4.dist-info/licenses/LICENSE,sha256=eAMIGRcnsTDZVr4qelHkJ49Rd_IiDY4_MVHU7N0UWSw,7646
|
|
45
|
+
peakrdl_busdecoder-0.6.4.dist-info/METADATA,sha256=O_6RiPtNmfNn-_Fs9vihEuVFEVkSd2AuPG2J6SiHya4,2797
|
|
46
|
+
peakrdl_busdecoder-0.6.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
47
|
+
peakrdl_busdecoder-0.6.4.dist-info/entry_points.txt,sha256=7Xzgt-C2F4cQu1kRLpZa0MbXSFFMC1SWEDnZkY0GH7s,73
|
|
48
|
+
peakrdl_busdecoder-0.6.4.dist-info/top_level.txt,sha256=ZIYuTsl8cYby4g8tNR_JGzbYYTrG9mqYLSBqnY1Gpmk,19
|
|
49
|
+
peakrdl_busdecoder-0.6.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|