Implemented a method in EFBuildNode() to capture nodes which are

redundant (same name, different net).  Previously, the method was
to keep the first such node and ignore all others except to add
their resistance and capacitance to the original node.  This
prevented routines like "def write" from enumerating all nets
unless they had unique names.  The new method keeps the additional
records including the node location where they can be found by
EFNodeVisit(), but flags them with EF_UNIQUE_NODE so that routines
like ext2spice or ext2sim can choose to ignore them.  This implies
that this method could be used to reimplement "extract unique"
within "ext2spice" or "ext2sim" without altering label text.  This
has not yet been implemented.
This commit is contained in:
Tim Edwards
2022-11-18 21:44:06 -05:00
parent fe89170f5a
commit 16da74a2f9
7 changed files with 44 additions and 2 deletions
+6
View File
@@ -295,6 +295,9 @@ defnodeCount(node, res, cap, total)
char ndn[256];
char *cp, clast;
/* Ignore ports---use the unique node entries instead */
if (node->efnode_flags & EF_TOP_PORT) return 0;
/* Ignore the substrate node if it is not connected to any routing */
if (node->efnode_type == TT_SPACE)
return 0;
@@ -669,6 +672,9 @@ defnodeVisit(node, res, cap, defdata)
EFNodeName *thisnn;
int defNetGeometryFunc(); /* Forward declaration */
/* Ignore ports---use the unique node entries instead */
if (node->efnode_flags & EF_TOP_PORT) return 0;
/* For regular nets, only count those nodes having port */
/* connections. For special nets, only count those nodes */
/* that were marked with the EF_SPECIAL flag while counting */