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

allowedSpacingRanges (Two layers)

spacings(
( allowedSpacingRanges tx_layer1 tx_layer2 
 'width f_width 
 (g_ranges) 
)
) ;spacings
spacingTables(
( allowedSpacingRanges tx_layer1 tx_layer2
 (( "width" nil nil ["width" nil nil] )
  ['width f_width]
  [f_default]
 )
 (g_table)
)
) ;spacingTables

Defines the spacing required between shapes on two different layers.

The spacing can optionally depend on the width of the shapes. Multiple allowed ranges and discrete values can be specified.

In some processes, it is necessary to insert assist or scattering bars between minimum-sized gates and other poly shapes to ensure that the gates print on the mask correctly. This constraint defines the spacing required between gates below the specified minimum width and the shapes on the specified second layer. The allowable spacing can depend on the width of one or both shapes.

Values

tx_layer1

The first layer on which the constraint is applied.

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

tx_layer2

The second layer on which the constraint is applied.

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

g_ranges

The allowed spacing ranges are specified as follows:

(spacingRange1 spacingRange2 …)

Type: Floating-point values specifying the spacing ranges that are allowed

"width" nil nil ["width" nil nil]

This identifies the index for table.

g_table

The format of a 1-D table row is as follows:

(f_width f_spacing)

where, f_width is the width of the wider of the two shapes and f_spacing is the spacing allowed when width is greater than or equal to the corresponding index.

The format of a 2-D table is as follows:

((f_width1 f_width2) f_spacing)

where, f_width1 and f_width2 are the widths of the two shapes and f_spacing is the spacing allowed when both widths are greater than or equal to the corresponding indexes.

For each table entry, the last spacing range must be open to the right.

Type: A 1-D or 2-D table specifying floating-point width and spacing values

Parameters

'width f_width

The constraint applies only if the width of both shapes is less than this value.

f_default

The spacing value to be used when no table entry applies.

Example 1

The spacing between a shape on Gate1 and a shape on Poly1 must be either of the following:

The spacing between a shape on Gate2 and a shape on Poly2 must be either of the following:

spacings(
    ( allowedSpacingRanges "Gate1" "Poly1" 
     ("(0.3 0.5]" ">=0.8")
)
( allowedSpacingRanges "Gate2" "Poly2"
("(0.2 0.4)" ">=0.8")
)
) ;spacings

Example 2

The spacing between a shape on Poly and a shape on Active is determined as follows:

spacingTables(
    ( allowedSpacingRanges "Poly" "Active"
     (( "width" nil nil ))
(
0.1 (0.12 ">=0.15")
0.2 (0.15 "[0.2 0.21]" ">=0.3")
)
)
) ;spacingTables

Return to top
 ⠀
X