peakrdl-busdecoder 0.6.3__py3-none-any.whl → 0.6.5__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/__peakrdl__.py +4 -2
- peakrdl_busdecoder/cpuif/apb3/apb3_cpuif.py +3 -3
- peakrdl_busdecoder/cpuif/apb3/apb3_cpuif_flat.py +3 -3
- peakrdl_busdecoder/cpuif/apb4/apb4_cpuif.py +3 -3
- peakrdl_busdecoder/cpuif/apb4/apb4_cpuif_flat.py +3 -3
- peakrdl_busdecoder/cpuif/base_cpuif.py +9 -9
- peakrdl_busdecoder/cpuif/interface.py +1 -1
- peakrdl_busdecoder/exporter.py +5 -7
- peakrdl_busdecoder/module_tmpl.sv +0 -1
- peakrdl_busdecoder/package_tmpl.sv +0 -1
- peakrdl_busdecoder/utils.py +0 -1
- peakrdl_busdecoder/validate_design.py +3 -1
- {peakrdl_busdecoder-0.6.3.dist-info → peakrdl_busdecoder-0.6.5.dist-info}/METADATA +1 -1
- {peakrdl_busdecoder-0.6.3.dist-info → peakrdl_busdecoder-0.6.5.dist-info}/RECORD +18 -18
- {peakrdl_busdecoder-0.6.3.dist-info → peakrdl_busdecoder-0.6.5.dist-info}/WHEEL +0 -0
- {peakrdl_busdecoder-0.6.3.dist-info → peakrdl_busdecoder-0.6.5.dist-info}/entry_points.txt +0 -0
- {peakrdl_busdecoder-0.6.3.dist-info → peakrdl_busdecoder-0.6.5.dist-info}/licenses/LICENSE +0 -0
- {peakrdl_busdecoder-0.6.3.dist-info → peakrdl_busdecoder-0.6.5.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import functools
|
|
2
4
|
from typing import TYPE_CHECKING, Any
|
|
3
5
|
|
|
@@ -69,7 +71,7 @@ class Exporter(ExporterSubcommandPlugin):
|
|
|
69
71
|
def get_cpuifs(self) -> dict[str, type[BaseCpuif]]:
|
|
70
72
|
return get_cpuifs(map(tuple, self.cfg["cpuifs"].items()))
|
|
71
73
|
|
|
72
|
-
def add_exporter_arguments(self, arg_group:
|
|
74
|
+
def add_exporter_arguments(self, arg_group: argparse._ActionsContainer) -> None:
|
|
73
75
|
cpuifs = self.get_cpuifs()
|
|
74
76
|
|
|
75
77
|
arg_group.add_argument(
|
|
@@ -122,7 +124,7 @@ class Exporter(ExporterSubcommandPlugin):
|
|
|
122
124
|
""",
|
|
123
125
|
)
|
|
124
126
|
|
|
125
|
-
def do_export(self, top_node:
|
|
127
|
+
def do_export(self, top_node: AddrmapNode, options: argparse.Namespace) -> None:
|
|
126
128
|
cpuifs = self.get_cpuifs()
|
|
127
129
|
|
|
128
130
|
x = BusDecoderExporter()
|
|
@@ -45,7 +45,7 @@ class APB3Cpuif(BaseCpuif):
|
|
|
45
45
|
fanout[self.signal("PADDR", node, "gi")] = self.signal("PADDR")
|
|
46
46
|
fanout[self.signal("PWDATA", node, "gi")] = "cpuif_wr_data"
|
|
47
47
|
|
|
48
|
-
return "\n".join(
|
|
48
|
+
return "\n".join(f"assign {kv[0]} = {kv[1]};" for kv in fanout.items())
|
|
49
49
|
|
|
50
50
|
def fanin(self, node: AddressableNode | None = None) -> str:
|
|
51
51
|
fanin: dict[str, str] = {}
|
|
@@ -64,7 +64,7 @@ class APB3Cpuif(BaseCpuif):
|
|
|
64
64
|
fanin["cpuif_rd_ack"] = self.signal("PREADY", node, "i")
|
|
65
65
|
fanin["cpuif_rd_err"] = self.signal("PSLVERR", node, "i")
|
|
66
66
|
|
|
67
|
-
return "\n".join(
|
|
67
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
68
68
|
|
|
69
69
|
def readback(self, node: AddressableNode | None = None) -> str:
|
|
70
70
|
fanin: dict[str, str] = {}
|
|
@@ -80,7 +80,7 @@ class APB3Cpuif(BaseCpuif):
|
|
|
80
80
|
else:
|
|
81
81
|
fanin["cpuif_rd_data"] = self.signal("PRDATA", node, "i")
|
|
82
82
|
|
|
83
|
-
return "\n".join(
|
|
83
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
84
84
|
|
|
85
85
|
def fanin_intermediate_assignments(
|
|
86
86
|
self, node: AddressableNode, inst_name: str, array_idx: str, master_prefix: str, indexed_path: str
|
|
@@ -51,7 +51,7 @@ class APB3CpuifFlat(BaseCpuif):
|
|
|
51
51
|
fanout[self.signal("PADDR", node, "gi")] = f"{{{'-'.join(addr_comp)}}}[{clog2(node.size) - 1}:0]"
|
|
52
52
|
fanout[self.signal("PWDATA", node, "gi")] = "cpuif_wr_data"
|
|
53
53
|
|
|
54
|
-
return "\n".join(
|
|
54
|
+
return "\n".join(f"assign {kv[0]} = {kv[1]};" for kv in fanout.items())
|
|
55
55
|
|
|
56
56
|
def fanin(self, node: AddressableNode | None = None) -> str:
|
|
57
57
|
fanin: dict[str, str] = {}
|
|
@@ -62,7 +62,7 @@ class APB3CpuifFlat(BaseCpuif):
|
|
|
62
62
|
fanin["cpuif_rd_ack"] = self.signal("PREADY", node, "i")
|
|
63
63
|
fanin["cpuif_rd_err"] = self.signal("PSLVERR", node, "i")
|
|
64
64
|
|
|
65
|
-
return "\n".join(
|
|
65
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
66
66
|
|
|
67
67
|
def readback(self, node: AddressableNode | None = None) -> str:
|
|
68
68
|
fanin: dict[str, str] = {}
|
|
@@ -71,4 +71,4 @@ class APB3CpuifFlat(BaseCpuif):
|
|
|
71
71
|
else:
|
|
72
72
|
fanin["cpuif_rd_data"] = self.signal("PRDATA", node, "i")
|
|
73
73
|
|
|
74
|
-
return "\n".join(
|
|
74
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
@@ -48,7 +48,7 @@ class APB4Cpuif(BaseCpuif):
|
|
|
48
48
|
fanout[self.signal("PWDATA", node, "gi")] = "cpuif_wr_data"
|
|
49
49
|
fanout[self.signal("PSTRB", node, "gi")] = "cpuif_wr_byte_en"
|
|
50
50
|
|
|
51
|
-
return "\n".join(
|
|
51
|
+
return "\n".join(f"assign {kv[0]} = {kv[1]};" for kv in fanout.items())
|
|
52
52
|
|
|
53
53
|
def fanin(self, node: AddressableNode | None = None) -> str:
|
|
54
54
|
fanin: dict[str, str] = {}
|
|
@@ -67,7 +67,7 @@ class APB4Cpuif(BaseCpuif):
|
|
|
67
67
|
fanin["cpuif_rd_ack"] = self.signal("PREADY", node, "i")
|
|
68
68
|
fanin["cpuif_rd_err"] = self.signal("PSLVERR", node, "i")
|
|
69
69
|
|
|
70
|
-
return "\n".join(
|
|
70
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
71
71
|
|
|
72
72
|
def readback(self, node: AddressableNode | None = None) -> str:
|
|
73
73
|
fanin: dict[str, str] = {}
|
|
@@ -83,7 +83,7 @@ class APB4Cpuif(BaseCpuif):
|
|
|
83
83
|
else:
|
|
84
84
|
fanin["cpuif_rd_data"] = self.signal("PRDATA", node, "i")
|
|
85
85
|
|
|
86
|
-
return "\n".join(
|
|
86
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
87
87
|
|
|
88
88
|
def fanin_intermediate_assignments(
|
|
89
89
|
self, node: AddressableNode, inst_name: str, array_idx: str, master_prefix: str, indexed_path: str
|
|
@@ -53,7 +53,7 @@ class APB4CpuifFlat(BaseCpuif):
|
|
|
53
53
|
fanout[self.signal("PWDATA", node, "gi")] = "cpuif_wr_data"
|
|
54
54
|
fanout[self.signal("PSTRB", node, "gi")] = "cpuif_wr_byte_en"
|
|
55
55
|
|
|
56
|
-
return "\n".join(
|
|
56
|
+
return "\n".join(f"assign {kv[0]} = {kv[1]};" for kv in fanout.items())
|
|
57
57
|
|
|
58
58
|
def fanin(self, node: AddressableNode | None = None) -> str:
|
|
59
59
|
fanin: dict[str, str] = {}
|
|
@@ -64,7 +64,7 @@ class APB4CpuifFlat(BaseCpuif):
|
|
|
64
64
|
fanin["cpuif_rd_ack"] = self.signal("PREADY", node, "i")
|
|
65
65
|
fanin["cpuif_rd_err"] = self.signal("PSLVERR", node, "i")
|
|
66
66
|
|
|
67
|
-
return "\n".join(
|
|
67
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
68
68
|
|
|
69
69
|
def readback(self, node: AddressableNode | None = None) -> str:
|
|
70
70
|
fanin: dict[str, str] = {}
|
|
@@ -73,4 +73,4 @@ class APB4CpuifFlat(BaseCpuif):
|
|
|
73
73
|
else:
|
|
74
74
|
fanin["cpuif_rd_data"] = self.signal("PRDATA", node, "i")
|
|
75
75
|
|
|
76
|
-
return "\n".join(
|
|
76
|
+
return "\n".join(f"{kv[0]} = {kv[1]};" for kv in fanin.items())
|
|
@@ -82,15 +82,15 @@ class BaseCpuif:
|
|
|
82
82
|
loader=loader,
|
|
83
83
|
undefined=jj.StrictUndefined,
|
|
84
84
|
)
|
|
85
|
-
jj_env.tests["array"] = self.check_is_array
|
|
86
|
-
jj_env.filters["clog2"] = clog2
|
|
87
|
-
jj_env.filters["is_pow2"] = is_pow2
|
|
88
|
-
jj_env.filters["roundup_pow2"] = roundup_pow2
|
|
89
|
-
jj_env.filters["address_slice"] = self.get_address_slice
|
|
90
|
-
jj_env.filters["get_path"] = lambda x: get_indexed_path(self.exp.ds.top_node, x, "i")
|
|
91
|
-
jj_env.filters["walk"] = self.exp.walk
|
|
92
|
-
|
|
93
|
-
context = {
|
|
85
|
+
jj_env.tests["array"] = self.check_is_array
|
|
86
|
+
jj_env.filters["clog2"] = clog2
|
|
87
|
+
jj_env.filters["is_pow2"] = is_pow2
|
|
88
|
+
jj_env.filters["roundup_pow2"] = roundup_pow2
|
|
89
|
+
jj_env.filters["address_slice"] = self.get_address_slice
|
|
90
|
+
jj_env.filters["get_path"] = lambda x: get_indexed_path(self.exp.ds.top_node, x, "i")
|
|
91
|
+
jj_env.filters["walk"] = self.exp.walk
|
|
92
|
+
|
|
93
|
+
context = {
|
|
94
94
|
"cpuif": self,
|
|
95
95
|
"ds": self.exp.ds,
|
|
96
96
|
"fanout": FanoutGenerator,
|
|
@@ -78,7 +78,7 @@ class SVInterface(Interface):
|
|
|
78
78
|
|
|
79
79
|
# When unrolled, current_idx is set - append it to the name
|
|
80
80
|
if child.current_idx is not None:
|
|
81
|
-
base = f"{base}_{'_'.join(map(str, child.current_idx))}"
|
|
81
|
+
base = f"{base}_{'_'.join(map(str, child.current_idx))}" # ty: ignore
|
|
82
82
|
|
|
83
83
|
# Only add array dimensions if this should be treated as an array
|
|
84
84
|
if self.cpuif.check_is_array(child):
|
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
|
|
@@ -59,9 +58,9 @@ class BusDecoderExporter:
|
|
|
59
58
|
loader=c_loader,
|
|
60
59
|
undefined=jj.StrictUndefined,
|
|
61
60
|
)
|
|
62
|
-
self.jj_env.filters["kwf"] = kwf
|
|
63
|
-
self.jj_env.filters["walk"] = self.walk
|
|
64
|
-
self.jj_env.filters["clog2"] = clog2
|
|
61
|
+
self.jj_env.filters["kwf"] = kwf
|
|
62
|
+
self.jj_env.filters["walk"] = self.walk
|
|
63
|
+
self.jj_env.filters["clog2"] = clog2
|
|
65
64
|
|
|
66
65
|
def export(self, node: RootNode | AddrmapNode, output_dir: str, **kwargs: Unpack[ExporterKwargs]) -> None:
|
|
67
66
|
"""
|
|
@@ -99,7 +98,7 @@ class BusDecoderExporter:
|
|
|
99
98
|
else:
|
|
100
99
|
top_node = node
|
|
101
100
|
|
|
102
|
-
self.ds = DesignState(top_node, kwargs)
|
|
101
|
+
self.ds = DesignState(top_node, kwargs) # ty: ignore
|
|
103
102
|
|
|
104
103
|
cpuif_cls: type[BaseCpuif] = kwargs.pop("cpuif_cls", None) or APB4Cpuif
|
|
105
104
|
|
|
@@ -114,8 +113,7 @@ class BusDecoderExporter:
|
|
|
114
113
|
DesignValidator(self).do_validate()
|
|
115
114
|
|
|
116
115
|
# Build Jinja template context
|
|
117
|
-
context = {
|
|
118
|
-
"current_date": datetime.now().strftime("%Y-%m-%d"),
|
|
116
|
+
context = {
|
|
119
117
|
"version": version("peakrdl-busdecoder"),
|
|
120
118
|
"cpuif": self.cpuif,
|
|
121
119
|
"cpuif_decode": DecodeLogicGenerator,
|
peakrdl_busdecoder/utils.py
CHANGED
|
@@ -62,7 +62,6 @@ def ref_is_internal(top_node: AddrmapNode, ref: Node | PropertyReference) -> boo
|
|
|
62
62
|
else:
|
|
63
63
|
current_node = ref
|
|
64
64
|
|
|
65
|
-
# pyrefly: ignore[bad-assignment] - false positive due to circular type checking
|
|
66
65
|
while current_node is not None:
|
|
67
66
|
if current_node == top_node:
|
|
68
67
|
# reached top node without finding any external components
|
|
@@ -74,7 +74,9 @@ class DesignValidator(RDLListener):
|
|
|
74
74
|
f"instance '{node.inst_name}' must be a multiple of {alignment}",
|
|
75
75
|
node.inst.inst_src_ref,
|
|
76
76
|
)
|
|
77
|
-
if node.is_array and (
|
|
77
|
+
if node.is_array and (
|
|
78
|
+
node.array_stride is not None and (node.array_stride % alignment) != 0
|
|
79
|
+
): # is_array implies stride is not none
|
|
78
80
|
self.msg.error(
|
|
79
81
|
"Unaligned registers are not supported. Address stride of "
|
|
80
82
|
f"instance array '{node.inst_name}' must be a multiple of {alignment}",
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
peakrdl_busdecoder/__init__.py,sha256=zKSEa8EqCrZUtGoHCuZ0uNQVQMV2isVn47CgsDj5K48,75
|
|
2
|
-
peakrdl_busdecoder/__peakrdl__.py,sha256=
|
|
2
|
+
peakrdl_busdecoder/__peakrdl__.py,sha256=TtP7daoKSy-x53x6b62xlZu6lQJ6Vp3-v_OqnpsGcig,4618
|
|
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=MbIcKK9ttXNhxJ2J8x8EvNO4QBzo60OnbqXH4KtjuPc,5211
|
|
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
|
-
peakrdl_busdecoder/utils.py,sha256=
|
|
15
|
-
peakrdl_busdecoder/validate_design.py,sha256=
|
|
14
|
+
peakrdl_busdecoder/utils.py,sha256=MeLWATeumUKlfobuoI6yL3nx9Mk8BNZeKD9xq0e8I6U,2134
|
|
15
|
+
peakrdl_busdecoder/validate_design.py,sha256=DyGhOR61kd-Lrd34q9hQZWMk7_D0LrMWHoLbzk9tRAM,7566
|
|
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
|
|
@@ -20,19 +20,19 @@ peakrdl_busdecoder/body/for_loop_body.py,sha256=lJYfDiB7MF9_mfbGEApoVHRViBCqpGRs
|
|
|
20
20
|
peakrdl_busdecoder/body/if_body.py,sha256=S4oVS7yz04R1i-23W-aWpVcVZa5dW-H0FL_KnMy-Wsc,3261
|
|
21
21
|
peakrdl_busdecoder/body/struct_body.py,sha256=74ItYoYD-GqEidxc-ncV5y8fzGoM47NI4GnnweclmS8,624
|
|
22
22
|
peakrdl_busdecoder/cpuif/__init__.py,sha256=T8YrELGuOBIPgj1e86tNJ5tSCf7fXpPadqa71v5MEx8,59
|
|
23
|
-
peakrdl_busdecoder/cpuif/base_cpuif.py,sha256
|
|
23
|
+
peakrdl_busdecoder/cpuif/base_cpuif.py,sha256=-5bI43pbcPVYhvS0AEYgMkCBxkhnqmx9jLMazzT0z5k,4985
|
|
24
24
|
peakrdl_busdecoder/cpuif/fanin_gen.py,sha256=ioCxjj3V3X8rHssqwuI4p_U-LKpBalATW_Qshtt8j9U,2425
|
|
25
25
|
peakrdl_busdecoder/cpuif/fanin_intermediate_gen.py,sha256=hfvMyyx5ajEzvop3dzV37dT6Jn9yjORFnUkMAT1034A,5271
|
|
26
26
|
peakrdl_busdecoder/cpuif/fanout_gen.py,sha256=-kopGBHC07D9VreygfN0VubHGVVO51og4lAFq6B1oV8,1876
|
|
27
|
-
peakrdl_busdecoder/cpuif/interface.py,sha256=
|
|
27
|
+
peakrdl_busdecoder/cpuif/interface.py,sha256=0xp_4K6DZMGOePbFgLEOIaVemjMS5pnQp7izKmzgu4s,6462
|
|
28
28
|
peakrdl_busdecoder/cpuif/apb3/__init__.py,sha256=Uq82IJHzlITUvjTuETvPpSzvLEYoairzzPKfPz7kuC4,119
|
|
29
|
-
peakrdl_busdecoder/cpuif/apb3/apb3_cpuif.py,sha256=
|
|
30
|
-
peakrdl_busdecoder/cpuif/apb3/apb3_cpuif_flat.py,sha256=
|
|
29
|
+
peakrdl_busdecoder/cpuif/apb3/apb3_cpuif.py,sha256=71hIN2RtoyaR6ehqH9vTPh_e_XnO1azBknmTvC3hAeE,4282
|
|
30
|
+
peakrdl_busdecoder/cpuif/apb3/apb3_cpuif_flat.py,sha256=kdq6My7fjq233DUmwn_7VVFgqqnbZ-QMS4HEoI702MQ,2697
|
|
31
31
|
peakrdl_busdecoder/cpuif/apb3/apb3_interface.py,sha256=PQwMtjETR9-c9S1BzjdWieCis2qoOfUyRQAWcD3ScyE,2170
|
|
32
32
|
peakrdl_busdecoder/cpuif/apb3/apb3_tmpl.sv,sha256=6et25KbiNkZBD1hxjSx0XZFUP9NnvVpixMSGtwJuwdA,1967
|
|
33
33
|
peakrdl_busdecoder/cpuif/apb4/__init__.py,sha256=k4JCbIrKGT8hiRvWJDcqc5xx7j9i_xYgpXU70sNaLsc,119
|
|
34
|
-
peakrdl_busdecoder/cpuif/apb4/apb4_cpuif.py,sha256=
|
|
35
|
-
peakrdl_busdecoder/cpuif/apb4/apb4_cpuif_flat.py,sha256=
|
|
34
|
+
peakrdl_busdecoder/cpuif/apb4/apb4_cpuif.py,sha256=Fg1CL4tfu0IyQLf1pDRPNP__5ZwZKEZN9es7VecAc5k,4491
|
|
35
|
+
peakrdl_busdecoder/cpuif/apb4/apb4_cpuif_flat.py,sha256=4nXU_Fgw2Bro9yxJhXjf5OEHf4kQjLzL05SrCbEVM1g,2839
|
|
36
36
|
peakrdl_busdecoder/cpuif/apb4/apb4_interface.py,sha256=dnVWHi1NZScIR7sLYVfxbJDrU-Fm221O1XvHMdpSyi4,2472
|
|
37
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
|
|
@@ -41,9 +41,9 @@ peakrdl_busdecoder/cpuif/axi4lite/axi4_lite_cpuif_flat.py,sha256=47yz1o6yoGFyoIs
|
|
|
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.5.dist-info/licenses/LICENSE,sha256=eAMIGRcnsTDZVr4qelHkJ49Rd_IiDY4_MVHU7N0UWSw,7646
|
|
45
|
+
peakrdl_busdecoder-0.6.5.dist-info/METADATA,sha256=OVIXfBAAbfNLR-3lgk6QSMWaV-KecglM3m7KPPMUq7c,2797
|
|
46
|
+
peakrdl_busdecoder-0.6.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
47
|
+
peakrdl_busdecoder-0.6.5.dist-info/entry_points.txt,sha256=7Xzgt-C2F4cQu1kRLpZa0MbXSFFMC1SWEDnZkY0GH7s,73
|
|
48
|
+
peakrdl_busdecoder-0.6.5.dist-info/top_level.txt,sha256=ZIYuTsl8cYby4g8tNR_JGzbYYTrG9mqYLSBqnY1Gpmk,19
|
|
49
|
+
peakrdl_busdecoder-0.6.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|