Corrected an error in the calculation of the number of contact

cuts per contact area during parasitic resistance extraction.
Previously, the result was divided by the via pitch twice,
resulting in most contact areas being reported as a single
cut.
This commit is contained in:
Tim Edwards 2023-09-28 12:38:08 -04:00
parent 7aa846443a
commit 656b5dbabe
3 changed files with 7 additions and 11 deletions

View File

@ -1 +1 @@
8.3.434
8.3.435

View File

@ -831,14 +831,12 @@ ResDoContacts(contact, nodes, resList)
else
{
viawidth += spacing;
squaresf = (float)((contact->cp_width * cscale) - minside) / (float)viawidth;
squaresf *= ExtCurStyle->exts_unitsPerLambda;
squaresf = (float)((contact->cp_width * cscale) - minside);
squaresf /= (float)viawidth;
squaresx = (int)squaresf;
squaresx++;
squaresf = (float)((contact->cp_height * cscale) - minside) / (float)viawidth;
squaresf *= ExtCurStyle->exts_unitsPerLambda;
squaresf = (float)((contact->cp_height * cscale) - minside);
squaresf /= (float)viawidth;
squaresy = (int)squaresf;
squaresy++;

View File

@ -880,7 +880,7 @@ ResDoSimplify(tolerance, rctol, goodies)
/* we're calculating lumped values so that the capacitance */
/* values get calculated correctly. */
(void) ResDistributeCapacitance(ResNodeList,goodies->rg_nodecap);
(void) ResDistributeCapacitance(ResNodeList, goodies->rg_nodecap);
if (((tolerance > bigres) || ((ResOptionsFlags & ResOpt_Simplify) == 0)) &&
((ResOptionsFlags & ResOpt_DoLumpFile) == 0))
@ -895,9 +895,9 @@ ResDoSimplify(tolerance, rctol, goodies)
oldres->rr_status &= ~RES_HEAP;
if (oldres->rr_status & RES_TDI_IGNORE)
{
ResDeleteResPointer(oldres->rr_node[0], oldres);
ResDeleteResPointer(oldres->rr_node[1], oldres);
ResEliminateResistor(oldres, &ResResList);
ResDeleteResPointer(oldres->rr_node[0], oldres);
ResDeleteResPointer(oldres->rr_node[1], oldres);
ResEliminateResistor(oldres, &ResResList);
}
}
@ -940,7 +940,6 @@ ResDoSimplify(tolerance, rctol, goodies)
goodies->rg_Tdi != -1)
return 0;
/* Simplify network; resistors are still in milliohms, so use
* millitolerance.
*/
@ -963,7 +962,6 @@ ResDoSimplify(tolerance, rctol, goodies)
}
if (ResOriginNode != NULL)
{
/* if Tdi is enabled, prune all branches whose end nodes */
/* have time constants less than the tolerance. */