Implemented the correction of Anton Blanchard's git pull request #180
"Antenna checker should ignore vias in partial mode". I changed the implementation by moving the correction into the antennaAccumFunc() subroutine so that it skips the area calculations for the contacts, avoiding unnecessary computation. Otherwise, it's the same (vias do not contribute to the surface area of the antenna when calculating antenna area in "partial" mode).
This commit is contained in:
parent
e13e218778
commit
2561afd402
|
|
@ -801,22 +801,26 @@ antennaAccumFunc(tile, aaptr)
|
|||
typeareas[ttype] += (dlong)((float)perimeter * thick);
|
||||
}
|
||||
|
||||
if (type >= DBNumUserLayers)
|
||||
/* NOTE: The "partial" model ignores the contribution of vias. */
|
||||
if (!(ExtCurStyle->exts_antennaModel & ANTENNAMODE_PARTIAL))
|
||||
{
|
||||
DBResidueMask(type, &sMask);
|
||||
for (ttype = TT_TECHDEPBASE; ttype < DBNumTypes; ttype++)
|
||||
if (TTMaskHasType(&sMask, ttype))
|
||||
if (DBTypeOnPlane(ttype, plane))
|
||||
{
|
||||
thick = ExtCurStyle->exts_thick[ttype];
|
||||
typeareas[ttype] += (dlong)((float)perimeter * thick);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
thick = ExtCurStyle->exts_thick[type];
|
||||
typeareas[type] += (dlong)((float)perimeter * thick);
|
||||
if (type >= DBNumUserLayers)
|
||||
{
|
||||
DBResidueMask(type, &sMask);
|
||||
for (ttype = TT_TECHDEPBASE; ttype < DBNumTypes; ttype++)
|
||||
if (TTMaskHasType(&sMask, ttype))
|
||||
if (DBTypeOnPlane(ttype, plane))
|
||||
{
|
||||
thick = ExtCurStyle->exts_thick[ttype];
|
||||
typeareas[ttype] += (dlong)((float)perimeter * thick);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
thick = ExtCurStyle->exts_thick[type];
|
||||
typeareas[type] += (dlong)((float)perimeter * thick);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue