From 3001473ae5280469ad3e4a057d7a43f5482c1f36 Mon Sep 17 00:00:00 2001 From: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com> Date: Wed, 21 May 2025 16:09:39 +1200 Subject: [PATCH] functional.cc: Maintain port ordering Based on #4753. --- kernel/functional.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/functional.cc b/kernel/functional.cc index adf7bfb0c..178995de8 100644 --- a/kernel/functional.cc +++ b/kernel/functional.cc @@ -518,10 +518,12 @@ public: if (cell->type.in(ID($assert), ID($assume), ID($live), ID($fair), ID($cover), ID($check))) queue.emplace_back(cell); } - for (auto wire : module->wires()) { - if (wire->port_input) + for (auto port : module->ports) { + auto *wire = module->wire(port); + if (wire && wire->port_input) { factory.add_input(wire->name, ID($input), Sort(wire->width)); - if (wire->port_output) { + } + if (wire && wire->port_output) { auto &output = factory.add_output(wire->name, ID($output), Sort(wire->width)); output.set_value(enqueue(DriveChunk(DriveChunkWire(wire, 0, wire->width)))); }