From 22c22228b387cbd1db229bb83eedf9e2964f78c1 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Thu, 7 Nov 2024 11:59:07 -0500 Subject: [PATCH] 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. --- VERSION | 2 +- extflat/EFantenna.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index d58823a2..214dd91b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.498 +8.3.499 diff --git a/extflat/EFantenna.c b/extflat/EFantenna.c index 3ee40a24..8e9d965d 100644 --- a/extflat/EFantenna.c +++ b/extflat/EFantenna.c @@ -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)