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

minDirectionalSpacing

spacings(
( minDirectionalSpacing tx_layer 
 {'horizontal | 'vertical}
 'cutPrl g_cutPrl
 'cutClass {f_cutWidth | (f_cutWidth f_cutLength) | t_name} 
 'otherCutClass {f_cutWidth | (f_cutWidth f_cutLength) | t_name} 
 ['prl f_prl 'within f_within
  ['excludeCutEdge]
  ['minNumCuts g_minNumCuts]
  [groupName t_groupName]
 ]
 g_spacing
)
) ;spacings

(ICADVM20.1 Only – 95511) Specifies the directional spacing between two cuts, one on cutClass and the other on otherCutClass, when the cuts have more than cutPrl parallel run length.

This constraint applies selectively if a cut edge along the orthogonal direction of the spacing of a cut in the specified cutClass has a neighboring cut in the specified otherCutClass in the specified within distance when the parallel run length is more than the prl value.

Values

tx_layer

The cut layer on which the constraint is applied.

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

g_spacing

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

Parameters

'horizontal | 'vertical

  

The direction in which the cut spacing applies.

Type: Boolean

'cutPrl g_cutPrl

The constraint applies when the parallel run length of the two cuts is greater than the given value.

'cutClass {f_cutWidth | (f_cutWidth f_cutLength) | t_name}

  

The constraint applies to the cut class specified by width, by width and length, or by name (as defined in a cutClasses constraint).

  • f_width: Width
  • f_length: Length
  • t_name: Name of the cut class

'otherCutClass {f_cutWidth | (f_cutWidth f_cutLength) | t_name}

  

The constraint applies to this additional cut class specified by width, by width and length, or by name (as defined in a cutClasses constraint).

  • f_width: Width
  • f_length: Length
  • t_name: Name of the cut class

'prl f_prl

The constraint applies only if a cut edge in the orthogonal direction of a cut of cutClass has a neighboring cut of otherCutClass with the parallel run length greater than prl on the same side.

'within f_within

The constraint applies only if a cut edge in the orthogonal direction of a cut of cutClass has a neighboring cut of otherCutClass within this value on the same side.

'excludeCutEdge

Separate neighbor cut search windows are formed from cut corners based on the given values in f_prl and f_within. Each window is checked.

'minNumCuts g_minNumCuts

The constraint applies only if the neighbor search window has at least the number of cuts specified.

'groupName t_groupName

  

The constraint applies if the neighbor cut of otherCutClass belongs to the specified via group.

Examples

Example 1: minDirectionalSpacing with prl, within, and groupName

Consider the following sample constraints.

spacings(
    (minDirectionalSpacing "Via1" 
     'vertical 'cutPrl -0.02 
'cutClass "VB" 'otherCutClass "VA"
'prl -0.04 'within 0.05
0.07)
 (minDirectionalSpacing "Via1" 
'vertical 'cutPrl -0.02
'cutClass "VB" 'otherCutClass "VA"
'groupName "VGA" 'prl -0.04 'within 0.05
0.08)

) ;spacings

Example 2: minDirectionalSpacing with excludeCutEdge and minNumCuts

Consider the following sample constraint.


Return to top
 ⠀
X