Xic follows the Virtuoso/OpenAccess concept of component layers, purposes, and layer-purpose pairs. Component layers are represented by a name and a number, and are abstract. Likewise, purposes are an abstraction represented by a name and a number. An actual Xic layer, which appears in the layer table, is a layer-purpose pair.
Every Xic layer has a component layer name and purpose. The name of an Xic layer is given or printed in the form
component_layer[:purpose]If the purpose name is ``drawing'', then it is not printed or given explicitly. Otherwise, the purpose is separated from the component layer name by a colon (`:') character. Note that when the purpose is drawing, the Xic layer name is simply the component layer name, so if the only purpose used is drawing, the distinction between component and Xic layer names vanishes.
Example Xic layer names:
m1The first name corresponds to component layer name m1 and purpose drawing. The second example uses a purpose named ``pin''.
m1:pin
In Xic, layer names of both types, and purpose names, are always recognized and treated without case-sensitivity. There is no limit on the length of these names. Component layer and purpose names can contain alphanumeric characters plus dollar sign (`$') and underscore (`_').
All of the component layer and purpose names also have corresponding numbers. These may be assigned by the user, or assigned internally by Xic. Xic will maintain the associations, but the numbers are not used by Xic. They are, however, important for compatibility with other tools such as Virtuoso.
All Xic layers may be given an alias name. The layer will be recognized by this name, as well as its normal name. Xic layers may also contain a description string, presentation attributes such as color and fill pattern, and a host of other flags and properties for use within Xic.
When working with GDSII and other files that use a numeric layer/datatype combination to designate layers, the layer/datatype combinations can be mapped into arbitrary Xic layers using the mapping constructs described in 14.6. If no such mapping is found, a default name will be used. The default name strings apply to Xic layers that use the default drawing purpose.
When the layer and datatype numbers are in the range 0-255 the default name string takes the form of a four-byte upper case hexadecimal integer. The two left characters indicate the layer number, zero padded. Similarly, the two right characters represent the datatype number. For example, layer 33, datatype 15 has the name ``210F''.
Xic supports layer and datatype numbers in the range 0-65535. Although values larger than 255 are outside of the GDSII specification, they are compatible with the GDSII file format and are used as extensions in some vendor's products. To represent the case where either value is larger than 255, an eight digit hex number is used. This is analogous to the four character encoding, but each field uses four characters.
When providing a layer name of this type to Xic, an alternate ``decimal'' form can be used. This is ``layer,datatype'' where the two integers are separated by a comma (no space). Thus, ``33,15'' is an equivalent way to specify the layer name for the example above. This is a convenience for entering layer names into the input fields of files and graphical windows of Xic. Internally, the layer name is always stored as the hex name.
In some cases when working with layer/datatype combinations, one of the two fields can be a wildcard. In the hex format, the hex digits of the appropriate field can be set to ``X''. In the decimal representation, a single `- ' replaces the appropriate digits. For example, ``0FXX'' and ``15,- '' equivalently specify layer number 15 and any datatype number.