Modified area accumulation routines to avoid double-counting contacts

during "lef write".
This commit is contained in:
Tim Edwards 2020-05-22 20:13:33 -04:00
parent 77d17a4fa7
commit 89c9335727
1 changed files with 6 additions and 0 deletions

View File

@ -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,