Saving work so I can rebase on changes made to the magic extract

code which are relevant and need to be included.  Current state
is that hierarchical extresist "basically works" but entry and
exit points through the hierarchy are not being examined, so
results are currently based on port positions and not actual
connections.  Also, proper distribution of coupling caps has not
yet been worked on.

Rebased, fixing merge conflict.
This commit is contained in:
R. Timothy Edwards
2026-02-03 21:11:45 -05:00
parent 4dde62b206
commit 727649b308
8 changed files with 264 additions and 87 deletions
+24 -4
View File
@@ -802,14 +802,34 @@ extOutputNodes(nodeList, outFile)
lastname = ll->ll_label->lab_text;
}
/* Don't print a warning unless both labels are
* really ports.
* really ports. Also, don't print a warning for
* names generated by "extract unique" vs. real
* pin names or another unique name---"extract
* unique" does not observe where nets pass through
* subcircuits, so it tends to over-generated
* unique names, which "ext2spice" will filter out.
* For a net to be shorted to itself is not an error.
* NOTE: Potentially the unique name could be removed
* here and save ext2spice the trouble.
*/
if ((portname != NULL) &&
(ll->ll_attr == LL_PORTATTR) &&
(strcmp(ll->ll_label->lab_text, portname)))
TxError("Warning: Ports \"%s\" and \"%s\" are"
" electrically shorted.\n",
text, ll->ll_label->lab_text);
{
char *uptr1, *uptr2;
uptr1 = strstr(text, "_uq");
uptr2 = strstr(ll->ll_label->lab_text, "_uq");
if (uptr1) *uptr1 = '\0';
if (uptr2) *uptr2 = '\0';
if (strcmp(text, ll->ll_label->lab_text))
{
TxError("Warning: Ports \"%s\" and \"%s\" are"
" electrically shorted.\n",
text, ll->ll_label->lab_text);
}
if (uptr1) *uptr1 = '_';
if (uptr2) *uptr2 = '_';
}
if (!isPort && (ll->ll_attr == LL_PORTATTR))
portname = ll->ll_label->lab_text;
}