-
- ExtractOpaque
Value: boolean.
When set, Xic will ignore the OPAQUE flag and perform
extraction normally on cells with this flag set. The OPAQUE
flag would otherwise suppress extraction on the contents of the cell.
This flag is set in the flags property of physical cells.
This tracks the setting of the Extract opaque cells, ignore
OPAQUE flag check box in the Net and Cell Config page of the
Extraction Setup panel from the Setup button in the Extract Menu.
- FlattenPrefix
Value: string.
This variable can be set to a string containing a space-separated list
of words. The words are intended to match cell names or classes of
cell names. Cells with names that match are not treated as
individual cells during extraction, instead they are treated as if
instantiations are part of the containing cell, i.e., they are
logically flattened (see 16.4). This applies to physical
cells only, and such cells will have no recognized electrical
counterpart.
Note: it is probably more convenient to set the flatten
property of physical cells that should be flattened into their parent
during extraction. Setting this property with the Cell Property
Editor will have the same effect as including the cell in the
FlattenPrefix list, but is persistent when the cell is saved.
In the words, the forward slash character (`/') is special, and is
used to indicate the type of matching. The possibilities are:
- name[/]
This will prefix match cell names, the trailing `/' is optional. For
example if name is ``abc'', cell names abc, abc123, and abcounter would match.
- /name
This will suffix match cell names. For example, if the word is ``/bar'', cell names bar, foobar, and crossbar would
match.
- /name/
This will literally match a cell name, for example /foobar/
would match only a cell named foobar.
This tracks the setting of the Cell flattening name keys entry
in the Net and Cell Config page of the Extraction Setup
panel, which is obtained from the Setup button in the Extract Menu.
Note: in Xic releases prior to 3.1.8, this variable could be set
to a single word only, and prefix matching was always employed. In
releases of Xic prior to 2.5.19, this variable was named
``PnetFlattenPrefix''.
- GlobalExclude
Value: string (layer expression).
This variable can be set to a layer expression (which includes the
case of a layer name). Any object in the layout which touches a
region where the layer expression evaluates as dark will be ignored by
the extraction system. This facilitates use of special layers to mask
off parts of a layout to be ignored in extraction.
This tracks the setting of the Global exclude layer expression
entry in the Misc Config page of the Extraction Setup
panel, which is obtained from the Setup button in the Extract Menu.
- GroundPlaneGlobal
Value: boolean.
When set, every object in every cell on a clear-field ground plane
layer is assigned to group 0. If not set, only the largest area group
on this layer, in the top-level cell, is assigned to group 0.
This tracks the setting of the Assume clear-field ground plane is
global check box in the Net and Cell Config page of the Extraction Setup panel from the Setup button in the Extract Menu.
- GroundPlaneMulti
Value: boolean.
When set, a layer specified as GroundPlaneClear in the
technology file will be inverted, and the inverted version used for
grouping and extraction. The MultiNet keyword which optionally
follows GroundPlaneClear in the technology file effectively sets
this variable. If this variable is unset, then no inversion takes
place, and the absence of the GroundPlaneClear layer is taken to
indicate ground (group 0). This variable has no effect unless a GroundPlaneClear layer exists.
Note: This replaces the HandleTermDefault variable which existed in earlier Xic releases.
It is part of the ground plane support in the extraction system.
This tracks the setting of the Invert dark-field ground plane for
multi-nets check box in the Net and Cell Config page of the
Extraction Setup panel from the Setup button in the Extract Menu.
- GroundPlaneMethod
Value: integer 0-2.
This sets the method used to invert the ground plane for grouping and
extraction, if the MultiNet keyword has been applied to a GroundPlaneClear layer in the technology file. The possible values
are integers 0-2, which have the same meaning as the integer that
optionally follows MultiNet in the technology file (see
A.6.4).
This tracks the setting of the inversion method menu in the Net
and Cell Config page of the Extraction Setup panel from the
Setup button in the Extract Menu.
- KeepShortedDevs
Value: boolean.
By default, if an extracted device is found to have all terminals
shorted together at the time the device is recognized, the device will
be ignored. This will help reject spurious devices from test
structures, etc.
If the KeepShortedDevs variable is set, then these devices will
be kept (as in pre-2.5.69 releases). This flag may be needed for LVS
to pass, if the schematic contains the shorted devices.
This tracks the setting of the Include devices with terminals
shorted check box in the Device Config page of the Extraction Setup panel, which is obtained from the Setup button
in the Extract Menu.
- MaxAssocLoops
Value: integer 0-1000000.
This variable sets a parameter used by the association algorithm.
Presently, it is not expected to be useful to the user, and it is
recommended that it not be changed.
The variable tracks the setting of the Maximum association loop
count entry in the Misc Config page of the Extraction
Setup panel from the Setup button in the Extraction Menu.
- MaxAssocIters
Value: integer 10-1000000.
This variable sets a parameter used by the association algorithm.
Presently, it is not expected to be useful to the user, and it is
recommended that it not be changed.
The variable tracks the setting of the Maximum association
iterations entry in the Misc Config page of the Extraction
Setup panel from the Setup button in the Extraction Menu.
- NoMeasure
Value: boolean.
This turns off the extraction of parametric data for devices in the
extraction system. This is mainly for debugging, but may save time if
the user is interested in topology only. The measurements can be time
consuming.
This tracks the setting of the Skip device parameter measurement
check box in the Device Config page of the Extraction
Setup panel from the Setup button in the Extract Menu.
- UseMeasurePrpty
Value: boolean.
When set, the extraction system will read and update (creating if
necessary) the measures property (property number 7106) which is
used to cache (see 16.7) measurement results. The
measurement of device parameters can be time consuming, and the
caching can speed up the extraction process significantly. However,
using the measurement cache may require user intervention to maintain
coherency. If a device layout changes, the user will have to manually
update the cache in order to obtain updated parameters. With this
variable unset, the default condition will force actual computation of
device parameters, and avoid all use of the caching mechanism. This
is appropriate while a cell is under development, to avoid cache
coherency issues.
This variable tracks the Use measurement results cache
property check box in the Device Config page of the Extraction Setup panel from the Setup button in the Extract Menu.
- NoReadMeasurePrpty
Value: boolean.
This variable is ignored unless UseMeasurePrpty is set. When
set, the extraction system will not read the measures property
(property number 7106) which is used to cache (see 16.7)
measurement results. When measurement results are required, they will
be computed. The property will still be updated, after association,
if UseMeasurePrpty is set. Thus, by setting this variable and
forcing association, one can get a fresh set of measurement results
into the measures properties.
This variable tracks the Don't read measurement results from
property check box in the Device Config page of the Extraction Setup panel from the Setup button in the Extract Menu.
- NoMergeParallel
Value: boolean.
Setting this variable suppresses merging of parallel-connected devices
during extraction. This applies to all devices, and supersedes the
Merge directive in the device blocks or the technology file.
This variable tracks the setting of the Don't merge parallel
devices check box in the Device Config page of the Extraction Setup panel, which is obtained from the Setup button
in the Extract Menu.
- NoMergeSeries
Value: boolean.
Setting this variable suppresses merging of series-connected devices
during extraction. This applies to all devices, and supersedes the
Merge directive in the device blocks of the technology file.
This variable tracks the setting of the Don't merge series
devices check box in the Device Config page of the Extraction Setup panel, which is obtained from the Setup button
in the Extract Menu.
- NoMergeShorted
Value: boolean.
When including devices with all terminals shorted (the KeepShortedDevs variable is set), setting this variable will prevent
such devices from being merged as parallel devices, if parallel
merging is enabled for the device type.
This variable tracks the setting of the Don't merge devices with
terminals shorted check box in the Device Config page of the
Extraction Setup panel, which is obtained from the Setup
button in the Extract Menu.
- IgnoreNetLabels
Value: boolean.
If set, net name labels will be ignored by the extraction system.
This is probably only useful for debugging. Although this may allow
correct association if a net name label is wrong, the recommended
solution is to correct the offending label.
This variable tracks the setting of the Ignore net name labels
check box in the Net and Cell Config page of the Extraction
Setup panel, which is obtained from the Setup button in the
Extract Menu.
- UpdateNetLabels
Value: boolean.
When set, net name labels will be updated, and new net name labels
possibly created, after association completes. The label text is
obtained from corresponding electrical net names.
This is a dangerous operating mode, as if association fails, it is
possible that incorrect net name labels will be created. These will
subsequently prevent correct association and cause LVS failure, until
removed or corrected by hand.
When creating library cells, running extraction with this variable set
can be a final action before saving the finished cell. This must only
be done if the cell passes LVS. The created net name labels should
improve association efficiency, but are not essential.
This variable tracks the state of the Update net name labels
after association check box in the Net and Cell Config page of
the Extraction Setup panel, which is obtained from the Setup button in the Extract Menu.
- FindOldTermLabels
Value: boolean.
When this variable is defined, Xic will recognize the ``term
labels'' of earlier releases as net labels. In Xic-3, term labels
were used (optionally) to specify the conductor groups that were
associated with cell terminals in layouts. These are labels, created
by the user on conducting layers, placed over an object on the same
layer.
The term labels would also be recognized as net labels if the PinPurpose variable is set to an empty string, or the ``drawing'' purpose name. Setting the FindOldTermLabels is
redundant in that case. The label searches are separate, and both
will be done if enabled.
Whether this variable is set or not mirrors the status of the Find old-style net (term name) labels check box in the Net and
Cell Config page of the Extraction Setup panel from the Extract Menu.
- MergeMatchingNamed
Value: boolean.
If two physically unconnected conductor groups have the same logical
net name (see 16.5), if this variable is set the groups will
be logically merged and treated as a single group. This allows
successful top-level LVS of cells containing split nets. Below the
top level, split nets are detected by other means so setting this
variable is not required for successful LVS if the top-level cell
contains no split nets.
The group names that apply are obtained from net name labels, or from
cell terminals that have been placed by the user. By default, net
name matching is case-insensitive, though this can be changed with the
NetNamesCaseSens variable. The name matching also treats as
equivalent various subscripting delimiters, as listed in the
description of the Subscripting variable.
This variable tracks the state of the Merge groups with matching
net names check box in the Net and Cell Config page of the Extraction Setup panel, which is obtained from the Setup button
in the Extract Menu.
- MergePhysContacts
Value: boolean.
When set, additional association logic is employed to detect and
account for split nets in instance placements. A ``split net'' is a
logical net consisting of two or more disjoint physical conductor
groups. The disjoint parts of the net are connected when instances
are placed, through parent cell metalization. If the schematic shows
the net fully connected in the master, LVS will fail on the parent
unless this variables is set.
This variable tracks the state of the Logically merge physical
contacts for split net handling check box in the Misc Config
page of the Extraction Setup panel, which is obtained from the
Setup button in the Extract Menu.
- NoPermute
Value: boolean.
When this variable is set, the association algorithm will not attempt
to use symmetry trials to find a solution. Symmetry trials are
normally used to iterate through permutations when searching for a
solution. During a trial, a particular set of associations is
assumed, and the algorithm continues. If an inconsistency is found
later, the associations made during the trial are reverted, and a new
trial is started.
Many circuits do not require a permutation search. In some circuits,
though, the permutation search can be a very time-consuming process.
In circuits where association is known to fail perhaps because the
wiring is incomplete, setting this variable will save time. This
variable is mostly for debugging, or for cases where association is
not needed. Of course, if a permutation search is needed and not
performed, LVS will fail.
Permutes are also skipped if a device or subcircuit is found that can
not possibly be associated.
This tracks the setting of the Don't run symmetry trials in
association check box in the Misc Config page of the Extraction Setup panel, obtained from the Setup button in the
Extract Menu.
- PinLayer
Value: string.
If this variable is set to a layer name (or layer-purpose pair name)
all net name labels must appear on the named layer. The ``pin''
purpose, and any setting of the inPurpose variable, are ignored.
The label will be associated with the conducting object containing the
label origin that is highest (farthest from the substrate) in the
layer table. Possible ambiguity with the associated layer makes this
scheme not recommended, but support is present for compatibility with
older cell libraries, such as the open-source CMOS libraries from
Oklahoma State University.
This variable tracks the Net label layer entry in the
Net Config page of the Extraction Setup panel, obtained
form the Setup button in the Extract Menu.
- PinPurpose
Value: string.
This applies when the PinLayer variable is not set. By default,
net name labels must reside on a layer-purpose pair where the purpose
name is ``pin''. However, if this variable is set to another
valid purpose name, then that name will be required of net labels
instead.
If the property is set to an empty string (i.e., as a boolean), the
``drawing purpose is assumed. One could equivalently give the
name explicitly. This is not really recommended as it can be
inefficient.
This variable tracks the Net label purpose name entry in the
Net Config page of the Extraction Setup panel, obtained
form the Setup button in the Extract Menu.
- RLSolverDelta
Value: floating point > =
0.01.
It this value is set, the resistance/inductance extractor will assume
this grid spacing, in microns. The number of grid cells enclosed in
the device will increase for physically larger devices, so that larger
devices will take longer to extract. If this variable is set, the
other RLSolver variables are ignored. Setting this variable may
be appropriate if all resistors are ``small'' and dimensions conform
to a layout grid.
This tracks the setting of the Set/use fixed grid size entry in
the Device Config page of the Extraction Setup panel,
which is obtained from the Setup button in the Extract
Menu.
- RLSolverTryTile
Value: boolean.
If set, the extractor will attempt to use a grid that will fall on
every edge of the device body and contacts. The device and contact
areas must be Manhattan for this to work. If such a grid can be
found, and the number of grid cells is a reasonable number, this will
give the most accurate result.
This tracks the setting of the Try to tile check box in the Device Config page of the Extraction Setup panel, which is
obtained from the Setup button in the Extract Menu.
- RLSolverGridPoints
Value: integer 10-100000.
When not tiling (RLSolverTryTile is not set), this sets the
number of grid points used for resistance/inductance extraction. This
number will be the same for all device structures, so that computation
time per device is nearly constant. Higher numbers give better
accuracy but take longer. The value used if not set is 1000.
This tracks the setting of the Set fixed per-device grid cell
count entry in the Device Config page of the Extraction
Setup panel, which is obtained from the Setup button in the
Extract Menu.
- RLSolverMaxPoints
Value: integer 1000-100000.
When tiling (RLSolverTryTile is set), the maximum number of grid
cells is limited to this value. If the tile is too small, it will be
increased in size to keep the count below this value, in which case
the tiling will not have succeeded so there may be a small loss of
accuracy. Using a large number of grid points can take a long time.
The value used if not set is 50,000.
This tracks the setting of the Maximum tile count per device
entry in the Device Config page in the Extraction Setup
panel, which is obtained from the Setup button in the Extract Menu.
- SubcPermutationFix
Value: boolean.
Setting this variable enables additional association logic. It
applies when there is perfect topological matching between layout and
schematic, but LVS is failing due to different permutations of
permutable subcell contacts being assumed in the electrical and
physical parts. Setting the variable will enforce the electrical
permutation on the physical solution, which will allow LVS to pass if
the permutation difference was the only issue.
This should no longer be needed, as the two-pass association algorithm
in current use should resolve these cases automatically. This
variable should therefor not be set in general, but it is possible
that it might allow successful LVS in some obscure case.
This variable tracks the Apply post-association permutation fix
check box in the Misc Config page of the Extraction Setup
panel, which is obtained form the Setup button in the Extract menu.
- VerbosePromptline
Value: boolean.
When set, lots of messages will be printed on the prompt line during
extraction. Otherwise not much is printed, which may speed things up.
This variable is linked to the Be very verbose on prompt line
during extraction check box of the Misc Config page of the Extraction Setup panel.
- ViaCheckBtwnSubs
Value: boolean.
By default, it is assumed that connections between subcells will be
made by touching metal only. This includes the case where the metal
is from a flattened wire-only cell, as would be provided by via cells
as described in 16.9.2. One can easily adapt layout
methodology where this is true. Otherwise, this variable can be set,
which will cause explicit testing for the presence of vias between
subcircuit nets. This is a very expensive operation.
Whether this variable is set or not tracks the state of the Check
for via connections between subcells check box in the Net
Config page of the Extraction Setup panel from the Extract
Menu.
- ViaSearchDepth
Value: non-negative integer.
If we have intersecting areas of top and bottom conductor, and we are
searching for an area of via material that would connect the two metal
objects, this sets the depth in the current cell hierarchy to search
(see 16.9.2). The default is zero, indicating to search the
current cell only. Generally, layout methodology can easily ensure
that this value can be safely zero, but there may be cases that
require extraction where such methodology was not practiced. In such
a case, where the methodology is completely unknown, this value should
be set to a large number (internally it is limited to 40, the maximum
cell hierarchy depth) which will ensure that all via-induced
connections are found. This can dramatically increase extraction
time.
The value of this variable tracks the Via search depth entry
area in the Net Config page of the Extraction Setup panel
from the Extract Menu.
- ViaConvex
Value: boolean.
This applies when checking for connectivity through a via during
extraction. When set, all non-rectangular vias are assumed to be
convex polygons. The test region is taken as a small rectangle
centered on the via bounding box. This simplifies and should speed
testing. It is intended specifically for circular vias, as used in
superconductive electronics. It has no effect on rectangular vias.
It should not be set if any vias are non-convex polygons, as
incorrect results may occur.
Whether or not this variable is set tracks the state of the Assume convex vias check box in the Net Config page of the Extraction Setup panel from the Extract Menu.