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

adjust_vias

adjust_vias
[ -set d_setObj | -net s_netName | -region {f_xlo f_ylo f_xhi f_yhi} ] 
[ -annotate [all | none | unfixed | moved | replaced] ]
[ -annotation_limit i_limit ]
[ -center_origin [ true | false ] ] 
[ -check_minedge [ true | false ] ] 
[ -check_mode {soft | hard}] 
[ -clear_annotations [ true | false ] ] 
[ -create_custom_via [ true | false ] ] 
[ -disable_checks {all | min_edge_length | same_net_crossings} ] 
[ -do_via_layers {s_layerName…} ] 
[ -edgelength [ true | false ] ] 
[ -exclude_nets {s_netName…} ] 
[ -exclude_set d_setObj ] 
[ -extension [ true | false ] ]
[ -filter_minarea [ true | false ] ]
[ -ignore_active_route_status [ true | false ] ] 
[ -lock_layers {s_layerName…} ] 
[ -maintain_stack [ true | false ] 
[ -maximize_numcuts [ true | false ] ] 
[ -minarea [ true | false ] ] 
[ -minspacing [ true | false ] ] 
[ -no_remaster [ true | false ] ] 
[ -no_repaint [ true | false ] ] 
[ -numcuts [ true | false ] ] 
[ -offset_via [ true | false ] 
  [ -adjust_origin [ true | false ] ] 
  [ -use_best_rule_spec [ true | false ] ] ] 
[ -protrusion_numcuts [ true | false ] ] 
[ -push [ true | false ] ] 
[ -push_vias [ true | false ] ] 
[ -swap_vias [ true | false ] ] 
[ -top_level_only [ true | false ] ] 
[ -use_best_cost [ true | false ] ]
[ -use_grid {mfg | route} ]

Description

Moves, rotates, or replaces vias to fix via wire extension, edge length, area, spacing, and numcut violations. You can also rotate vias to align edges. The scope can be limited to vias in a given set, a given net, or a given region and on specific cut layers. By default, all vias in the entire design are processed.

Arguments

-adjust_origin [ true | false ]

(Only applies with -offset_via true) Adds a new stdVia with an adjusted origin so that connecting wires do not need to be added to maintain centerline connectivity. By default and when this argument is set to false, connecting wires are added to the offset via if needed to maintain centerline connectivity.

-annotate [ all | none | unfixed | moved | replaced ]

  

Specifies which types of adjustments to annotate. The annotations are listed under AdjustVia in the Optimizations page of the Annotation Browser and are added to the annotation:viaOpt purpose of the via layer. By default, annotations are not added.

  

all

Adds annotations for all adjustment types.

none

Omits annotations.

moved

Adds annotations for vias that are moved.

replaced

Adds annotations for vias that are replaced.

unfixed

Adds annotations for vias that are not fixed.

-annotation_limit i_count

Specifies the maximum number of annotations that can be added for a net on a cut layer. The default value is 1000.

-center_origin

Replaces vias with off-center origins with matching vias with centered origins. Vias are considered to have off-centered origins if their origin is not in the center of their bounding box nor the center of the cuts. Default is false.

-check_minedge [ true | false ]

  

When true, via adjustments that create minimum edge violations are not permitted. When false, via adjustments that create minimum edge violations are permitted.

Default: true

-check_mode { soft | hard }

Enables hard or soft constraint lookups.

Default: hard

-clear_annotations

Removes existing adjust vias annotations before adding new ones.

-create_custom_via

Specifies that if no available vias correct the violation, a stdVia should be created to fix the problem. In this case, symbolic routes to which stdVias were added will be converted to geometric routes.

Default: stdVias are not created.

-disable_checks {all | min_edge_length | same_net_crossings}

Suppresses the specified type of design rule checking. By default, all vias that are modified by this command will be DRC clean. Use of this option may result in design rule violations.

all

No design rule checking is performed.

min_edge_length

Suppresses edge length checks.

same_net_crossings

Suppresses same net crossing checks.

-do_via_layers {s_layerName }

Restricts processing to the specified cut layers. If not specified, all via layers are processed.

-edgelength

Indicates whether vias with edge length violations should be fixed.

Default: Adjustments are only attempted for vias with extension and/or numcut violations.

-exclude_nets {s_netNames…}

Specifies the names of nets to exclude from processing.

-exclude_set d_setObj

Excludes nets, routes and vias in the set from processing.

-extension

Indicates whether vias with extension violations should be fixed. By default, vias with extension violations are fixed.

-filter_minarea [ true | false ]

If true, potential minArea violations are ignored for vias that have a connecting guide on the same layer.

Default: false

-ignore_active_route_status [ true | false ]

  

When true, vias belonging to fixed routes are also processed.

Default: (false) Vias belonging to fixed routes are skipped.

-lock_layers {s_layerName…}

Prevents metal layers in the list from being changed.

-maintain_stack

Specifies whether via stacks should be maintained and moved as a unit if any via in the stack is moved.

Default: (false) Vias are moved independently even when they are part of a stack.

-maximize_numcuts

Specifies that if the best cost via is used, the vias should be costed considering the number of cuts. By default, the via with the best cost will be picked, but not necessarily the largest number of cuts.

-minarea

Indicates whether vias with minimum area violations should be fixed.

Default: Adjustments are only attempted for vias with extension and/or numcut violations.

-minspacing

Indicates whether minimum spacing violations should be fixed.

Default: Minimum spacing violations are ignored.

-net s_netName

Limits processing to vias on the given net. By default, vias in the entire design are processed.

-no_remaster

Specifies whether via remastering is permitted. If true, via remastering is permitted.

Default: (false) Vias can be changed to a different master occurrence.

-no_repaint

Disables screen repaint after vias are adjusted. This argument is intended for use in scripts when the command is invoked multiple times in succession. Repainting the screen only after the last command is done can save time. By default the screen is repainted on completion of the command whenever vias have been adjusted.

-numcuts

Indicates whether vias with numcut violations should be fixed. By default, vias with numcut violations are fixed.

-offset_via [ true | false ]

When true, attempts to move vias to align one edge of the via with each connecting segment without creating a DRC violation. If multiple movements are possible, the smallest movement is attempted first. When equal moves are possible, the direction is arbitrarily chosen.

Default: false

-protrusion_numcuts [ true | false ]

  

Specifies whether vias with protrusion numcut violations should be fixed. By default, vias with protrusion numcut violations are not fixed.

-push

Permits pushing of route segments. By default, pushing of route segments is not permitted.

-push_vias

Permits pushing of route vias. By default, pushing of other route vias is not permitted.

-region {f_xlo f_ylo f_xhi f_yhi}

Limits processing to the given area (defined by the lower left and upper right coordinates). By default, vias in the entire design are processed.

-set d_setObj

Limits processing to vias in the given set. By default, vias in the entire design are processed.

-swap_vias

Overrides the validRoutingVias constraint and looks for the from via to swap with the to via.

-top_level_only

Restricts processing to top-level shapes.

-use_best_cost

Indicates that all vias should be evaluated and the via with the best cost should be used. By default, if the existing via can be moved to correct the violation, the via will be moved.

-use_best_rule_spec [ true | false ]

(Only applies with -offset_via true) Specify this argument when the vias being processed are at the intersection of two routes with different minWidth values in the respective rule specs so that the smaller of the two wire widths is used.

[ -use_grid {mfg | route} ]

Specifies the grid choices for via placement.

mfg

(Default) Manufacturing grid is used.

route

Routing grid is used.

Examples

The following example aligns one via edge with each connecting metal layer segment.

adjust_vias -offset_via true -extension false -numcuts false

Related Topics

Optimize Commands

check_vias


Return to top
 ⠀
X