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

minNumCut

spacingTables(
( minNumCut tx_cutLayer 
 (( "width" nil nil ) 
  ['cutClass {f_cutWidth | (f_cutWidth f_cutLength) | t_name}
  ['diffCutClass]]
  ['distanceWithin f_within ['manhattan]]
  ['above | 'below | 'bothAboveBelow] 
  ['sameMetalOverlap | 'fullyEnclosed] 
  [f_default]
  ['otherWidth g_otherWidth] 
 )
 (g_table)
)
) ;spacingTables

Specifies the minimum number of cuts that a via object or a via instance must contain when connecting two wide wires or a wide wire and a pin. The number of via cuts required depends on the width of the wires. If 'distanceWithin is specified, only the via cuts that are within the specified distance from each other are counted.

Usually, wide wires carry more current, and if you change layers between two wide wires, you need a sufficient number of via cuts to carry an equivalent amount of current. Using multiple via cuts, instead of just one, also increases reliability.

The minNumCut constraint can be specified in the following constraint groups:

Values

tx_cutLayer

The cut layer on which the constraint is applied.

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

"width" nil nil

This identifies the index for table.

g_table

The format of the table is as follows:

(f_width x_numberOfCuts)

where,

  • f_width is the width of the wire. The width of the wire must be greater than or equal to this value for the number of corresponding via cuts to apply.
  • x_numberOfCuts is the minimum number of cuts that a via must contain.

Type: A 1-D table specifying floating-point width values and the number of via cuts required corresponding to different widths

Parameters

'cutClass {f_width | (f_width f_length) | t_name}

  

The cut class to which the constraint applies, 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

'diffCutClass

(Virtuoso Layout Suite EXL and higher tiers) This parameter specifies that if there is one cut belonging to the cut class in a wide wire, there must be at least the specified cut number minus 1 cuts not belonging to the cut class.

'distanceWithin f_within

The distance between the via cuts must be less than this value for the via cuts to be counted.

'distanceMeasureType

(Virtuoso Layout Suite EXL and higher tiers) This parameter specifies that the within distance should be measured as a euclidian or manhattan. The default is euclidian.

'above | 'below | 'bothAboveBelow

  

The wire that is used to determine the number of cuts required. By default, the number of cuts required is determined based on the width of the wider of the two wires.

  • 'above: The number of cuts required is determined based on the width of the wire on the layer above.
  • 'below: The number of cuts required is determined based on the width of the wire on the layer below.
  • 'bothAboveBelow: (Virtuoso Advanced Node for Layout Standard) The number of cuts required is determined based on the width of the narrower of the two wires.

'sameMetalOverlap | 'fullyEnclosed

The minimum number of cuts required is determined based on the width of the wider wire.

  • 'sameMetalOverlap: (Virtuoso Advanced Node for Layout Standard) The constraint applies only if the overlap between the wires on the layers above and below the cut layer contains the via cuts and partly covers the wider wire. The via cuts need not overlap the wider wire.
  • 'fullyEnclosed: (Virtuoso Advanced Node for Layout Only) All via cuts must be completely inside a wide wire to be counted against the minimum via cut requirement.

Type: Boolean

f_default

The number of cuts to be used when no table entry applies.

'otherWidth g_otherWidth

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if the wire width on the other layer is less than the specified value.

Examples

Example 1: minNumCut with above

The width of the wire on the layer above determines the number of cuts that a via must contain.

Example 2: minNumCut with bothAboveBelow

The width of the wires on the layers above and below determine the number of cuts that a via must contain.

Example 3: minNumCut with sameMetalOverlap

The width of the wider wire determines the number of cuts that a via must contain.

The via is contained in the overlap of the two wires, and this overlap partly covers the wider of the two wires.

Example 4: minNumCut with fullyEnclosed

The width of the wider wire determines the number of cuts that a via must contain.

All via cuts must be fully enclosed by the wide wire.


Return to top
 ⠀
X