minSpanLengthSpacing
spacingTables( ( minSpanLengthSpacingtx_layer(( "prl" nil nil "spanLength" nil nil ) ['horizonal | 'vertical | 'any] ['exceptJogLengthf_length['useEdgeLength] ['treatLAsJog] {'horizontalJog | 'verticalJog} ['jogWidth (f_jogWidth f_wireWidth)] ] ['eolWidthf_eolWidth[endOfLineExemptionRanges (g_endOfLineExemptionRanges)] ] ['exactSpacingTableg_exactSpacingTable] ['spacingToMinSpanTableg_spacingToMinSpanTable] ['exactSelfSpacingTableg_exactSelfSpacingTable] ['eolSpacingTableg_eolSpacingTable] ['sameMask | 'diffMask] ['minSpanSpacingRangesg_minSpanTable['minSpanSpacingRangesPrlg_minSpanPrlTable] ] ['minSpanForExceptEolWidthf_minSpanEolWidth] ['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)] ] ['eolExceptionNoPrl] ) (g_table) )
) ;spacingTables
(Virtuoso Advanced Node for Layout Standard) Specifies the spacing between two shapes based on their spans and the parallel run length between them. Optionally, the spacing can apply in the specified direction or to shapes on the same mask. Z- and L-shaped jogs are exempt from the spacing requirement if they meet all the specified criteria.
Additionally, a few exact spacings and a spacing range can be specified for a set of spans, typically the two smallest allowed widths, if the parallel run length between the shapes is non-zero.
Optionally, you can use the 'useEdgeLength parameter to specify how the length in 'exceptJogLength should be measured.

In the figure above, both y1 and y2 must be less than length for the "Z" shape to qualify for the 'exceptJogLength exemption. If 'useEdgeLength is not specified, the span (length of the jog) must be less than length.
Values
Parameters
|
The constraint does not apply between a Z-shaped jog and a neighboring wire with end-of-line width less than or equal to wireWidth and direction perpendicular to the direction in which the length of the jog is measured if the following conditions are satisfied: |
|
|
The jog exemption for a Z-shaped jog also applies to an L-shaped jog. |
|
|
(Virtuoso Advanced Node for Layout Only) The length of the edges in the wrong-way direction (non-preferred routing direction) of a wrong-way jog in a Z shape must be less than length. Otherwise, the span (length of the jog) must be less than length. |
|
|
The direction in which the length of the jog is measured. For example, if the routing direction is vertical, the jog direction must be horizontal. |
|
|
The constraint does not apply to a Z- or L-shaped jog with length less than length in the specified direction if the following conditions are satisfied: |
|
|
The constraint value table does not apply to edges with width less than this value. Instead, the spacing specified with |
|
|
The constraint value table applies to an end-of-line width that is less than eolWidth if it lies in the specified range.
Type: Floating-point values specifying a |
|
|
The spacing between two shapes can be equal to a spacing value listed in this table. Type: A 1-D table, indexed on span, specifying floating-point spacing values |
|
|
(Virtuoso Advanced Node for Layout Only) The spacing of a shape with a larger span to a shape with smaller span can be greater than or equal to a spacing value listed in this table if the larger of the two spans is greater than the corresponding index. Type: A 1-D table, indexed on span, specifying floating-point spacing values |
|
|
(Virtuoso Advanced Node for Layout Only) The spacing for shapes in the same span length range can be equal to a spacing value listed in this table. Type: A 1-D table, indexed on span, specifying floating-point spacing values |
|
|
The end-of-line spacing that is applied when the end-of-line width of the wire is less than eolWidth. Type: A 1-D table, indexed on span, specifying floating-point spacing values |
|
|
(Virtuoso Advanced Node for Layout Only) When
(Virtuoso Layout Suite EXL and higher tiers) When |
|
|
The additional exact spacings or a spacing range specified for a set of spans if the parallel run length between the shapes is non-zero. Typically, these ranges are used to specify a different set of legal spacing ranges for wires with smaller spans. Therefore, this spacing is smaller than the spacing stored in the constraint’s value table, which is based on wider span and parallel run length values. The format of the table is as follows:
This parameter is used instead of For information about how to interpret this parameter, see Example 4a: minSpanLengthSpacing with minSpanSpacingRanges. Type: A 2-D table, indexed on the span of the two shapes, specifying floating-point spacing values |
|
|
(Virtuoso Advanced Node for Layout Only) The additional exact spacings or a spacing range specified by The format of the table is as follows:
Type: A 2-D table, indexed on the span of the two shapes, specifying floating-point parallel run length values |
|
|
(Virtuoso Advanced Node for Layout Only) The constraint applies to edges with width less than eolWidth if the span of a shape measured in the specified spacing direction is less than this value. |
|
|
|
|
|
Determines if the constraint applies, based on the presence or absence of one or more layers.
For more information, see |
|
|
The |
|
|
The |
|
|
(Virtuoso Advanced Node for Layout Only) The exception of |
|
Examples
- Example 1: minSpanLengthSpacing with horizontal, exceptJogLength, and exactSpacingTable
- Example 2: minSpanLengthSpacing with horizontal and exactSpacingTable
- Example 3: minSpanLengthSpacing with horizontal, exactSpacingTable, and spacingToMinSpanTable
- Example 4a: minSpanLengthSpacing with minSpanSpacingRanges
- Example 4b: minSpanLengthSpacing with minSpanSpacingRanges
- Example 4c: minSpanLengthSpacing with minSpanSpacingRanges
- Example 5: minSpanLengthSpacing with minSpanSpacingRanges and minSpanSpacingRangesPrl
- Example 6: minSpanLengthSpacing with eolWidth and eolSpacingTable
Example 1: minSpanLengthSpacing with horizontal, exceptJogLength, and exactSpacingTable
- The minimum horizontal spacing between two wires must be as follows:
-
A Z-shaped jog is exempt from the spacing requirement if its length is less than 0.17 in the horizontal direction, width is less than or equal to 0.09, and the width of the adjacent wires and the neighboring wire perpendicular to the jog direction is less than or equal to 0.05.


Example 2: minSpanLengthSpacing with horizontal and exactSpacingTable
The minimum horizontal spacing between two wires must be as follows:
- If the larger of the two spans is less than 0.1, the spacing must be at least 0.07. An exact spacing of 0.05 is also acceptable.
-
If the larger of the two spans is greater than or equal to 0.1, the spacing must be at least 0.11.

Example 3: minSpanLengthSpacing with horizontal, exactSpacingTable, and spacingToMinSpanTable
The minimum horizontal spacing requirement between two wires is as follows:
- For wires with span less than or equal to 0.09, the spacing must be at least 0.07 or equal to 0.05.
- For a wire with span greater than 0.09 and less than or equal to 0.11 to a wire with span less than or equal to 0.09, the spacing must be at least 0.06.
- For wires with span greater than 0.09 and less than or equal to 0.11, the spacing must be at least 0.08.
-
For the larger of the two spans greater than 0.11, the spacing must be at least 0.09.


Example 4a: minSpanLengthSpacing with minSpanSpacingRanges
The values used in the example are defined as follows:
-
SpnN: The span of a shape measured in the spacing direction. Spacing is dependent on the span of one or both shapes.
Spn1 < Spn2 < Spn3 < … < SpnN -
SN: The minimum spacing between two shapes measured in the spacing direction. This spacing is measured using Manhattan style spacing.
S1 < S2 < S3 < … < SN - X1, X2, …, XN: The exact spacing required between two shapes.
- eolW: The edge length for which the constraint applies when the shape’s span is greater than minSpanForExceptEolWidth.
- -prl1 < 0 < prl2: The parallel run length (prl) between shapes, ranging from a negative number (-prl1) to a positive number (prl2).
The following table represents the constraint’s value table. In most cases, the spacing requirement for parallel run length 'p' is 0 if -prl1 < p < 0. However, this does not apply to the two smallest span lengths, where a minimum spacing requirement exists. Additionally, the rows for Sp2, Sp6, and Sp7 can be eliminated because the spacing values for these are the same as that in the neighboring rows (Sp1 and Sp5).
The table below represents the spacing table for the 'minSpanSpacingRanges parameter. The table stops at shapes with span Sp6. This is because the spacing for shapes with span Sp7 and up depends only on the parallel run length, which means that the constraint’s value table holds all the required information.
To reduce duplication of data, entries in this table that duplicate information in the constraint’s value table can be set to 0. For example, the spacing between shapes of Sp3 and Sp4 is >=S7, which is the same as that in the Sp4 row of the constraint’s value table for prl > 0. Therefore, the corresponding entry in this table is set to 0.
Additionally, row Sp1 in the table above can be eliminated because rows Sp1 and Sp2 are identical. Similarly, column Sp1 can be eliminated because columns Sp1 and Sp2 are identical.



Example 4b: minSpanLengthSpacing with minSpanSpacingRanges
The minimum spacing requirement between two wires is as follows:
- If the larger of the two spans is less than 0.14, the spacing must be greater than or equal to 0.05.
-
If the larger of the two spans is greater than or equal to 0.14, the spacing must be greater than or equal to 0.1.

Example 4c: minSpanLengthSpacing with minSpanSpacingRanges
The minimum spacing requirement between two wires when parallel run length is greater than or equal to -0.1 is as follows:
- If one span is greater than or equal to 0.0235 and the other span is greater than or equal to 0.0395, the spacing between the wires must be equal to 0.06 or greater than 0.1.
- If the larger of the two spans is less than 0.0395, the spacing must be greater than or equal to 0.12.
-
If the larger of the two spans is greater than or equal to 0.0395, the spacing must be greater than or equal to 0.1.


Example 5: minSpanLengthSpacing with minSpanSpacingRanges and minSpanSpacingRangesPrl
The minimum spacing requirement between two wires is as follows:
- If both spans are greater than or equal to 0 and the parallel run length is equal to -0.01, the spacing between the wires must be equal to 0.05 or greater than or equal to 0.07.
- If the larger of the two spans is greater than or equal to 0.09 and the parallel run length is equal to -0.02, the spacing must be equal to 0.06 or greater than or equal to 0.08.
- If the larger of the two spans is greater than or equal to 0.09 and the parallel run length is equal to -0.03, the spacing must be equal to 0.08 or greater than or equal to 0.08.
- If both spans are greater than or equal to 0.09 and the parallel run length is equal to 0, the spacing between the wires must be greater than or equal to 0.08.
spacingTables( ( minSpanLengthSpacing "Metal2" (( "prl" nil nil "spanlength" nil nil )
'vertical
'exceptJogLength 0.1
'useEdgeLength
'verticalJog
'jogWidth (0.09 0.05)
'minSpanSpacingRanges
(
(( "spanLength1" nil nil "spanLength2" nil nil ))
(
(0.0 0.0 ) (0.05 ">=0.07")
(0.0 0.09) (0.06 ">=0.08")
(0.09 0.0 ) (0.08 ">=0.08")
(0.09 0.09) (">=0.08")
)
)
'minSpanSpacingRangesPrl
(
(( "spanLength1" nil nil "spanLength2" nil nil ))
(
(0.0 0.0 ) -0.01
(0.0 0.09) -0.02
(0.09 0.0 ) -0.02
(0.09 0.09) 0
)
)
)
(
(0.0 0.0 ) 0.07
(0.0 0.09) 0.08
)
)
) ;spacingTables
Example 6: minSpanLengthSpacing with eolWidth and eolSpacingTable
If the end-of-line width of a wire is less than 0.05, the spacing requirement between this end-of-line wire and another wire, as determined by their span, is as follows:
- If both have spans greater than or equal to 0, the end-of-line spacing must be at least 0.07.
- If both have spans greater than or equal to 0.09, the end-of-line spacing must be at least 0.07.
- If both have spans greater than or equal to 0.11, the end-of-line spacing must be at least 0.09.
spacingTables( ( minSpanLengthSpacing "Metal2" (( "prl" nil nil "spanlength" nil nil )
'vertical
'eolWidth 0.05
'eolSpacingTable ((( "spanlength" ))
(
0.0 0.07
0.09 0.07
0.11 0.09
)
)
)
(
(0.0 0.0 ) 0.07
(0.0 0.09) 0.08
(0.0 0.11) 0.09
)
)
) ;spacingTables
Return to top