From 89c9335727dfbcdfde1e088f984fc510b78dcff7 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Fri, 22 May 2020 20:13:33 -0400 Subject: [PATCH] Modified area accumulation routines to avoid double-counting contacts during "lef write". --- lef/lefWrite.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lef/lefWrite.c b/lef/lefWrite.c index 5b3e4502..b6f44818 100644 --- a/lef/lefWrite.c +++ b/lef/lefWrite.c @@ -1102,6 +1102,9 @@ lefWriteMacro(def, f, scale, hide) DBSrPaintArea((Tile *)NULL, SelectDef->cd_planes[pNum], &TiPlaneRect, &gatetypemask, lefAccumulateArea, (ClientData) &antgatearea); + // Stop after first plane with geometry to avoid double-counting + // contacts. + if (antgatearea > 0) break; } antdiffarea = 0; @@ -1110,6 +1113,9 @@ lefWriteMacro(def, f, scale, hide) DBSrPaintArea((Tile *)NULL, SelectDef->cd_planes[pNum], &TiPlaneRect, &difftypemask, lefAccumulateArea, (ClientData) &antdiffarea); + // Stop after first plane with geometry to avoid double-counting + // contacts. + if (antdiffarea > 0) break; } // For all geometry in the selection, write LEF records,