Skip to content

Commit e68f132

Browse files
authored
Merge pull request #82 from krcb197/81-templates-error-on-systemrdl-signalnodes
81 templates error on systemrdl signalnodes
2 parents acd0f5c + 829b6b7 commit e68f132

5 files changed

Lines changed: 31 additions & 1 deletion

File tree

src/peakrdl_python/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""
22
Variables that describes the PeakRDL Python Package
33
"""
4-
__version__ = "0.3.10"
4+
__version__ = "0.3.11"

src/peakrdl_python/exporter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
from systemrdl.node import RootNode, Node, RegNode, AddrmapNode, RegfileNode # type: ignore
1414
from systemrdl.node import FieldNode, MemNode, AddressableNode # type: ignore
15+
from systemrdl.node import SignalNode # type: ignore
1516
from systemrdl.rdltypes import OnReadType, OnWriteType, PropertyReference # type: ignore
1617

1718
from .systemrdl_node_utility_functions import get_reg_readable_fields, get_reg_writable_fields, \
@@ -131,6 +132,7 @@ def export(self, node: Node, path: str,
131132
'systemrdlAddrmapNode': AddrmapNode,
132133
'systemrdlMemNode': MemNode,
133134
'systemrdlAddressableNode': AddressableNode,
135+
'systemrdlSignalNode': SignalNode,
134136
'OnWriteType': OnWriteType,
135137
'OnReadType': OnReadType,
136138
'PropertyReference': PropertyReference,

src/peakrdl_python/templates/addrmap.py.jinja

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,8 @@ class {{get_fully_qualified_type_name(node)}}_cls(AddressMap):
243243
'{{child_node.inst_name}}':'{{safe_node_name(child_node)}}',
244244
{%- elif isinstance(child_node, systemrdlMemNode) %}
245245
'{{child_node.inst_name}}':'{{safe_node_name(child_node)}}',
246+
{%- elif isinstance(child_node, systemrdlSignalNode) %}
247+
# doing nothing with signal node: {{child_node.inst_name}}
246248
{% else %}
247249
{{ raise_template_error('unexpected type') }}
248250
{%- endif %}

src/peakrdl_python/templates/addrmap_tb.py.jinja

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,12 @@ class {{top_node.type_name}}_TestCase(unittest.TestCase):
8989
Walk the address map and check the inst name has been correctly populated
9090
"""
9191
{% for node in top_node.descendants(unroll=True) -%}
92+
{% if isinstance(node, systemrdlSignalNode) %}
93+
# doing nothing with signal node: {{node.inst_name}}
94+
{% else %}
9295
self.assertEqual(self.dut.{{'.'.join(get_python_path_segments(node))}}.inst_name, '{{node.get_path_segments()[-1]}}')
9396
self.assertEqual(self.dut.{{'.'.join(get_python_path_segments(node))}}.full_inst_name, '{{'.'.join(node.get_path_segments())}}')
97+
{% endif %}
9498
{% endfor %}
9599

96100
def test_register_properties(self):
@@ -713,8 +717,12 @@ class {{top_node.type_name}}_TestCase(unittest.TestCase):
713717

714718
"""
715719
{%- for node in top_node.descendants(unroll=True) %}
720+
{% if isinstance(node, systemrdlSignalNode) %}
721+
# doing nothing with signal node: {{node.inst_name}}
722+
{% else %}
716723
with self.assertRaises(AttributeError):
717724
self.dut.{{'.'.join(get_python_path_segments(node))}}.cppkbrgmgeloagvfgjjeiiushygirh = 1
725+
{% endif %}
718726
{%- endfor %}
719727

720728
{% macro check_readable_register_iterators(node) %}

tests/testcases/bug_81.rdl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
signal {signalwidth=1; sync; activehigh;} my_signal;
2+
3+
addrmap addrmap_with_signal {
4+
default regwidth = 32;
5+
default accesswidth = 32;
6+
7+
signal {signalwidth=1; sync; activehigh;
8+
} my_signal;
9+
10+
reg {
11+
default sw = r;
12+
default hw = w;
13+
14+
field {} my_field[32];
15+
} my_reg;
16+
17+
my_reg.my_field->resetsignal = my_signal;
18+
};

0 commit comments

Comments
 (0)