diff --git a/VERSION b/VERSION index be769205..3411c173 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.409 +8.3.410 diff --git a/doc/html/lef.html b/doc/html/lef.html index c387cf64..c632dc23 100644 --- a/doc/html/lef.html +++ b/doc/html/lef.html @@ -76,6 +76,18 @@ LEF-format input and output itself would be written to a DEF file.
Options -hide, -tech, and -toplayer are the same as for the lef write command. +
nocheck [netname ...]|[none] +
Do not check for antenna diffusion and gate area on the nets with + the names given as option netname. + Any number of net names may be given as arguments. Typically, + power and ground nets should not need these checks. If the nets + are attached to port labels that have been flagged with the use + "power" or "ground", then these nets will be + skipped automatically. If not, then this command option provides + an alternative way to avoid running the checks, which can cause + a huge performance hit when generating a LEF view of a large + layout. With the single argument "none", removes the + list of net names for which antenna checks should be skipped.
datestamp [value|default]
Force all cell definitions generated from LEF macros to have the datestamp (timestamp) of value. This can be used to diff --git a/lef/lefWrite.c b/lef/lefWrite.c index 7dcc6388..aed92f05 100644 --- a/lef/lefWrite.c +++ b/lef/lefWrite.c @@ -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);