Skip to content

Commit 0c5f47d

Browse files
committed
Added support for memory referencing in UDPs
1 parent 2a3d141 commit 0c5f47d

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

src/peakrdl_python/templates/addrmap_udp_property.py.jinja

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
2727
{{ type(value).type_name + '_property_enumcls.' + value.name.upper() }}
2828
{%- elif isinstance(value, str) -%}
2929
"{{ value }}"
30-
{%- elif isinstance(value, (systemrdlFieldNode, systemrdlRegNode, systemrdlRegfileNode, systemrdlAddrmapNode )) -%}
30+
{%- elif isinstance(value, (systemrdlFieldNode, systemrdlRegNode, systemrdlRegfileNode, systemrdlAddrmapNode, systemrdlMemNode)) -%}
3131
{%- if full_qual_resolution -%}
3232
self.dut.{{'.'.join(get_python_path_segments(value))}}
3333
{%- else -%}

tests/testcases/udp_with_referencing.rdl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ property register_child_pointer {
3030
struct addrmap_child {
3131
regfile regfile_children[];
3232
reg reg_children[];
33+
mem mem_children[];
3334
addrmap addrmap_children[];
3435
};
3536

@@ -68,6 +69,13 @@ addrmap udp_with_referencing {
6869
regfile_child_pointer = regfile_child'{ reg_children:'{ reg_value }, regfile_children:'{ inner_regfile_value } };
6970
};
7071

72+
mem mem_def {
73+
mementries = 32;
74+
memwidth = 32;
75+
76+
reg_def reg_value;
77+
};
78+
7179
addrmap addrmap_def {
7280
addrmap inner_addrmap_def {
7381
reg_def reg_value;
@@ -76,8 +84,9 @@ addrmap udp_with_referencing {
7684
};
7785
reg_def reg_value;
7886
regfile_def regfile_value;
87+
external mem_def mem_value;
7988
inner_addrmap_def addrmap_value;
80-
addrmap_child_pointer = addrmap_child'{ reg_children:'{ reg_value }, regfile_children:'{ regfile_value }, addrmap_children:'{ addrmap_value } };
89+
addrmap_child_pointer = addrmap_child'{ reg_children:'{ reg_value }, regfile_children:'{ regfile_value }, addrmap_children:'{ addrmap_value }, mem_children:'{ mem_value } };
8190
};
8291

8392
addrmap_def main;

0 commit comments

Comments
 (0)