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

allowedWidthRanges

spacings(
( allowedWidthRanges tx_layer 
 ['length f_length]
 ['orthogonal]
 ['horizontal | 'vertical | 'measureHorizontal | 'measureVertical]
 ['stepSize f_stepSize ['stepRange g_range]]
 ['exceptOverlap f_exceptOverlap]
 ['mask1 | 'mask2 | 'mask3]
 ['insideLayers (tx_layer1 tx_layer2tx_layerN)
  ['insidePurposes (t_purpose1 t_purpose2t_purposeN)]
  | 
  'outsideLayers (tx_layer1 tx_layer2tx_layerN)
  ['outsidePurposes (t_purpose1 t_purpose2t_purposeN)]
 ]
 (g_ranges) 
)
) ;spacings

Specifies the allowed width values for shapes on a layer. Polygon shapes are broken down into rectangles and the shorter dimension of each rectangle is checked against the allowed width values.

Consider two partially overlapping shapes and the area considered for merging.

The constraint checks if the open opposite edges in the specified direction have positive parallel run length and the constraint is applied perpendicular to these edges.

Values

tx_layer

The layer on which the constraint is applied.

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

g_ranges

The allowed width ranges.

Type: Floating-point values specifying width ranges

Parameters

'length f_length

The constraint applies only if the length of the shape is greater than or equal this value.

'orthogonal

The distance between two inside corners of a rectilinear shape measured in the direction orthogonal to the direction specified for the constraint must be greater than or equal to the smallest specified width value.

Type: Boolean

'horizontal | 'vertical | 'measureHorizontal | 'measureVertical

  

The parameters 'horizontal and 'vertical, if specified, indicate the direction in which width is measured.

(Virtuoso Advanced Node for Layout Standard) If 'measureHorizontal or 'measureVertical is specified, the width is always measured in this direction, regardless of whether this direction is the width or length of the shape.

Do not mix direction types within a constraint group. Specify either 'horizontal/'vertical or 'measureHorizontal/'measureVertical.

Type: Boolean

'stepSize f_stepSize

(Virtuoso Advanced Node for Layout Standard) The allowed widths (Wlegal) are restricted to the following values:

Wlegal = Wlb + n*stepSize

where, Wlb is the lower bound of the range specified by stepRange and n>=0. If stepRange is not specified, Wlb is the lower bound of the constraint value.

'stepRange g_stepRange

(Virtuoso Advanced Node for Layout Standard) The stepped width specified with 'stepSize applies only in this range, which is fully contained in the constraint value.

Type: Floating-point values specifying a width range

'exceptOverlap f_exceptOverlap

  

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply to merged areas whose overlap length is less than or equal to this value.

The overlap length of the merged area is measured in the direction of the wires, which is perpendicular to the width of the wires. Both merging wires must be in the same direction.

'mask1 | 'mask2 | 'mask3

  

(Virtuoso Layout Suite EXL and higher tiers) The mask of the shapes to which this rule belongs to.

Type: Boolean

'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)

Examples

Example 1: allowedWidthRanges

The allowed widths for shapes on Metal1 are 0.1, 0.15, 0.2, 0.25, and 0.3. Additionally, the width of a shape can be greater than 0.4 and less than 1.2.

Example 2: allowedWidthRanges with vertical and orthogonal

The vertical width of a wire must be equal to 0.05, 0.07, 0.1, 0.12, or 0.15. If two wires overlap or touch, the horizontal distance between two inside corners of the wires must be greater than or equal to 0.05.

Example 3: allowedWidthRanges with measureVertical and stepSize

The vertical width of a wire must be greater than or equal to 0.1 and less than or equal to 0.2. A legal width value is also the sum of the lower bound of this width range (0.1) and a multiple of 0.05.

Example 4: allowedWidthRanges with stepSize and stepRange

The vertical width of a wire must be greater than or equal to 0.1 and less than or equal to 0.4. A legal width value is also the sum of the lower bound of this width range (0.1) and a multiple of 0.05. For widths greater than or equal to 0.1 and less than or equal to 0.21, only discrete widths at a 0.05 step are allowed.

Example 5: allowedWidthRanges with measureVertical and measureHorizontal

Two allowedWidthRanges constraints are defined in an AND constraint group. A check is performed in the specified direction, regardless of whether this direction is the width or length of the shape.

Example 6: allowedWidthRanges with vertical and horizontal

Two allowedWidthRanges constraints are defined in an AND constraint group. A check is performed in the specified direction for the shape width, which is the shorter of the two dimensions. A check is not performed on the length represented by the dashed arrows.

Example 7: allowedWidthRanges with exceptOverlap

Consider the following cases where two allowedWidthRanges constraints are defined in an AND constraint group. A check is performed in the specified direction for the shape width that is the shorter of the two dimensions. A check is not performed on the length represented by the dashed arrows. The constraints do not apply to merged areas whose overlap length is less than or equal to the exceptOverlap value.

In the following case, the constraint passes with or without the exceptOverlap parameter. The merged overlap value is 0.15, which is equal to the exceptOverlap value, 0.15.

In the following case, the constraint passes. The merged overlap value is 0.28, which is more than the exceptOverlap value, 0.27.

In the following case, the constraint fails. The merged overlap value is 0.21, which is more than the exceptOverlap value, 0.19.


Return to top
 ⠀
X