Product Documentation
Virtuoso Technology Data Constraints Reference
Product Version IC23.1, November 2023

minTouchingDirEnclosure

orderedSpacings(
( minTouchingDirEnclosure tx_layer1 tx_layer2 tx_layer3
 f_enclosure ['manhattan]
)
) ;orderedSpacings

Specifies the minimum enclosure for the field end of the gate (this is different from the enclosure for the channel).

The direction of field-end enclosure is based on where the top and bottom edges of the gate touch "Poly", and the direction of the channel enclosure is based on where the sides of the gate touch "Diffusion", as shown below.

Usually, the minTouchingDirEnclosure constraint is used to check the overlap of "Poly" over "Diffusion".

The enclosure direction is at 90 degrees to the perimeter edges of the layer2 shape that touch the layer3 (the edges are either enclosed by or abut the layer3 shape), where the layer3 shape extends beyond the layer2 shape in the same direction, as shown below:

Values

tx_layer1

The first layer on which the constraint is applied. The shape on this layer encloses a shape on tx_layer2.

Type: String (layer and purpose names) or Integer (layer number)

tx_layer2

The second layer on which the constraint is applied. The shape on this layer is enclosed.

Type: String (layer and purpose names) or Integer (layer number)

tx_layer3

The third layer on which the constraint is applied. The shape on this layer is the reference shape whose placement in relation to the layer2 shape determines how the constraint is applied.

Type: String (layer and purpose names) or Integer (layer number)

f_enclosure

The enclosure of the field end of the gate must be greater than or equal to this value.

Parameters

'manhattan

The constraint uses Manhattan distance, which allows a larger spacing at the corners.

By default, the constraint uses Euclidean measurement.

Type: Boolean

Example

The minEnclosure and minTouchingDirEnclosure constraints are used with a derived layer named polyAndDiffusion (equivalent to layer3) to create a larger minimum implant enclosure around the poly endcap, than is applied around the rest of the diffusion.

layerDefinitions(
    ( techDerivedLayers(     (polyAndDiffusion 1000 (poly 'and diffusion)))     )
) ;layerDefinitions
orderedSpacings(
    ( minTouchingDirEnclosure "implant" "polyAndDiffusion" "poly" 
     2.0 'manhattan
    )
    ( minEnclosure "implant" "diffusion" 
     1.0
)
) ;orderedSpacings


Return to top
 ⠀
X