From 4bbc4967496828ffbdb65a5934457c4940bab40b Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Thu, 24 Jun 2021 14:53:24 -0400 Subject: [PATCH] Corrected an error in the "run converge" and "run resolve" methods. The algorithm is to run without exhaustive subdivision until the last step because this is much faster. The final iteration must be run with exhaustive subdivision on, or else it is possible to have cells with swapped pins matching. The routines that resolve automorphisms were setting exhaustive subdivision for the final iteration. But simple "run converge" and "run resolve" were not. --- VERSION | 2 +- tcltk/tclnetgen.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 99c8f37..66dd59a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.189 +1.5.190 diff --git a/tcltk/tclnetgen.c b/tcltk/tclnetgen.c index cd6b262..bbbe762 100644 --- a/tcltk/tclnetgen.c +++ b/tcltk/tclnetgen.c @@ -2428,6 +2428,8 @@ _netcmp_run(ClientData clientData, else { enable_interrupt(); while (!Iterate() && !InterruptPending); + ExhaustiveSubdivision = 1; + while (!Iterate() && !InterruptPending); if (dolist) { result = _netcmp_verify(clientData, interp, 2, objv - 1); } @@ -2446,6 +2448,8 @@ _netcmp_run(ClientData clientData, else { enable_interrupt(); while (!Iterate() && !InterruptPending); + ExhaustiveSubdivision = 1; + while (!Iterate() && !InterruptPending); automorphisms = VerifyMatching(); if (automorphisms == -1) Fprintf(stdout, "Netlists do not match.\n");