Skip to content

Commit a1fbbb2

Browse files
committed
hdl.ir: bring new naming rules to top-level ports
1 parent f27560f commit a1fbbb2

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

amaranth/hdl/_ir.py

+1
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,7 @@ def _assign_port_names(self):
557557
if name is None:
558558
name = _add_name(assigned_names, conn.name)
559559
assigned_names.add(name)
560+
validate_name(name, "Top-level port name")
560561
new_ports.append((name, conn, dir))
561562
self.ports = new_ports
562563

tests/test_hdl_ir.py

+6
Original file line numberDiff line numberDiff line change
@@ -1044,6 +1044,12 @@ def test_assign_names_to_fragments_duplicate(self):
10441044
self.assertEqual(design.fragments[a1_f].name, ("top", "a"))
10451045
self.assertEqual(design.fragments[a2_f].name, ("top", "a$1"))
10461046

1047+
def test_port_wrong_name(self):
1048+
f = Fragment()
1049+
with self.assertRaisesRegex(NameError,
1050+
r"^Top-level port name must be a non-empty string$"):
1051+
design = Design(f, ports=[("", Signal(), None)], hierarchy=("top",))
1052+
10471053

10481054
class ElaboratesTo(Elaboratable):
10491055
def __init__(self, lower):

0 commit comments

Comments
 (0)