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

validVias

interconnect(
( validVias ( t_viaName … ))

( validVias 
 (
   (( "width" nil nil "width" nil nil )
    'viaLayerDirection ((( "viaLayerDirection" )) (g_dirTable))
    l_default 
   )
   (g_table)
 )
)
) ;interconnect

Specifies a list of vias to be used to connect two wires, on two different layers, with width in a certain width range. Vias and via variants not listed by this constraint may not be recognized as valid routing vias. For more information about how to define vias and via variants, see Via Definitions in Virtuoso® Technology Data ASCII Files Reference.

Values

t_viaName

The names of valid routing vias or via variants.

"width" nil nil "width" nil nil

This identifies the index for table.

g_table

The via or via variant to be used to connect wires on different layers, depending on the width of the wires.

The table has the following format:

(f_width1 f_width2) (t_viaName …)

where,

  • f_width1 is the width of the wire on the bottom layer (layer1).
  • f_width2 is width of the wire on the top layer (layer2).
  • t_viaName is the via or via variant that can be used to connect the two wires. Valid values include the name of a via or a via variant or nil.

Type: A 2-D table specifying width and via or via variant names

Parameters

'viaLayerDirection

A pair of direction values corresponding to each entry in table. The first direction value applies to layer1 and the second direction applies layer2 in the via definition.

The table (dirTable) has the following format:

x_index ((t_direction1 t_direction2) (t_direction1 t_direction2) …)

where,

  • index is a positive integer value starting at 0.
  • direction1 and direction2 can be horizontal or vertical.

Type: A 1-D table specifying integer and string values

l_default

The vias to be used when no table entry applies.

Examples

Example 1: validVias

interconnect(
    ( validVias ("via2" "via3" "via4" "via5" "via2Variant1") )
) ;interconnect

Example 2: validVias (2-D table)

interconnect(
    ( validVias 
     (
(( "width" nil nil "width" nil nil)
(via2Variant1 via2)
)
(
(0.6 0.7) (via2 via2Variant1)
(0.8 0.9) (via3)
)
)
)
) ;interconnect

Example 3: validVias with viaLayerDirection

interconnect(
    ( validVias
     (
(( "width" nil nil "width" nil nil)
'viaLayerDirection ( (( "viaLayerDirection" ))
( 0 (("horizontal" "vertical") ("horizontal" "vertical"))
1 nil
2 nil
3 nil
)
)
(
(0.72 4.5 ) (M2_M1_FP M3_M2_FP)
(0.72 4.501) nil
(0.721 4.5 ) nil
(0.721 4.501) nil
)
)
)
) ;interconnect

Return to top
 ⠀
X