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:
parent
c8a2d06e08
commit
cc4eef4eb1
|
|
@ -76,6 +76,18 @@ LEF-format input and output
|
|||
itself would be written to a DEF file. <BR>
|
||||
Options <B>-hide</B>, <B>-tech</B>, and <B>-toplayer</B> are
|
||||
the same as for the <B>lef write</B> command.
|
||||
<DT> <B>nocheck</B> [<I>netname</I> ...]|[<B>none</B>]
|
||||
<DD> Do not check for antenna diffusion and gate area on the nets with
|
||||
the names given as option <I>netname</I>.
|
||||
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
|
||||
"<B>power</B>" or "<B>ground</B>", 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 "<B>none</B>", removes the
|
||||
list of net names for which antenna checks should be skipped.
|
||||
<DT> <B>datestamp</B> [<I>value</I>|<B>default</B>]
|
||||
<DD> Force all cell definitions generated from LEF macros to have
|
||||
the datestamp (timestamp) of <I>value</I>. This can be used to
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue