Documented the "extract halo" command option (which was missed at

the time the option was implemented), and also implemented (and
documented!) a similar command option "extract stepsize" for
reporting or changing the extraction step size.
This commit is contained in:
Tim Edwards 2023-09-13 10:03:20 -04:00
parent dfe3a4defd
commit 93eeb1b703
3 changed files with 57 additions and 5 deletions

View File

@ -1 +1 @@
8.3.429
8.3.430

View File

@ -911,9 +911,10 @@ cmdExpandFunc(use, windowMask)
#define EXTPARENTS 7
#define EXTPATH 8
#define EXTSHOWPARENTS 9
#define EXTSTYLE 10
#define EXTUNIQUE 11
#define EXTWARN 12
#define EXTSTEPSIZE 10
#define EXTSTYLE 11
#define EXTUNIQUE 12
#define EXTWARN 13
#define WARNALL 0
#define WARNDUP 1
@ -1007,6 +1008,7 @@ CmdExtract(w, cmd)
"parents extract selected cell and all its parents",
"path [path] if set, extract into the indicated path",
"showparents show all parents of selected cell",
"stepsize [value] print or set the extraction step size",
"style [stylename] set current extraction parameter style",
"unique [option] generate unique names when different nodes\n\
have the same name",
@ -1139,6 +1141,36 @@ CmdExtract(w, cmd)
ExtCurStyle->exts_sideCoupleHalo = dist;
break;
case EXTSTEPSIZE:
if (ExtCurStyle == NULL)
{
TxError("No extraction style set.\n");
return;
}
else if (argc == 2)
{
#ifdef MAGIC_WRAPPER
Tcl_Obj *tobj;
tobj = Tcl_NewIntObj(ExtCurStyle->exts_stepSize);
Tcl_SetObjResult(magicinterp, tobj);
#else
TxPrintf("Extraction step size is %d\n", ExtCurStyle->exts_stepSize);
#endif
return;
}
else if (argc != 3) goto wrongNumArgs;
/* argv[2] is a step size */
dist = cmdParseCoord(w, argv[2], TRUE, TRUE);
if (dist <= 0)
{
TxError("Bad step size. Step size must be strictly positive.");
return;
}
else
ExtCurStyle->exts_stepSize = dist;
break;
case EXTPARENTS:
selectedUse = CmdGetSelectedCell((Transform *) NULL);
if (selectedUse == NULL)

View File

@ -125,7 +125,16 @@ Circuit netlist extractor
<DD>
</DL>
</BLOCKQUOTE>
<DT> <B>halo</B> [<I>distance</I>]
<DD> Return or set the maximum distance between shapes for which
sidewall coupling is considered. <I>distance</I> is in
the units of snap distance (lambda, by default), but like
all distances may be specified with a suffix like "um" for
physical distance. The default value is set by the technology
file. Smaller values will decrease the parasitic capacitance
extraction time at the expense of accuracy. When <I>distance</I>
is not specified, the value returned is always in internal
units.
<DT> <B>help</B>
<DD> Print help information
<DT> <B>path</B> [<I>pathname</I>|<B>none</B>]
@ -150,6 +159,17 @@ Circuit netlist extractor
<DD> List the cell and all parents of selected cell. Note that
this is not really an extract option and is superceded by
the <B>cellname</B> command.
<DT> <B>stepsize</B> [<I>distance</I>]
<DD> Return or set the step size used when breaking a layout into
smaller parts for more efficient extraction. <I>distance</I>
is in the units of snap distance (lambda, by default), but like
all distances may be specified with a suffix like "um" for
physical distance. The default value is set by the technology
file. Both large and small values make extraction inefficient,
and finding the optimal step size is largely trial-and-error.
The step size in a tech file has most likely already been
optimized for extraction speed. When <I>distance</I> is not
specified, the value returned is always in internal units.
<DT> [<B>list</B>|<B>listall</B>] <B>style</B> [<I>stylename</I>]
<DD> Set the current extraction style to <I>stylename</I>.
Without arguments, print the current extraction style.