Product Documentation
Virtuoso Technology Data ASCII Files Reference
Product Version IC23.1, June 2023

4


Technology File Layer Definitions

The layerDefinitions section of the technology file specifies the user-defined layers that can be used throughout the technology databases in a graph and in design sessions.

If a layer or purpose name contains a special character, it must be enclosed in double quotes. Names that do not contain special characters may or may not be enclosed in double quotes.

For a list of special characters, see the section on "Special Characters" in Cadence SKILL Language User Guide.

Do not redefine system-reserved layer or purpose names in any way. The software discards any such customization. For limitations that other Cadence or third-party tools might have with regard to layer and purpose names, refer the relevant documentation.
Any object reference in the ASCII technology file must first be defined in the technology database.

This chapter contains the following topics:

layerDefinitions

layerDefinitions()

Description

Contains layer definitions. All subsections specifying layer definitions must be enclosed within the parentheses of this section. The subsections are:

techLayers

techLayers(
( t_layerName x_layerNumber t_layerAbbr [x_maskNumber] ['valid t/nil] ['allowSetToValid t/nil] )
…
) ;techLayers

Description

Defines the layers to be used throughout the technology file.

Applications that display layer names do not always have the room to display the entire layer name. The optional abbreviation expands your control over what is displayed in narrow fields. An application can display one or more of the following values:

Arguments

t_layerName

Name of the layer.
Valid values: Any string; layer names must be unique

x_layerNumber

Number of the layer.
Valid values: A unique integer from 0 through 194 and from 256 through 231-1.

Layers numbered 195 through 255 are system-reserved layers.

t_layerAbbr

A short string that is an abbreviation for the layer name.

x_maskNumber

The number of masks that can be applied to a layer.

By default, there is one mask per layer. For multiple patterning, you must specify the number of masks for layers that are MPT-enabled.

'valid t/nil

The default value of this boolean attribute is nil. The dumper dumps this attribute only if it is set to t.

'allowSetToValid t/nil

The default value of this boolean attribute is nil. The dumper dumps this attribute only if it is set to t.

Example

techLayers(
; ( layerName layerNumber abbreviation 'allowSetToValid t/nil)
( nimplant 39 nimplnt 'allowSetToValid nil)
)

techPurposes

techPurposes(
( t_purposeName x_purposeNum [t_purposeAbbr]
  ['parent tx_parentPurpose] ['voltageRange (f_min f_max)]
  ['sigType t_sigType] ['description t_description] ['valid t/nil]   ['allowSetToValid t/nil]
)
) ;techPurposes

Description

Defines purposes that can be used to define layer-purpose pairs. Layer-purpose pairs are used for display during design sessions.

Applications that display purpose names do not always have the room to display the full purpose name. The optional abbreviation extends your control over what is displayed in the fields that are too narrow to display the full purpose name. An application can display one or more of the following values:

Arguments

t_purposeName

The name of the purpose.
Valid values: Any string that is not a system-reserved purpose.

x_purposeNum

The purpose number.

Valid values: A unique integer, 1 through 128 and 256 through 232-65535.

Purpose numbers 129 through 255 are system-reserved. Purpose number 0 is also system-reserved and is defined as "unknown".

t_purposeAbbr

The abbreviation for the purpose name.

Valid values: Any string of seven characters or less.

'parent x_parentPurpose

The name or number of the parent purpose. The default parent purpose is drawing. There is a restriction on the use of drawing with 'sigType. For more information, see the description below for 'sigType.

Valid values: Predefined purposes. For more information, see Predefined Purposes.

'voltageRange f_min f_max

The minimum and maximum voltage pair. It specifies the voltage range carried by the shapes created with the specified purpose.

'sigType t_sigType

This string attribute does not have a default value and it cannot be an empty string. If sigType is signal or a user-defined value, any purpose can be specified as a parent purpose. If sigType is a built-in signal type other than signal, such as power or ground, the parent purpose must be drawing.

'description t_description

This string attribute does not have a default value. It is used to specify a brief description of the purpose. It cannot be an empty string.

'valid t/nil

The default value of this Boolean attribute is nil. The dumper dumps only this attribute if it is set to t.

'allowSetToValid t/nil

The default value of this Boolean attribute is nil. The dumper dumps only this attribute if it is set to t.

Predefined Purposes

The purpose names listed in the table below are predefined (in cdsDefTechLib) and must be used in accordance with their defined meaning. Whenever possible, these purposes should be used instead of user-defined purpose names.

Purpose Description

drawing

Is the default purpose used for shapes that carry signals

fill

Identifies automatically generated fill shapes, which may be removed automatically by place and route tools, as needed.

These do not carry signals and are generated and added to enable the design to pass density checks.  These must be uniquely identified so that they can be removed to make room to move a route, if needed. Fill shapes are not subject to the same rules as regular drawing shapes and need not be completely correct because they do not carry a signal. For example, sometimes the rules for fill shapes allow them to be closer together than drawing shapes are allowed to be.

slot

Identifies shapes for slotting modification during the manufacturing process

OPCSerif

Identifies the data created by optical proximity correction

OPCAntiSerif

Identifies the data created by optical proximity correction

annotation

Used for chip annotation, such as for labels and logos

gapFill

Identifies fill shapes added to correct DRC errors such as notch, min-step, and enclosed-area violations

redundant

Identifies objects that have been placed more than once, such as double vias on a route

fillOPC

Identifies automatically generated fill shapes that might have shapes added to them by Optical Proximity Correction (OPC) tools.

For example, very small shapes might be added to the corners during OPC when run as part of mask preparation to ensure that the corners are printed correctly on the chip. These shapes typically follow the same rules as regular drawing shapes but like with a regular fill shape, a router can remove these to modify a route because they can be regenerated.

customFill

Identifies fill shapes that are hand-drawn or generated as part of a Pcell and added manually by a Virtuoso user in a custom design flow

fatal

Used for fatal error markers

critical

Used for critical error markers

soCritical

Used for signed-off critical error markers

soError

Used for signed-off error markers

ackWarn

Used for acknowledged warning markers

info

Used for information markers

track

Used for track patterns

blockage

Identifies objects associated with blockages

grid

Used for grids such as placement and manufacturing grids

warning

Used for warning markers

tool1

Identifies shapes that are created when a DRC check is run

tool0

Identifies shapes that are created when a DRC check is run

label

Used for labels, such as pin, instance, device, and PR boundary labels

flight

Used for flight lines

error

Used for error markers

annotate

Used for user-generated information

drawing1, …, drawing9

Used for objects such as congestion maps (designFlow), highlights, annotations, grids, and devices

boundary

Used for delineating objects such as groups and rows and for PR, snap, and cluster boundaries

pin

Identifies objects associated with pins

net

Identifies objects associated with nets

cell

Identifies an object that is a block

all

Symbolizes that an object is not purpose-specific and applies to all purposes of a layer

Customizing Object Attributes

You can control how shapes are displayed on various layers by defining layer-purpose pairs and assigning to each layer-purpose pair a display packet. If you want to prevent shapes from being drawn on a layer-purpose pair, you can set the valid attribute for that layer-purpose pair to nil.

Various combinations of the layers and purposes specified in cdsDefTechLib define a set of system-reserved layer-purpose pairs that are used to display system-generated output, such as markers, rulers, flight lines, and boundaries. None of the system-reserved layer-purpose pairs are set to valid by default. As a result, they are not listed automatically in the Palette.

Shapes can be drawn on all layer-purpose pairs due to CDB compatibility.

Layout Objects

The table below lists layout objects and the associated LPPs.

Object Layer Purpose Packet

Guides, steiners

annotate

drawing

annotate

Instances, vias, mosaics (BBox)

instance

drawing

instance

Markers

marker

warning

markerWarn

error

markerErr

annotate

markerAno

info

markerInf

ackWarn

markerAck

soError

markerSer

soCritical

markerScr

critical

markerCrt

fatal

markerFat

Rows

Row

boundary

RowBnd

Blockages

Any physical layer

blockage

View in DRE*

Placement blockages

Cannotoccupy

Boundary

CannotoccupyBnd

PR boundary, blockages

prBoundary

boundary

prBoundaryBnd

Area boundary, figGroups, custom rows

border

boundary

area

Cluster boundary

Group

boundary

GroupBnd

Snap boundary

snap

boundary

snap

Track pattern

Any physical layer

track

View in DRE*

Manufacturing grid

Any physical layer

grid

View in DRE*

Placement grid

snap

grid

snap

Rulers

marker

annotate

markerAno

hilite

drawing4

hilite4

Symmetric axes

edgeLayer

drawing

edgeLayer

Selection

hilite

drawing

hilite

Highlight (command-specific)

hilite

drawing1-drawing9

hilite1-hilite9

Instance BBox (when edit-in-place is active and you point to an instance)
hilite
drawing1
hilite1
Instance and figGroup BBox (when being edited in place)
hilite
drawing2
hilite2
Reference point
hilite
drawing3
hilite3

*For information about how to view the complete list of associated display packets in Display Resource Editor (DRE), see Using Display Resource Editor in Virtuoso® Technology Data User Guide.

Analog Objects

The table below lists analog objects and the associated LPPs.

Object Layer Purpose Packet

Analog instance label
(cdsName())

annotate

drawing7

annotate7

Analog pin annotation
(cdsTerm())

annotate

drawing8

annotate8

Analog device annotation
(cdsParam())

annotate

drawing

annotate

Pin annotate (pin net expressions)

pin

annotate

pinAnt

Waveforms

The display settings in the display.drf files are not considered while running sweeps, corners, and parametric analysis in ADE. For more information, see useDisplayDrf.

y0-y9

drawing

y0-y9

Circuit analysis boundary annotation

annotate

boundary

AnnotateBoundary

Schematic Objects

For information about schematic objects and their associated LPPs, see Customizing Schematic Object Attributes in Virtuoso® Schematic Editor L User Guide.

Dynamic Highlight and Drag Outline

The display packets listed below are used for displaying the dynamic highlight and the outline of an object being dragged or moved.

Object Packet

Dynamic highlight

For more information, see Setting Dynamic Highlights in Virtuoso® Technology Data User Guide.

useDynamicHilightPacket

Drag outline

monoColorDragPacket

Example 1

techPurposes(
    (highvoltage  13  hvo  'sigType "analog"  'voltageRange (0.0  0.3)
    'description "highvoltage range 0.0 --- 0.3."
    )
)

Example 2

techPurposes(
    (lowvoltage  14  lvo  'parent slot  'sigType "signal"
    'voltageRange (-3.3 0.0)     'description "lowvoltage range -3.3 --- 0.0"
    )
)

Example 3

techPurposes(
    (techPurpose2  2  tp2  'parent fill  'sigType "userDef2"
    'description "This purpose is for user-defined signal type 2."
    )
)

Example 4

techPurposes(
    (blockage1  1214  BLK1  'parent annotation  'valid nil ) 
)

Example 5

techPurposes(
    (blockage1  1214  BLK1  'parent annotation  'valid nil  'allowSetToValid nil) 
)

techLayerPurposePriorities

techLayerPurposePriorities(
( t_layerName t_purposeName ) 
…
) ;techLayerPurposePriorities

Description

Lists layers with assigned purposes in the order of priority, from the lowest to the highest.

Arguments

t_layerName

Name of the layer.

t_purposeName

Name of the purpose.    

Example

techLayerPurposePriorities(
; ( layerName purposeName )
( Metal1 drawing )
( Metal2 drawing )
( Metal3 drawing )
( Metal4 drawing )
) ;techLayerPurposePriorities

Defines layer-purpose pair priority based on the order in which the layer-purpose pairs are listed. For example, the layer-purpose pair listed first, Metal1 drawing, has the lowest priority, and the layer-purpose pair listed last, Metal4 drawing, has the highest priority. The priority assigned to the layer-purpose pairs determines how shapes are rendered in the layout. For example, shapes on the layer-purpose pair with the highest priority are drawn on top of the shapes on all other layer-purpose pairs.

The figure below illustrates how layer-purpose pairs are rendered based on the priority assigned to them. It also includes an example layout that shows shapes drawn on layers Metal1 through Metal4, with the Metal1 shape at the bottom and the Metal4 shape at the top.

techDisplays

techDisplays(
( t_layerName 
t_purposeName 
t_packet 
g_visible 
g_selectable 
g_contToChgLay 
g_dragEnable 
g_valid 
['allowSetToValid t/nil]
['description t_description]
)
…
)

Description

Defines the display attributes of layer-purpose pairs.

Arguments

t_layerName

Name of the layer.

t_purposeName

Name of the purpose.    

t_packet

Name of a packet defined in the display resource file.

For more information about display packets and the display resource file, see Chapter 11, “Display Resource File”.

g_visible

Indicates whether the layer is visible in the display device.

g_selectable

Indicates whether the objects drawn on the layer are selectable.

g_contToChgLay

Indicates whether the layer contributes to a changed layer.

g_dragEnable

Indicates whether you can drag a shape created on the layer in the layout editor.

g_valid

Indicates whether the layer appears in the Palette Assistant window.

'allowSetToValid t/nil

The default value of this Boolean attribute is nil. The dumper dumps this attribute only when it is set to t.

'description t_description

This string can be used to specify a brief description of the display attributes.

Example

techDisplays(
 ; ( layer   Purpose   Packet      Vis   Sel   chgLay   drag   valid 
 ;   attribute)
   ( poly1   boundary  redHash_S   t     t     t        t      t     
     'allowSetToValid nil 'description "poly boundary layer")
)

Sets the display packet to redHash_s for poly1 boundary layer-purpose pair (LPP). In addition, the visible, selectable, change layer, drag enable, and valid attributes are all set to t. The 'allowSetToValid attribute is set to nil.

techLayerProperties

techLayerProperties(
( t_propName t_layer1 [t_layer2] g_propValue )
…
) ;techLayerProperties

Description

Stores properties for specific user-defined layers. Must be contained within the layerDefinitions enclosure.

The following are the properties that can be specified:

single-layer area capacitance

areaCapacitance

The capacitance for each square unit in picofarads per square micron; floating-point; used to model wire-to-ground capacitance

two-layer area capacitance

areaCapacitance

The capacitance for each square unit in picofarads per square micron; floating-point; used to model capacitance between two facing layers

single-layer edge capacitance

edgeCapacitance

The peripheral capacitance in picofarads per micron; floating-point

two-layer edge capacitance

edgeCapacitance

The lateral capacitance between two layers in picofarads per micron; floating-point

layer sheet resistance

sheetResistance

The resistance for a square of wire in ohms per square

cut layer resistance per cut

resistancePerCut

The resistance for a via in ohms per number of cuts

layer height

height

The distance from the top of the ground plane to the bottom of the interconnect in user units

layer thickness

thickness

The thickness of the layer in user units

shrinkage factor

shrinkage

The value to account for shrinkage of interconnect wiring as a result of the etching process in user units

capacitance multiplier

capMultiplier

The multiplier for interconnect capacitance to account for increases in capacitance caused by nearby wires. If not specified, applications assume a value of 1.

Arguments

t_propName

The name of the property you want to set.
Valid values: areaCapacitance, edgeCapacitance, sheetResistance, resistancePerCut, height, thickness, shrinkage, capMultiplier

t_layer1

The first layer or layer-purpose pair to which the property is applied.

t_layer2

The second layer to which the property is applied.

g_propValue

The value assigned to the property.

Example

techLayerProperties(
    ( sheetResistance        METAL1                      0.02 )
    ( areaCapacitance        (METAL1 drawing)            4.1e-4 )
    ( areaCapacitance        METAL1        METAL2        2.36-5 )
    ( edgeCapacitance        METAL1                      3.0e-5 )
    ( edgeCapacitance        METAL1        METAL2        5.0e-6 )
) ;techLayerProperties

techDerivedLayers

With techDerivedLayers, you can specify:

Purpose-Aware–Derived Layers

techDerivedLayers(
( tx_derivedLayer x_derivedLayerNum ( tx_layer 'select tx_purpose ) )
…
) ;techDerivedLayers

Description

Defines layers derived by pairing a layer with a purpose. Purpose-aware derived layers allow selection of a layer with the specified purpose for purpose-aware constraint application.

Arguments

tx_derivedLayer

Derived layer name.
Valid values: Any string; layer names must be unique

x_derivedLayerNum

Derived layer number.
Valid values: Any number not reserved or already assigned

tx_layer

The layer to be paired with a purpose.
Valid values: Layer name or layer number

'select

The operator indicating that the layer is to be paired with a purpose.

tx_purpose

The purpose to be paired with the layer.
Valid values: Any valid purpose that is not reserved

Example

techDerivedLayers(
("derivedLayerPurpose1" 1000 ("metal1" 'select "drawing"))
("derivedLayerPurpose2" 1001 ("metal1" 'select "fill"))
)

Defines a derived layer named derivedLayerPurpose1 with layer number 1000, created by selecting layer metal1 and purpose drawing. It also defines a derived layer named derivedLayerPurpose2 with layer number 1001, created by selecting layer metal1 and purpose fill.

Sizing-Derived Layers

techDerivedLayers(
( tx_derivedLayer x_derivedLayerNum( tx_layer s_sizeOp g_value ) )
…
) ;techDerivedLayers

Description

Defines layers derived from sizing other layers.

Arguments

tx_derivedLayer

The derived layer.
Valid values: The derived layer name or number

x_derivedLayerNum

The derived layer number.
Valid values: Any number not reserved or already assigned

tx_layer

The layer to be sized.
Valid values: The layer name or layer number

s_sizeOp

The sizing operation to perform on the layer.
Valid values: 'growHorizontal, 'growVertical, 'shrinkHorizontal, 'shrinkVertical, 'grow, 'shrink

g_value

The amount by which to size the layer.
Valid values: The distance by which the layer grows or shrinks, in user units.

Example

techDerivedLayers(
(metal1Sized  20001  ( "Metal1" 'grow  0.01))
)

Defines a derived layer named metal1sized with layer number 20001, with all shapes on Metal1 grown by 0.01um.

Area-Restricted Derived Layers

techDerivedLayers(
( tx_derivedLayer ( tx_layer 'area x_area ) )
…
) ;techDerivedLayers

Description

Defines derived layers with restricted area.

Arguments

tx_derivedLayer

The derived layer.
Valid values: The derived layer name or number

tx_layer

The layer whose area is to be restricted.
Valid values: The layer name or layer number

'area

Specifies that the area is to be restricted.

x_area

The area restriction, specified as follows:

> | < n

where, >n specifies that the area must be larger than n, the number specified, and <n specifies that the area must be smaller than n, the number specified.

Example

techDerivedLayers(
("derivedLayer1" 1000 ("metal1" 'area <5))
)

Defines a derived layer named derivedLayer1 with layer number 1000 by restricting the area to less than 5.

Color-Derived Layers

techDerivedLayers(
( t_derivedLayerName x_derivedLayerNum
 ( tx_layerName 'color t_maskColor )
 ['locked | 'unlocked]
) 
…
) ;techDerivedLayers

Description

(Virtuoso Advanced Node for Layout Only) Creates a derived layer and copies to it shapes based on their color mask and color locked state, if specified.

Arguments

t_derivedLayerName

The derived layer name.
Valid values: The derived layer name

x_derivedLayerNum

The derived layer number.
Valid values: Any number not reserved or already assigned

tx_layer

The layer to be paired with a purpose.
Valid values: Layer name or layer number

'color t_maskColor

The color of the shape that needs to be copied to the derived layer: any, mask1Color, mask2Color, mask3Color, and grayColor (uncolored shape).

'locked | 'unlocked

The lock status. By default, all shapes are copied to the derived layer, irrespective of whether they are locked or unlocked.

  • 'locked: Only locked shapes are copied to the derived layer.
  • 'unlocked: Only unlocked shapes are copied to the derived layer.

Example

The metal1 layer has both locked and unlocked colored shapes and one gray shape, as shown below. The various scenarios explain how shapes can be copied to the derived layer.

Scenario 1

techDerivedLayers(
    ( metal1_RedLocked 131 ( metal1 'color  mask1Color ) 'locked )
)

Creates a derived layer named metal1_RedLocked with layer number 131 and copies to it the locked mask1Color shape, as shown below.

Scenario 2

techDerivedLayers(
    ( metal1_GreenUnlocked 131 ( metal1 'color  mask2Color ) 'unlocked )
)

Creates a derived layer named metal1_GreenUnlocked with layer number 131 and copies to it the unlocked mask2Color shape, as shown below.

Scenario 3

techDerivedLayers(
    ( metal1_Gray 131 ( metal1 'color grayColor ) 'unlocked )
)

Creates a derived layer named metal1_Gray with layer number 131 and copies to it the unlocked grayColor shape, as shown below.

Scenario 4

techDerivedLayers(
    ( metal1_Locked 131 ( metal1 'color  any ) 'locked )
)

Creates a derived layer named metal1_Locked with layer number 131 and copies to it all locked shapes, as shown below.

Scenario 5

techDerivedLayers(
    ( metal1_UnLocked 131 ( metal1 'color any ) 'unlocked )
)

Creates a derived layer named metal1_UnLocked with layer number 131and copies to it all unlocked shapes, as shown below.

Two-Layer–Derived Layers

techDerivedLayers(
( t_derivedLayerName x_derivedLayerNum 
 ( tx_layer1 s_op tx_layer2 )
 [ x_count | t_rangeVal ]
 [ 'diffNet | 'sameNet ]
 [ 'exclusive ]
)
…
) ;techDerivedLayers

Description

Defines derived layers to be used throughout the technology file. A derived layer is the result of performing a logical operation on two layers.

Arguments

t_derivedLayerName

The name to apply to the derived layer.
Valid values: The derived layer name or number

x_derivedLayerNum

The layer number for the derived layer.
Valid values: The layer name or layer number

tx_layer1

The first layer used to create the derived layer.
Valid values: The layer name or layer number

s_op

The logical operation to perform on the two layers to create the derived layer. Only one logical operator can be used in the creation of a derived layer.
Valid values: 'and, 'or, 'not, 'xor, 'butting, 'buttOnly, 'coincident, 'coincidentOnly, 'buttingOrCoincident, 'overlapping, 'buttingOrOverlapping, 'touching, 'inside, 'outside, 'avoiding, 'straddling, 'enclosing

'and, 'or, 'not, and 'xor represent standard logical operations.

The other operators are explained in Operator Definitions.

tx_layer2

The second layer used to create the derived layer.
Valid values: The layer name or layer number

x_count

The number of times contact must be made between the shapes on the two layers forming the derived layer.
Valid values: Any non-negative integer

t_rangeVal

A range of the number of times contact can be made between the shapes on the two layers forming the derived layer.

Valid values:
"< n", " n", "> n", "≥1 n", "[n1 n2]", "(n1 n2)", "[n1 n2)", "(n1 n2]"

where, n is the count, n1 is the lower number in a range, n2 is the upper number in a range, [] indicates that the range is inclusive of n1 and n2, and () indicates that the range is exclusive of n1 and n2.

For example,

  • "[1 5]" includes values 1, 2, 3, 4, 5
  • "(1 5)" includes values 2, 3, 4
  • "[1 5)" includes values 1, 2, 3, 4
  • "(1 5]" includes values 2, 3, 4, 5

'diffNet

The shapes on layer1 and layer2 must be on different nets. If not specified, connectivity is ignored.

'sameNet

The shapes on layer1 and layer2 must be on the same net. If not specified, connectivity is ignored.

'exclusive

This specification must define the only derived layer relationship between shapes on layer1 and shapes on layer2.

Operator Definitions

Operator Definition

'and

The 'and layer operation requires two layers to be specified. This operation creates, on the derived layer, shapes that correspond to the intersecting areas on layer1 and layer2. The following figure is an example of a shape that is included in a derived layer when this type of layer operation is used.

'not

The 'not layer operation requires two layers to be specified. This operation creates, on the derived layer, shapes that correspond to the inversion of layer2 shapes and layer1. The following figure is an example of a shape included in a derived layer when this type of layer operation is used.

'or

The 'or layer operation requires two layers to be specified. This operation creates, on the derived layer, shapes that correspond to a union of the shapes on layer1 and layer2. The following figure is an example of a shape included in a derived layer when this type of layer operation is used.

'xor

The 'xor layer operation requires two layers to be specified. This operation selects the non-overlapping areas of shapes on layer1 and layer2, that is, it excludes the overlapping portions of the shapes. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'butting

The 'butting layer operation requires two layers to be specified. This operation selects shapes on layer1 that abut with shapes on layer2, that is, it selects shapes with coincident edges and some common area (but not all area in common). The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'buttOnly

The 'buttOnly layer operation requires two layers to be specified. This operation selects shapes on layer1 that abut, but do not overlap shapes on layer2. The following figure is an example of a shape included in a derived layer when this type of layer operation is used.

'coincident

The 'coincident layer operation requires two layers to be specified. This operation selects shapes on layer1 that have coincident edges with shapes on layer2. A shape on layer1 is coincident if any of its edges is coincident with an edge of a shape on layer2 and the areas of the two shapes at that edge overlap. Other parts of the shape on layer1 can also overlap the shape on layer2. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'coincidentOnly

The 'coincidentOnly layer operation requires two layers to be specified. This operation selects shapes on layer1 that have at least one coincident edge with a shape on layer2 and the area of the layer2 shape is completely covered by the layer1 shape. This is different from the 'coincident layer operation in that no portion of the layer1 shape can lie outside of the layer2 shape. The following figure is an example of a shape included in a derived layer when this type of layer operation is used.

'buttingOrCoincident

The 'buttingOrCoincident layer operation requires two layers to be specified. This operation selects shapes on layer1 that either abut or are coincident with shapes on layer2. Abutting and coincidence are defined as any edge-to-edge coincidence, regardless of whether the shapes overlap at the point of coincidence. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

For more information, see 'butting and 'coincident.

'overlapping

The 'overlapping layer operation requires two layers to be specified. This operation selects shapes on layer1 that overlap shapes on layer2. Overlap is defined as any area common to shapes on both layers. A layer1 shape overlaps if it has any area in common with a shape on layer2. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'buttingOrOvelapping

The 'buttingOrOverlapping layer operation requires two layers to be specified. This operation selects shapes on layer1 that abut or overlap shapes on layer2. Overlap is defined as a common area between shapes. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

For more information, see 'butting and 'overlapping.

The 'buttingOrOverlapping layer operation is the same as the 'touching layer operation, but the latter does not support optional parameters.

'touching

The 'touching layer operation requires two layers to be specified. This operation selects shapes on layer1 that are completely inside, partially inside, or abutting a shape on layer2. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

None of the optional parameters can be specified when a derived layer definition contains the 'touching operator. To specify any of these optional parameters, use 'buttingOrOvelapping.

'inside

The 'inside layer operation requires two layers to be specified. This operation selects shapes on layer1 that are completely inside a shape on layer2. Coincident edges are allowed, but layer1 shapes that are not completely inside layer2 shapes are not selected.

The difference between this and the 'touching layer operation is that this operation does not include the abutting shapes that are outside the layer2 shapes and overlapping shapes that are only partially inside the layer2 shapes. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'outside

The 'outside layer operation requires two layers to be specified. This operation selects shapes on layer1 that are completely outside a shape on the layer2. Coincident edges are allowed. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'avoiding

The 'avoiding layer operation requires two layers to be specified. This operation selects shapes on layer1 that are completely outside of, and have no abutting edges with, shapes on layer2. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'straddling

The 'straddling layer operation requires two layers to be specified. This operation selects shapes on layer1 that are only partially inside shapes on layer2. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

'enclosing

The 'enclosing layer operation requires two layers to be specified. This operation selects shapes on layer1 that completely cover at least one shape on layer2. In addition, a count that governs how many layer2 shapes must be enclosed by a layer1 shape for the layer1 shape to be selected can be specified. The following figure is an example of shapes included in a derived layer when this type of layer operation is used.

Non-rectangular Shape Derived Layers

techDerivedLayers(
(tx_derivedLayer x_derivedLayerNum
 ( tx_layer 'notRect  )  )

) ;techDerivedLayers

Description

Defines derived layers with non-rectangular shapes.

Arguments

tx_derivedLayer

The derived layer.
Valid values: The derived layer name or number

x_derivedLayerNum

The layer number for the derived layer.
Valid values: The layer name or layer number

tx_layer

The layer whose area is to be restricted.
Valid values: The layer name or layer number

'notRect

Selects all non-rectangular shapes.

Example

techDerivedLayers(
    ( notRect1 25020 ( metal1 'notRect))
)

Defines a derived layer named notRect1, with all non-rectangular shapes on layer metal1.

LPP Validity

A layer-purpose pair (LPP) is created from a combination of a single layer and a single purpose object defined in the technology database.

There are several ways of controlling the validity of an LPP. The valid attribute of the LPId can be set directly to true or false. However, the effective validity of the LPP depends on the valid attribute set for the parent layer, the parent purpose, and the LPP itself. Therefore, the effective LPP validity is equal to layer valid && purpose valid && lp base valid.

The layer valid attribute contributes to the validity of all layer-purpose pairs that the layer is part of. Similarly, the purpose valid attribute contributes to the validity of all layer-purpose pairs that the purpose is part of. The default values of layer and purpose valid attributes are true.

The ability to set the valid attributes of a layer, purpose, or layer-purpose pair can be controlled by the following attributes:

These attributes exist on the layer, purpose, and layer-purpose pair objects.

If an object’s allowSetToValid or allowSetToValidInSession attribute is false, the valid attribute may not be set to true.

The allowSetToValid and allowSetToValidInSession attributes can always be set to false. However, the attributes can only be set to true when the parent technology database is opened in the "write" or "append" mode.

LPP Validity Attributes


Return to top
 ⠀
X