mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-10-06 09:53:00 +02:00
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:
+2
-4
@@ -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++;
|
||||
|
||||
+4
-6
@@ -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. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user