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

viaStackingLimits

viaStackingLimits(
( x_stackLimit
 ['noSingleCut]
 ['exceptIndividualArea f_individualArea 'exceptSumArea f_sumArea]
 ['lowCutSizeWithin]
 [tx_bottomLayer tx_topLayer]
)
) ;viaStackingLimits

Sets the maximum allowed number of continuous stacked vias. A via is considered to be in a stack with another via if a cut in one via partially or completely overlaps a cut in another via. The number of vias in a continuous stack must not exceed the number specified by this constraint.

This constraint must be specified in the viaStackingLimits constraint category in the foundry constraint group or in a constraint group applied at the design level. This does not include the global net default constraint groups such as LEFDefaultRouteSpec or virtuosoDefaultSetup. You can set one viaStackingLimits constraint per constraint group; if you set more, the one specified last is applied.

The figure below illustrates via stacks.

In the first example below, if the via stacking limit is set to 3, the leftmost figure violates the constraint because the number of stacked vias is 4 (>3).

In the second example below, if the via stacking limit is set to 3 and 'noSingleCut is specified, the figure on the left violates the constraint because a single-cut via is not allowed in a stack that is taller than 3.

Values

x_stackLimit

The maximum number of vias that can be stacked.

Parameters

'noSingleCut

This parameter specifies whether stacked vias can be single-cut or if they must be multiple-cut.

  • If this parameter is not specified, single-cut vias can be stacked up to the maximum specified number. Multiple-cut vias interrupt the stack count, effectively resetting the count to zero.
  • If this parameter is specified, via stacks taller than the stack count must consist of all multiple-cut vias.

Type: Boolean

'exceptIndividualArea f_individualArea

The constraint does not apply if the metal shape containing a stacked via has an area greater than or equal to this value on a layer other than the bottommost and topmost metal layers.

'exceptSumArea f_sumArea

The constraint does not apply if the union sum of the metal shapes containing a stacked via on layers other than the bottommost and topmost metal layers is greater than or equal to this value.

'lowCutSizeWithin

It is a stacked via if the upper adjacent layer cut is within the minimum cut size specified on the lower cut layer (as defined in a cutClasses or minWidth constraint).

Type: Boolean

tx_bottomLayer tx_topLayer

     

The two together specify a range of layers to which the constraint applies. If this range is not specified, the constraint applies to all layers. The specified layers must be metal layers.

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

Example

The via stack limit is set to 3 for Metal1 through Metal4 layers, and the via stack limit is set to 2 for Metal4 through Metal7 if the vias all have multiple cuts.

foundry(
    viaStackingLimits(
     ( 3 "Metal1" "Metal4" )
( 2 'noSingleCut "Metal4" "Metal7" )
) ;viaStackingLimits
) ;foundry


Return to top
 ⠀
X