Next: Technology File Attributes
Up: Technology File
Previous: Technology File Scripts
Contents
Index
Technology File Layer Blocks
There is separate specification of layers used for schematic layout
and those used for physical layout. The layer used for schematics is
always called ``SCED'', and if not defined in the technology file, it
and any other missing electrical-mode layers will be created by
Xic. It is always the first layer, and can not be deleted.
Additional layers are used for visual purposes, and for storage of
modifications that can be reused later by converting them to the SCED
layer. Xic maintains a standard set of electrical layers, in a
standard order. The user can modify the presentation attributes, and
add layers as desired.
There are no such constraints or default layers in physical mode.
Each layer definition starts with the keyword PhysLayer for
physical layers or ElecLayer for electrical layers, followed by
a name. Both of these keywords have synonyms (listed below) for
backwards compatibility. In Xic, layers have a name, which follows
the CIF format (1-4 alphanumeric characters), and an optional ``long
name'' which can be just about any string. In Xic commands and
functions, either name can be used to access a layer, so that all
names are required to be unique among all physical and electrical
layers. If the name string following the keyword does not fit the CIF
restrictions, the following actions are taken:
- If the given name is null, empty, or space-only, the new name
will be ``null''.
- If the given name is too long, only the first four characters
will be used in the name.
- Characters that are not alphanumeric will be replaced with
`X'.
- If the name is truncated or characters are replaced, the long
name will be set to the given name.
Layer blocks appear in a contiguous section in the technology file,
and in physical mode will appear in the layer table in the order
given. In electrical mode, reordering may be applied, as there are
some internal assumptions, for example the active wiring "SCED" layer
must come first.
It is also possible for mini-layer blocks to appear in the hard-copy
driver definitions. These will provide alternate layer attributes
that are in force when that print driver is in use, in hard-copy
output and on-screen. These will be described in the section
describing the print driver blocks. The only keywords from the list
below that can be used in these mini-layer blocks, other than PhysLayer/ElecLayer, are RGB, Filled, and Invisible.
A layer block is terminated by the start of another layer block, or by
a keyword which would logically end per-layer parsing.
The layer specification further consists of a list of keywords in the
format given below.
In the table that follows, the italicized quantities represent data
the needs to be provided. The ``y|n'' symbol implies that one
of `y' or `n' should follow the keyword. Actually, `0' (zero), or any word that begins with the letters or sequence
(case insensitive) `n', `f', `of' is taken as a
false value. Anything else, including no following text, is taken as
true (`y' is always redundant).
All of the keywords below are optional, and can appear under an
electrical or physical layer, unless stated otherwise. It is not
strictly necessary to define any layers at all. By convention, the
electrical layers, if any, are defined first, followed by the physical
layers. A ``layer block'' consists of the keyword which defines the
layer name and all of the following keywords up to the next layer name
specification, or end of the file. The opening layer name
specification defines the ``current'' layer, and the keywords that
follow apply to that layer.
Several of these keywords can be programmed from within Xic with
the Layer Parameter Editor from the Attributes Menu.
Other panels from the Attributes Menu allow setting colors, fill
patterns, etc. which correspond to values from keywords listed below.
- ElecLayer name
This keyword specifies the beginning of the layer block for the
electrical layer name. The keyword ElecLayerName is a
synomym.
- PhysLayer name
This keyword specifies the beginning of the layer block for the
physical layer name. Layers will appear in the physical mode
layer table in the order given. The keywords PhysLayerName,
Layer, and LayerName are all synonyms for this keyword.
- LongName longname
This will set (or reset) the long name field of the current layer. If
no non-space characters are found after the keyword, the statement is
ignored. Leading and training white space is removed from the
argument.
- Description description_string
This will set the description field of the current layer. If no
non-space characters are found after the keyword, the statement is
ignored. Leading and training white space is removed from the
description string.
- RGB colorspec
This keyword will set the color used to render objects on the layer
on-screen. The colorspec string is the name of a color or an
RGB triple:
- The name of a color found in the X rgb.txt file (this
Three space-separated numbers, each 0-255, representing the
red, green, and blue intensity. E.g., ``196 240 235''.
works for Windows, too). These names can be listed from the Set Color pop-up in the Attributes menu with the Colors button.
- (Unix/Linux only) Other forms recognized by the
XParseColor C library function, including `` #RRRRGGGGBBBB'' and ``rgb:RRRR/GGGG/BBBB''. Here, R,
G, and B are single hexadecimal digits.
If the color is given as a name, the color will be converted to its
RGB values if the file is updated. If no RGB keyword is given
for a layer, Xic will assign a random color. The RGB keyword
is allowed in the mini-layer blocks found in the print driver
specifications.
This keyword sets the fill and outline style used to render objects on
the layer. The tokens (other than bit_data) can be words
starting with the indicated letters, or or just the letters
themselves, e.g., ``n'', ``no'', and ``none'', are
equivalent. This is case-insensitive.
If no tokens follow the keyword, or the first token starts with `y', solid fill will be used. Additional tokens on the line will be
ignored.
If the first token starts with `n', no fill pattern (empty fill)
will be used. In this case, there are three outline styles available:
- A thin solid line boundary.
- A thin dashed line boundary.
- A thick solid line boundary for Manhattan boxes and polygons,
and a thin solid line boundary for other objects.
There is also the ``cut'' attribute, where diagonal lines are drawn
over boxes, forming an X. This applies to boxes only, not wires or
polygons, even though they may be rendered as four-sided rectangular
figures.
Any text that follows the word that started with `n' is examined
for the presence of the characters `o', `f', and `c'. These can be found as individual letters or parts of words, for
example ``outline cut'' and ``oc'' and ``o c'' are
all equivalent. In addition, this is all case-insensitive.
If neither `o' or `f' is found, a thin solid outline
(style 1) is used. If `o' is found but not `f', a thin
dashed line (style 2) is used. If `f' is found, with or without
`o', then a thick solid line is used for edge segments of
Manhattan objects, and a thin solid line is used for non-Manhattan
objects (style 3).
In any case, if `c' is found, the ``cut'' attribute is applied.
If `o' is also found buf not `f', the diagonals are shown
as dashed lines, the same as the boundary. Otherwise, the diagonals
are always thin solid lines.
The form on the third line is used to specify a stipple pattern to
use for fill. Xic supports any stipple map size with the x and y
demensions in the range of 2-32. However, Xic releases prior to
3.2.25 supported only 8x8, 8x16, 16x8, and 16x16 maps. The format
described here is generally not backwards compatible with these
releases.
Maps can be read as hex numbers, or as ascii tokens, but not in the
same line. When Xic writes a technology file, the default is to
use the ascii token format, which actually renders the map in a crude
way. This format is best illustrated by an example:
Filled \
| .. | (0x18) \
| .... | (0x3c) \
| ...... | (0x7e) \
|... ...| (0xe7) \
|... ...| (0xe7) \
| ...... | (0x7e) \
| .... | (0x3c) \
| .. | (0x18) outline
The points to note here are the following.
- Line continuation is used so that the map is visible to a human
reader. This is not required in general.
- Each line of the map contains space and non-space characters,
surrounded by '|' characters. Although a period is used here,
any non-space printing character will work.
- Each of these must contain the same number of characters, this
number being in the range 2-32. This sets the width of the map.
- The number of these constructs found in the line sets the height
of the map. This must be in the range 2-32.
- The map data parser ignores anything enclosed in parentheses.
Above, the equivalent hex number for the data pattern is provided, but
is ignored by the parser.
If the map data are followed by any text containing the characters
`y' or `o' (case insensitive), patterned areas will be
outlined with thin lines of the same color. If the character `c' is found, the ``cut'' attribute is applied, as for the empty fill
case.
An equivalent form using hex data is
[x=width] [y=height] hex_number
hex_number ...
The width and height are decimal numbers in the range
2-32. The number of hex digits that follow must match the height.
The width and height specifications can be omitted, in which case the
format reverts to the pre-3.2.25 expectation. The hex numbers must be
one of
- 8 2-digit hex numbers that specify an 8x8 map.
- 16 2-digit hex numbers that specify an 8x16 map.
- 8 4-digit hex numbers that specify a 16x8 map.
- 16 4-digit hex numbers that specify a 16x16 map.
If the boolean variable TechNoPrintPatMap is set when Xic
writes a technology file, then the hex form will be used to specify
fill patterns. Otherwise, the ascii form is used.
Here are a few more example fill specifications:
Filled y
Filled no fat
Filled cc aa cc aa cc aa cc aa outline
In electrical mode, the SCED layer defaults to solid fill, and other
layers default to empty fill with a thin outline. All layers default
to empty fill with a thin outline in physical mode. The Filled
keyword is allowed in the mini-layer blocks found in the print driver
specifications.
- Invisible [y|n]
If this keyword appears, and the following argument indicates true,
the layer will not be visible, though it will appear in the layer
table, where the visibility status can be changed.
The Invisible keyword is allowed in the mini-layer blocks found
in the print driver specifications. This is the only place where use
of the y|n argument may be needed, in particular if Invisible is specified in the main layer block, Invisible n may
be used in the driver block to make the layer visible in print driver
output.
- Blink [y|n]
If this keyword appears, the layer color will oscillate between two
shades with a 0.5 second period. This is only supported in
pseudo-color (usually 256 colors) graphics mode.
Default: not blinking
- WireWidth width
This keyword can appear in physical layer fields. The width
is a floating point number which sets the default wire width to that
value in microns. This value will be used when wires are created in
Xic.
Default: 0
- Symbolic [y|n]
This keyword indicates that the layer will not be shown in the display
produced by the Cross Section command (in the View Menu).
Otherwise, it doesn't have any purpose in Xic, but might be useful
to the user as a flag to indicate a non-physical layer.
- NoMerge [y|n]
This keyword indicates that automatic merging of objects is suppressed
on the layer. This overrides any merging enabled by the Clip and
merge overlapping boxes button in the Set Import Parameters
panel, and the Merge Boxes, Polys button in the Edit Menu,
and the corresponding variables.
- CrossThick thickness
This keyword, which can be applied to physical layers only, sets the
layer thickness as rendered in the Cross Section command in the
View Menu. The thickness is given in microns.
- CrossField dark | clear
This sets the layer polarity assumed in the Cross Section
command. If set to ``dark'', then inverse polarity (dark field)
will be used in the cross section display, which is appropriate for
via layers, where the colored areas in the normal layout display
actually represent a hole through the insulator.
The following keywords set the layer mapping for GDSII and OASIS
format input and output. These can be programmed from within Xic
with the Conversion Parameter Editor in the Convert Menu.
- StreamData layernum datatype
This keyword is deprecated, and can be read but is not generated by
Xic. The layernum and datatype are the layer
mapping used when converting to and from GDSII format. The layer must
be in the range 0 through 65535, and the datatype can take values -1
through 65535. Values larger than 255 are outside of the GDSII
specification, but are sometimes used anyway although files containing
such data may not be generally portable. If -1 is given as the
datatype, all GDSII datatypes will be mapped to the present Xic
layer, and datatype 0 will be used for output. Otherwise, the layer
and datatype in a GDSII file must match those given for successful
mapping to the Xic layer. Note that often the end of range values
are reserved in other CAD environments, and that some releases of the
GDSII format support only 64 layers and datatypes. The datatype is
used by Xic only in conjunction with the NoDrcDatatype
keyword, and is otherwise typically set to 0. This keyword has been
superseded by StreamIn and StreamOut.
- StreamIn layer_list [, datatype_list]
This keyword set the mapping of GDSII layers and datatypes to Xic
layers when a GDSII or OASIS file is read. This is described fully in
the description of the Conversion Parameter Editor, in
11.20.
- StreamOut out_layer [out_datatype]
This keyword sets the mapping of Xic layers to GDSII layers and
datatypes when a GDSII or OASIS file is written. This is described
fully in the description of the Conversion Parameter Editor, in
11.20.
- NoDrcDatatype datatype
If this keyword is given, then any object that has the given datatype will be ignored during design rule checking. This is
described fully in the description of the Conversion Parameter
Editor, in 11.20.
The following keywords are used to set design rules in the physical
layers. These keywords can appear only in physical layer blocks. See
the description of the design rules in 12.2 for more
information. The rules can be programmed from within Xic with the
Design Rule Editor. These keywords are not recognized in
XicII or Xiv.
- Connected [Region source_expr] [string]
- NoHoles [Region source_expr] [string]
- Overlap [Region source_expr] layer_expression
[string]
- IfOverlap [Region source_expr] layer_expression
[string]
- NoOverlap [Region source_expr] layer_expression
[string]
- AnyOverlap [Region source_expr] layer_expression
[string]
- PartOverlap [Region source_expr] layer_expression
[string]
- AnyNoOverlap [Region source_expr] layer_expression
[string]
- MinEdgeLength [Region source_expr] layer_expr
length [string]
- MinArea [Region source_expr] area [string]
- MaxArea [Region source_expr] area [string]
- MinWidth [Region source_expr] width_in_microns
[string]
- MinSpace [Region source_expr] space_in_microns
[string]
- MinSpaceTo [Region source_expr]
layer_expr dimension_in_microns [string]
- MinSpaceFrom [Region source_expr]
layer_expr dimension_in_microns [string]
- MinOverlap [Region source_expr]
layer_expr dimension_in_microns [string]
- MinNoOverlap [Region source_expr]
layer_expr dimension_in_microns [string]
The following keywords, which can appear in physical layer fields, set
various flags and variables used for netlist and parameter extraction.
These can be programmed from within Xic with the Extraction
Parameter Editor in the Extract Menu. See the chapter on
extraction (13.1.2) for more information. These are not
recognized in XicII or Xiv.
- Conductor [ Exclude expression ]
This keyword indicates that the present layer is to be included in
extracted conductor groups.
- Routing
This keyword implies that the layer is a conductor used for connecting
between cells.
Only one of the following two ground plane keywords can appear in the
technology file.
-
This keyword indicates that the present layer is to be treated as a
clear-field ground plane.
This keyword indicates that the present layer is to be treated as a
dark-field ground plane.
- Via layer1 layer2 [expression]
This keyword indicates that the present layer may provide connection
points between conductor nets on layer1 and layer2.
- Contact layer [expression]
This keyword defines a layer that may be in contact with another Conductor layer, and is to be grouped accordingly in the wire net
extraction.
- DarkField
This keyword indicates that the layer polarity on the chip is the
reverse of that shown on-screen.
- Thickness thickness
This keyword supplies the film thickness of the corresponding
deposited film. The thickness is given in microns.
- Rho resistivity
This keyword supplies the resistivity, in MKS units (ohm-meter), of
the corresponding conducting film.
- Sigma conductivity
This keyword supplies the conductivity, in MKS units (Si/meter), of
the corresponding conducting film.
- Rsh ohm_per_square
This keyword supplies the sheet resistance of a resistive material.
- EpsRel diel_constant
This keyword supplies the relative dielectric constant of insulating
layers.
- Capacitance units_per_sqmicron
[units_per_micron]
This enables computation of the capacitance of a conductor group.
The keyword ``Cap'' is recognized as an alias.
- Lambda pene_depth
This keyword specifies the London penetration depth of superconducting
conductors, in microns.
- Tline grnd_plane_layer diel_thick diel_const
This keyword will enable a microstrip model which computes the
transmission line parameters of strips of conductor.
Next: Technology File Attributes
Up: Technology File
Previous: Technology File Scripts
Contents
Index
Stephen R. Whiteley
2012-04-01