Found the error with rg_maxres, which is that it was being used in

one place as ohms and another as milliohms.  Changed it to be
milliohms always, except when written as output to the lumped
resistance file or as diagnostic output.  The result makes more
sense, but now has the issue that the maximum resistance is always
an over-estimate and may need to account for resistances in
parallel.
This commit is contained in:
R. Timothy Edwards 2026-06-01 17:33:45 -04:00
parent 03610f6d40
commit 21b8579734
2 changed files with 3 additions and 4 deletions

View File

@ -1933,7 +1933,7 @@ ResWriteLumpFile(node, resisdata)
}
else
{
lumpedres = resisdata->rg_maxres;
lumpedres = resisdata->rg_maxres * MILLIOHMSTOOHMS;
}
fprintf(ResLumpFile, "R %s %d\n", node->name, lumpedres);
}
@ -2046,7 +2046,7 @@ ResWriteExtFile(celldef, node, resisdata, nidx, eidx)
{
if (ResOptionsFlags & ResOpt_Debug)
TxPrintf("Not adding %s (maxres = %.2fohm)\n", node->name,
resisdata->rg_maxres / 1000.0);
resisdata->rg_maxres * MILLIOHMSTOOHMS);
return 0;
}
}
@ -2078,7 +2078,7 @@ ResWriteExtFile(celldef, node, resisdata, nidx, eidx)
if (resisdata->mindelay == 0)
{
TxPrintf("Adding %s (maxres = %.2fohm)\n", node->name,
resisdata->rg_maxres / 1000.0);
resisdata->rg_maxres * MILLIOHMSTOOHMS);
}
else
{

View File

@ -934,7 +934,6 @@ ResDoSimplify(resisdata)
for (node = ResNodeList; node != NULL; node = node->rn_more)
bigres = MAX(bigres, node->rn_noderes);
bigres /= OHMSTOMILLIOHMS;
resisdata->rg_maxres = bigres;
#ifdef PARANOID