Coded around an issue where the antenna violation checker comes up

with zero gate error (and was reporting an infinite antenna ratio).
For now, just ignoring the zero-area case.  However, since the
procedure is supposed to be looping through nets connected to
specific devices in the .ext file, then every entry is supposed to
have non-zero area, so there is some underlying problem here that
needs to be fixed.
This commit is contained in:
Tim Edwards 2024-11-07 11:59:07 -05:00
parent a35993a81b
commit 22c22228b3
2 changed files with 9 additions and 4 deletions

View File

@ -1 +1 @@
8.3.498
8.3.499

View File

@ -527,7 +527,7 @@ antennacheckVisit(dev, hc, scale, trans, editUse)
DBTreeCopyConnect(&scx, &DBConnectTbl[t], 0,
DBConnectTbl, &TiPlaneRect, SEL_NO_LABELS, extPathUse);
/* Search planes of tie types and accumulate all tiedown areas */
/* Search planes of tile types and accumulate all tiedown areas */
gdas.accum = (dlong)0;
for (p = 0; p < DBNumPlanes; p++)
{
@ -584,7 +584,12 @@ antennacheckVisit(dev, hc, scale, trans, editUse)
saveRatio = ExtCurStyle->exts_antennaRatio[i].ratioGate;
}
if (anttotal > (double)gatearea)
/* gatearea == 0 indicates that something went wrong---No device
* of type "t" was found connected to this net. This should be
* reported as an error. Avoid generating an antenna error with
* infinite area ratio.
*/
if ((gatearea > 0) && (anttotal > (double)gatearea))
{
antennaError = TRUE;
if (efAntennaDebug == TRUE)
@ -606,7 +611,7 @@ antennacheckVisit(dev, hc, scale, trans, editUse)
aas.r.r_xtop, aas.r.r_ytop);
}
}
if (conttotal > (double)gatearea)
if ((gatearea > 0) && (conttotal > (double)gatearea))
{
antennaError = TRUE;
if (efAntennaDebug == TRUE)