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

trimMinSpacing (One layer)

spacings(
( trimMinSpacing tx_layer
 ['mergedTrimLength f_length]
 ['prlSpacing (f_spacing1 f_spacing2)]
 ['endToEndSpacing f_end ['mergedTrimLength f_length]ToEndSpacing
  {'horizontal | 'vertical} 
  ['prl f_prl]
  ['exactAligned f_exactAlignedSpacing]
  ['middleWireOnly f_middleWireLayer]
  ['edgeAligned f_edgeAlignedSpacing
   'exceptDiffMaskAligned]
  ['exceptWidth f_exceptWidth 'layer tx_exceptLayer]
 ]
 ['insideLayers (tx_layer1 tx_layer2 … tx_layerN)
  ['insidePurposes (t_purpose1 t_purpose2 … t_purposeN)]
  |
  'outsideLayers (tx_layer1 tx_layer2 … tx_layerN)
  ['outsidePurposes (t_purpose1 t_purpose2 … t_purposeN)]
 ]
 ['sameMask]
 ['mask1 | 'mask2 | 'mask3]
 f_spacing
)
) ;spacings

(Virtuoso Advanced Node for Layout Only) Defines the minimum spacing between shapes on the specified trim metal layer.

Values

tx_layer

The layer on which the constraint is applied.

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

f_spacing

The spacing between shapes must be greater than or equal to this value.

Parameters

'mergedTrimLength f_length

  

(Virtuoso Layout Suite EXL and higher tiers) This parameter specifies that the trim spacing applies only to a merged trim with length greater than or equal to the given value against another merged or non-merged trim.

'prlSpacing (f_spacing1 f_spacing2)

  

If the parallel run length between two shapes is zero, the spacing between them must be greater than or equal to spacing1; but if the parallel run length is greater than zero, the spacing between them must be greater than or equal to spacing2.

Otherwise, the spacing between the two shapes must be greater than or equal to spacing.

'endToEndSpacing f_endToEndSpacing

  

The end-to-end spacing in the given direction must be greater than or equal to this value if the parallel run length between the shapes is greater than prl, when specified, or equal to zero.

'horizontal | 'vertical

  

The direction in which end-to-end spacing is measured.

Type: Boolean

'prl f_prl

The end-to-end spacing is applied only if the parallel run length between the shapes is greater than this value, when specified.

'exactAligned f_exactAlignedSpacing 'exceptDiffMaskAligned

  

The end-to-end spacing must be greater than or equal to this value if the shapes are aligned.

If prl is not specified, end-to-end spacing is applied in Euclidian measurement. If prl is specified, end-to-end spacing is applied in Manhattan measurement.

If 'sameMask is also specified, 'exceptDiffMaskAligned can be used to indicate that the constraint does not apply to two aligned trim shapes on the same mask when there is another exactly aligned trim shape on a different mask between them.

'middleWireOnly f_middleWireLayer

  

(Virtuoso Layout Suite EXL and higher tiers) This parameter specifies that the trim spacing applies only if there is a metal shape on the specified layer overlapping the area between the trims.

'edgeAligned f_edgeAlignedSpacing

  

The end-to-end spacing must be greater than or equal to this value if the top or left edge of one shape is exactly aligned with the bottom or right edge of another shape.

Otherwise, endToEndSpacing is applied.

'exceptWidth f_exceptWidth

If a shape on exceptLayer is between two trim shapes and has width greater than or equal to this value, all end-to-end spacing rules are exempted.

'layer tx_exceptLayer

The layer on which 'exceptWidth applies. This is the layer that the trim metal trims.

Type: String (layer name) or Integer (layer number)

'insideLayers (tx_layer1 tx_layer2tx_layerN)
| 'outsideLayers (
tx_layer1 tx_layer2tx_layerN)

Determines if the constraint applies, based on the presence or absence of one or more layers.

  • 'insideLayers: The constraint applies only if the shapes on the specified layer (layer) overlap a shape on one of these layers (layer1 layer2layerN).
  • 'outsideLayers: The constraint applies only if the shapes on the specified layer (layer) overlap the region outside the shapes on one of these layers (layer1 layer2layerN).

For more information, see Region-based Rule (One layer).

Type: String (layer name) or Integer (layer number)

'insidePurposes (t_purpose1 t_purpose2t_purposeN)

The 'insideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'outsidePurposes (t_purpose1 t_purpose2t_purposeN)

The 'outsideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'sameMask

The constraint applies only between shapes on the same mask.

Type: Boolean

'mask1 | 'mask2 | 'mask3

The constraint applies only to shapes on the specified mask.

Type: Boolean

Examples

Example 1: trimMinSpacing with prlSpacing, endToEndSpacing, and vertical

The width of TrimMetal1 shapes must be equal to 0.2 and their length must be less than or equal to 0.6. The shapes must extend by half of the required spacing of the wires (midTrack).

If the parallel run length between two shapes is zero, the spacing between them must be greater than or equal to 0.3; but if the parallel run length is greater than zero, the spacing between them must be greater than or equal to 0.4. Otherwise, the spacing between the two shapes must be greater than or equal to 0.5.

The end-to-end spacing in the vertical direction must be greater than or equal to 0.8 if the parallel run length between the shapes is greater than zero.

Example 2: trimMinSpacing with endToEndSpacing, vertical, prl, and exactAligned

The end-to-end spacing in the vertical direction must be greater than or equal to 0.8 if the parallel run length between the shapes is greater than -0.1. If the shapes are exactly aligned, the end-to-end spacing in the vertical direction must be greater than or equal to 0.7. Otherwise, the spacing between the shapes must be at least 0.5.

Example 3: trimMinSpacing with endToEndSpacing, vertical, prl, exactAligned, and edgeAligned

The end-to-end spacing in the vertical direction must be greater than or equal to 0.8 if the parallel run length between the shapes is greater than -0.1. If the shapes are exactly aligned, the end-to-end spacing in the vertical direction must be greater than or equal to 0.7, and if the left edge of a shape is exactly aligned with the right edge of another shape, the end-to-end spacing between the shapes in the vertical direction must be greater than or equal to 0.9. Otherwise, the spacing between the shapes must be at least 0.5.

Example 4: trimMinSpacing with endToEndSpacing, vertical, prl, exceptWidth, and layer

The end-to-end spacing in the vertical direction must be greater than or equal to 0.8 if the parallel run length between the shapes is greater than -0.1. If the width of a shape on Metal1 is greater than or equal to 0.4, the end-to-end spacing requirement is exempted. Otherwise, the spacing between the shapes must be at least 0.5.

Example 5: trimMinSpacing with prlSpacing, endToEndSpacing, horizontal, and insideLayers

If the parallel run length between two shapes is zero, the spacing between them must be greater than or equal to 0.3; but if the parallel run length is greater than zero, the spacing between them must be greater than or equal to 0.4. Otherwise, the spacing between the two shapes must be greater than or equal to 0.51. The end-to-end spacing in the horizontal direction must be greater than or equal to 0.8 if the parallel run length between the shapes is greater than zero.

The constraint applies only if the shapes on layer NP overlap the shapes on layer Metal1 or Metal2.

spacings(
    ( trimMinSpacing "NP" 
     'prlSpacing (0.3 0.4) 
'endToEndSpacing 0.8
'horizontal
'insideLayers ("Metal2" "Metal3")
0.51
)
) ;spacings

Return to top
 ⠀
X