balance_route
balance_route
{-set d_setObj | -net1 s_netName -net2 s_netName}
-spine_on_layers {s_layerName…}
[ -ignore_pins_in_instances {s_instanceName…}
| -ignore_pins_in_set d_setObj ]
[ -half_shield [ true | false ] ]
[ -multiple_spines [ true | false ] ]
[ -pin_pair_dist f_distance ]
[ -spine_dist f_distance ]
[ -tie_pins_to_spine [ true | false ] ]
Description
Balances the geometry for clock pairs in a given set (-set), or for a single net pair (-net1 -net2). By default, a single spine is created, but multiple spines can be used (-multiple_spines true).
To get a list of net pairs ordered by decreasing calculated spine length, run report_balanced_length. Then use the list to balance route the net pairs in order for the best results.
Power should be routed before using this command because the router will attempt to snap the spine to power rails.
Arguments
|
-half_shield [ true | false ]
|
|
|
When true, half-shields each net of a given clock pair with an existing power rail. When false, only one net of each clock pair is half-shielded.
Default: true
|
|
-ignore_pins_in_instances {s_instanceName…}
|
|
|
Ignores pins for the specified instances when placing the spine. The ignored pins will be connected but will not influence the position of the spine.
|
|
-ignore_pins_in_set d_setObj
|
|
|
Ignores pins for the instances in the set when placing the spine. The ignored pins will be connected but will not influence the position of the spine.
|
|
-multiple_spines {true|false ] ]
|
|
|
When true, creates multiple spines close to pin pairs. When false, taps connect pins to a single spine. Default: false
|
|
-net1 s_netName
|
Balance routes the specified net with the net given by -net2.
|
|
-net2 s_netName
|
Balance routes the specified net with the net given by -net1.
|
|
-pin_pair_dist f_distance
|
|
|
Pairs pins of the nets for balance routing when pins are within the specified distance (in microns) of each other. Pins that are not paired will not be considered when generating the spine, but will be routed. If no pairs are found that meet the distance criteria, no routing will be done.
Default: 0.5
|
|
-set d_setObj
|
Balance routes nets in the set.
|
|
-spine_dist f_distance
|
Will consider clustering pins into a single spine if they are within the specified distance.
Default: pin_pair_dist*2
|
|
-spine_on_layers {s_layername…}
|
|
|
Creates spines on the specified layers.
|
|
-tie_pins_to_spine [ true | false ]
|
|
|
If true, ties pins to the generated spine. If false, pins in the net are not tied to the spine, but guides are drawn to indicate where pin connections are needed. Default: true
|
Examples
The following figure shows how the half_shield argument affects the placement of balanced routes.
The following figure shows a generalized example of balance routing using a single spine (default) compared with multiple spines.
The following command balances routes on nets N1 and N2 using multiple spines and with half-shields on both nets. When creating the spine, pins of instance INST1 are ignored, only pin pairs from N1 and N2 that are within 0.7 microns of each other will influence the placement of the spine, and layers M1 and M2 will be used to the route the spine.
balance_route -net1 N1 -net2 N2 -spine_on_layers {M1 M2} -ignore_pins_in_instances INST1 -pin_pair_dist 0.7 -multiple_spines true -half_shield true
Related Topics
Specialty Route Commands
report_balanced_length
report_net_stats
Return to top