From 2483b7440ffad1842949e226ca05ec8759a9453f Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Thu, 26 Dec 2024 21:20:24 -0500 Subject: [PATCH] Corrected an error in "ResolveAutomorphsByPin" where the code states to check that the nodes with matching names are pins, but never does. This results in an attempt to resolve automorphs by matching pin names AND net names. However, net names can match without the nets matching, as pointed out by Andrey Bondar (private communication). Fixed simply by adding the specified check that the node being name- matched is actually a pin. --- VERSION | 2 +- base/netcmp.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 268b24f..74884a5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.287 +1.5.288 diff --git a/base/netcmp.c b/base/netcmp.c index 0c3c37a..35b0bf9 100644 --- a/base/netcmp.c +++ b/base/netcmp.c @@ -6604,7 +6604,9 @@ int ResolveAutomorphsByPin() if (N1->hashval != orighash) continue; for (N2 = N1->next; N2 != NULL; N2 = N2->next) { if ((N2->graph != N1->graph) && - (*matchfunc)(N2->object->name, N1->object->name)) { + (*matchfunc)(N2->object->name, N1->object->name) && + (N1->object->type == PORT || N2->object->type == PORT)) { + if (Debug == TRUE) Printf("Symmetry group broken by name match (pin %s)\n", N2->object->name); Magic(newhash);