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.
This commit is contained in:
Tim Edwards 2024-12-26 21:20:24 -05:00
parent 49c0de0433
commit 2483b7440f
2 changed files with 4 additions and 2 deletions

View File

@ -1 +1 @@
1.5.287 1.5.288

View File

@ -6604,7 +6604,9 @@ int ResolveAutomorphsByPin()
if (N1->hashval != orighash) continue; if (N1->hashval != orighash) continue;
for (N2 = N1->next; N2 != NULL; N2 = N2->next) { for (N2 = N1->next; N2 != NULL; N2 = N2->next) {
if ((N2->graph != N1->graph) && 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) if (Debug == TRUE)
Printf("Symmetry group broken by name match (pin %s)\n", N2->object->name); Printf("Symmetry group broken by name match (pin %s)\n", N2->object->name);
Magic(newhash); Magic(newhash);