Product Documentation
Virtuoso Space-based Router Command Reference
Product Version IC23.1, September 2023

proute_create_via_array

proute_create_via_array
{-set d_setObj | {-via_defs { s_viaDefName…} -net s_netName}} 
-x_start f_x 
-y_start f_y 
-x_step f_xStep 
-y_step f_yStep 
-x_stop f_x 
-y_stop f_y 
[ -class1 {s_className …} ] 
[ -class2 {s_className …} ] 
[ -class3 {s_className …} ] 
[ -class4 {s_className …} ] 
[ -class5 {s_className …} ] 
[ -stop_at_boundary_of_class1 {s_className} [ -boundary_clearance1 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_boundary_of_class2 {s_className} [ -boundary_clearance2 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_boundary_of_class3 {s_className} [ -boundary_clearance3 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_boundary_of_class4 {s_className} [ -boundary_clearance4 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_boundary_of_class5 {s_className} [ -boundary_clearance5 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -prBoundary_clearance {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}] 
[ -stop_at_halo_of_class1 {s_className} [ -halo_clearance1 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ]
[ -stop_at_halo_of_class2 {s_className} [ -halo_clearance2 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_halo_of_class3 {s_className} [ -halo_clearance3 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_halo_of_class4 {s_className} [ -halo_clearance4 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -stop_at_halo_of_class5 {s_className} [ -halo_clearance5 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ] 
[ -use_cellname_as_class [ true | false ] ]
[ -use_checker [ true | false ] ]
[ -check_metal_below [ true | false ] ]
[ -check_metal_above [ true | false ] ]
[ -color { ColorGray | ColorRed | ColorBlue | ColorYellow } ]
[ -color_status { ColorMutable | ColorLocked } ]
[ -use_regions_on_scratch_layer i_scratchLayerID ]
[ -avoid_regions_on_scratch_layer i_scratchLayerID ]
[ -undoable [ true | false ] ]
[ -silent [ true | false ] ]
[ -threads i_count ]
[ -threads i_threads ]
[ -slices i_slices ]

Description

Creates an array of selected vias at specific locations.

Specifying Boundary or Halo Clearances

You can prevent vias from extending across block boundaries or halos by using the stop_at_boundary_of_class and/or stop_at_halo_of_class arguments. Up to five unique lists of classes can be specified, each with a different clearance specification, given by the corresponding boundary_clearance or halo_clearance argument. For the clearance, if a single value is given, it applies to all four sides of the block or halo. If a list of four values is given, they must be given in the exact order of left, bottom, right, and top. Positive values are measured outward from the block boundary or halo; negative values are measured inward from the block boundary or halo.

Arguments

-avoid_regions_on_scratch_layer i_scratchLayerID

If true, prevents the creation of vias inside the regions defined by the shapes on the given scratch layer.

To create shapes on a scratch layer, refer to geom_add_shape.

Default: false (all locations are valid)

-boundary_clearance1 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for blocks of the class given by the stop_at_boundary_of_class1 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-boundary_clearance2 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for blocks of the class given by the stop_at_boundary_of_class2 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-boundary_clearance3 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for blocks of the class given by the stop_at_boundary_of_class3 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-boundary_clearance4 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for blocks of the class given by the stop_at_boundary_of_class4 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-boundary_clearance5 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for blocks of the class given by the stop_at_boundary_of_class5 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-check_metal_above [ true | false ] ]

If true, prevents via from being created if not covered by metal above.

Default: false

-check_metal_below [ true | false ] ]

If true, prevents via from being created if not covered by metal below.

Default: false

-class1 {s_className…}

Specifies a list of classes of macro blocks that belong to class1 for “of_class1” arguments.

-class2 {s_className…}

Specifies a list of classes of macro blocks that belong to class2 for “of_class2” arguments.

-class3 {s_className…}

Specifies a list of classes of macro blocks that belong to class3 for “of_class3” arguments.

-class4 {s_className…}

Specifies a list of classes of macro blocks that belong to class4 for “of_class4” arguments.

-class5 {s_className…}

Specifies a list of classes of macro blocks that belong to class5 for “of_class5” arguments.

-color {ColorGray | ColorRed | ColorBlue | ColorYellow}

  

Mark power shapes with this color.

Default: ColorGray

-color_status {ColorMutable | ColorLocked}

Mark power shapes with this color status.

Default: ColorMutable

-halo_clearance1 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for the stop_at_halo_of_class1 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-halo_clearance2 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for the stop_at_halo_of_class2 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-halo_clearance3 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for the stop_at_halo_of_class3 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-halo_clearance4 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for the stop_at_halo_of_class4 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-halo_clearance5 {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the clearance for the stop_at_halo_of_class5 argument. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances. If not specified, zero spacing applies.

-net s_netName

Specifies the name of the net to use for vias created from the viaDefs.

-prBoundary_clearance {f_clearanceValue | {f_leftValue f_bottomValue f_rightValue f_topValue}}

  

Specifies the extra allowed clearance from the design prBoundary. For an explanation of the argument value, refer to Specifying Boundary or Halo Clearances.

-set d_setObj

Set of vias to copy into the array.

-silent [ true | false ]

When true, outputs no messages. When false, all message types are output.

Default: false

-slices i_slices

Specifies the number of region slices in each direction for connecting stripe sections.

Default: 10

-stop_at_boundary_of_class1 {s_className…}

  

Prevents inserting objects inside the boundary of macro blocks that belong to a class in this list. If this list is empty, then classes from class1 are used.

-stop_at_boundary_of_class2 {s_className…}

  

Prevents inserting objects inside the boundary of macro blocks that belong to a class in this list. If this list is empty, then classes from class2 are used.

-stop_at_boundary_of_class3 {s_className…}

  

Prevents inserting objects inside the boundary of macro blocks that belong to a class in this list. If this list is empty, then classes from class3 are used.

-stop_at_boundary_of_class4 {s_className…}

  

Prevents inserting objects inside the boundary of macro blocks that belong to a class in this list. If this list is empty, then classes from class4 are used.

-stop_at_boundary_of_class5 {s_className…}

  

Prevents inserting objects inside the boundary of macro blocks that belong to a class in this list. If this list is empty, then classes from class5 are used.

-stop_at_halo_of_class1 {s_className…}

  

Prevents inserting objects inside the halo of macro blocks that belong to a class in this list. If this list is empty, then classes from class1 are used.

-stop_at_rings_of_class2 {s_className…}

  

Prevents inserting objects inside the halo of macro blocks that belong to a class in this list. If this list is empty, then classes from class2 are used.

-stop_at_rings_of_class3 {s_className…}

  

Prevents inserting objects inside the halo of macro blocks that belong to a class in this list. If this list is empty, then classes from class3 are used.

-stop_at_rings_of_class4 {s_className…}

  

Prevents inserting objects inside the halo of macro blocks that belong to a class in this list. If this list is empty, then classes from class4 are used.

-stop_at_rings_of_class5 {s_className…}

  

Prevents inserting objects inside the halo of macro blocks that belong to a class in this list. If this list is empty, then classes from class5 are used.

-threads i_count

Specifies the number of threads or processors to use for checking. By default, if multi-threading has been enabled, the session threads are used, otherwise, a single processor is used.

-threads i_threads

Specifies the number of threads or processors to use in parallel for checking.

Default: 1

-undoable [ true | false ]

Permits this command to be undone. Default is the current setting for the proute.undoable environment variable which defaults to false on startup.

-use_cellname_as_class [ true | false ]

Allows specification of cellnames instead of class names for the *of_class* arguments.

-use_checker [ true | false ]

If true, run the checker on the new vias.

Default: true

-use_regions_on_scratch_layer i_scratchLayerID

If true, creates vias only inside the regions defined by the shapes on the given scratch layer.

To create shapes on a scratch layer, refer to “geom_add_shape”.

Default: false (all locations are valid)

-via_defs {s_viaDefName…}

Names of viaDefs for vias to use in the array.

-x_start f_x

The x-coordinate for the first copy of selected objects.

-x_step f_xStep

The x-distance between adjacent array locations.

-x_stop f_x

The x-coordinate limit for copies of selected objects.

-y_start f_y

The y-coordinate for the first copy of selected objects.

-y_step f_yStep

The y-distance between adjacent array locations.

-y_stop f_y

The y-coordinate limit for copies of selected objects.

Examples

The following example creates a 2 x 3 via array using the via definition for VIA_12, starting at x- and y-coordinates {100 200} with x-steps of 20 and y-steps of 30, and no vias added past {130 270}.

proute_create_via_array -via_defs {STACKEDVIA_12 STACKEDVIA_23 STACKEDVIA_34} \
-x_start 100 -y_start 200 -x_step 20 -y_step 30 \
-x_stop 130 -y_stop 270 \
-net {VDD}

The following example creates a three via layer stacked via array, using the via definitions for STACKEDVIA_12, STACKEDVIA_23, and STACKEDVIA_34, starting at the x- and y-coordinates of {100 2200}, with x-steps of 200 and y-steps of 30, and no vias added past {340 2520}.

proute_create_via_array -via_defs {STACKEDVIA_12 STACKEDVIA_23 STACKEDVIA_34} \
-x_start 100 -y_start 2200 -x_step 200 -y_step 30 \
-x_stop 340 -y_stop 2520 \
-net {VDD}

Related Topics

Power Route Commands


Return to top
 ⠀
X