Added a (obvious, in retrospect) additional automatic handling of

nets to be avoided for running antenna gate and diffusion area
checks when doing "lef write", which is to check if the pin of
the net is flagged with use "power" or use "ground".  This avoids
the need to use the (recently added) "lef nocheck" option (although
that still exists as an additional way to control which nets do and
do not get checked).
This commit is contained in:
Tim Edwards
2023-07-05 12:37:56 -04:00
parent c8a2d06e08
commit cc4eef4eb1
3 changed files with 26 additions and 4 deletions
+13 -3
View File
@@ -1442,12 +1442,22 @@ lefWriteMacro(def, f, scale, setback, pinonly, toplayer, domaster)
scx.scx_area = labr;
SelectClear();
// Check for net names to ignore for antenna checks.
ignored = FALSE;
for (lnn = lefIgnoreNets; lnn; lnn = lnn->lnn_next)
if (!strcmp(lnn->lnn_name, lab->lab_text))
// Ports that have been flagged as power or ground should not be
// checked for antenna diffusion and gate area.
if ((lab->lab_flags & PORT_DIR_MASK) != 0)
if (((lab->lab_flags & PORT_USE_MASK) == PORT_USE_POWER) ||
((lab->lab_flags & PORT_USE_MASK) == PORT_USE_GROUND))
ignored = TRUE;
// Check for net names to ignore for antenna checks.
if (!ignored)
for (lnn = lefIgnoreNets; lnn; lnn = lnn->lnn_next)
if (!strcmp(lnn->lnn_name, lab->lab_text))
ignored = TRUE;
if (!ignored || (setback != 0))
SelectNet(&scx, lab->lab_type, 0, NULL, FALSE);