From 7e254b8657e0fa227c1b33437b6103544ca9525d Mon Sep 17 00:00:00 2001 From: Catherine Date: Fri, 20 Oct 2023 10:04:17 +0000 Subject: [PATCH] build.res: fix issue #937. --- amaranth/build/res.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/amaranth/build/res.py b/amaranth/build/res.py index 0202953..26e6be9 100644 --- a/amaranth/build/res.py +++ b/amaranth/build/res.py @@ -137,17 +137,22 @@ class ResourceManager: # ignore it as well. if isinstance(phys, Pins): phys_names = phys.names - port = wiring.Signature({"io": wiring.In(len(phys))}).create(path=(name,)) + port = Record([("io", len(phys))], name=name) + port.signature = wiring.Signature({"io": wiring.In(len(phys))}) if isinstance(phys, DiffPairs): phys_names = [] - members = {} + rec_members = [] + sig_members = {} if not self.should_skip_port_component(None, attrs, "p"): phys_names += phys.p.names - members["p"] = wiring.In(len(phys)) + rec_members.append(("p", len(phys))) + sig_members["p"] = wiring.In(len(phys)) if not self.should_skip_port_component(None, attrs, "n"): phys_names += phys.n.names - members["n"] = wiring.In(len(phys)) - port = wiring.Signature(members).create(path=(name,)) + rec_members.append(("n", len(phys))) + sig_members["n"] = wiring.In(len(phys)) + port = Record(rec_members, name=name) + port.signature = wiring.Signature(sig_members) if dir == "-": pin = None else: