proute_cell_row
proute_cell_row
{-layers {s_layerName…} | -pin_layers {s_layerName…}}
-nets {s_netName…}
[ -routing_area {f_xlo f_ylo f_xhi f_yhi}]
[ -extend_to_boundary_with_pins [ true | false ]
| {-extend | -extend_long} [ true | false ]
[ -ring_layers {s_layerName…} ]
[ -partial_overlap [ true | false ] ] ]
[ -class_applies_to_top_level_rings [ true | false ] ]
[ -core_ring_layers {s_layerName…} ]
[ -direction {horizontal | vertical} ]
[ -ignore_obstacles [ true | false ] | -ignore_purposes {s_purposeName…} ]
[ -incomplete_rings [ true | false ] ]
[ -class1 {s_className …} ]
[ -class2 {s_className …} ]
[ -class3 {s_className …} ]
[ -class4 {s_className …} ]
[ -class5 {s_className …} ]
[ -stop_at_rings_of_class1 {s_className…} [ -ring_layers1 {s_layerName…} ] ]
[ -incomplete_rings1 [ true | false ] ]
[ -stop_at_rings_of_class2 {s_className…} [ -ring_layers2 {s_layerName…} ]]
[ -incomplete_rings2 [ true | false ] ]
[ -stop_at_rings_of_class3 {s_className…} [ -ring_layers3 {s_layerName…} ] ]
[ -incomplete_rings3 [ true | false ] ]
[ -stop_at_rings_of_class4 {s_className…} [ -ring_layers4 {s_layerName…} ] ]
[ -incomplete_rings4 [ true | false ] ]
[ -stop_at_rings_of_class5 {s_className…} [ -ring_layers5 {s_layerName…} ] ]
[ -incomplete_rings5 [ true | false ] ]
[ -all_term_types {core_ring | block_ring | stripes | cell_row_straps
| unknown} ]
[ -ignore_blockage_of_class {s_className…} ]
[ -stop_at_boundary_of_class {s_className…}
[ -boundary_clearance {f_clearanceValue
| {f_leftValue f_bottomValue f_rightValue f_topValue}} ] ]
[ -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}} ] ]
[ -max_msg_count i_count ]
[ -max_row_gap f_userunit ]
[ -power_only [ true | false ] ]
[ -row_end [ true | false ] ]
[ -silent [ true | false ] ]
[ -undoable [ true | false ] ]
[ -use_cellname_as_class [ true | false ] ]
Description
Adds straps along aligned pins of standard cells.
For faster processing, you can use proute_row_straps, which requires that rows be defined and that the placement of the straps for those rows be carefully specified.
signalType property for the net. If the net is not specified as power or ground, you must either change the property value or specify -power_only false to route the cell row straps. Specifying Block Boundary Clearances
You can prevent straps from extending across block boundaries by specifying the class of macro blocks in a list given by one of the stop_at_boundary_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 argument. For the boundary clearance, if a single value is given, it applies to all four sides of the block. 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 to the end of the strap. Negative values indicate the distance inward from the block boundary to the end of the strap.
Arguments
|
|
||
|
Treats the given classes of macro block terminals on specified ring layers as this power type. |
||
|
|
||
|
Specifies the clearance for blocks of the class given by |
||
|
|
||
|
Specifies the clearance for blocks of the class given by the |
||
|
|
||
|
Specifies the clearance for blocks of the class given by the |
||
|
|
||
|
Specifies the clearance for blocks of the class given by |
||
|
|
||
|
Specifies the clearance for blocks of the class given by |
||
|
|
||
|
Specifies the clearance for blocks of the class given by |
||
|
Stops strap extensions at top-level block rings around blocks whose class is specified in the “of class” arguments. |
||
|
Specifies a list of classes of macro blocks that belong to class1 for “of_class1” arguments. |
||
|
Specifies a list of classes of macro blocks that belong to class2 for “of_class2” arguments. |
||
|
Specifies a list of classes of macro blocks that belong to class3 for “of_class3” arguments. |
||
|
Specifies a list of classes of macro blocks that belong to class4 for “of_class4” arguments. |
||
|
Specifies a list of classes of macro blocks that belong to class5 for “of_class5” arguments. |
||
|
If |
||
|
Limits the layers of core-ring segments for determining the core ring bounds. If this is not specified, then |
||
|
If |
||
|
Same as |
||
|
When
Default: |
||
|
Ignores the blockages in macro blocks that belong to a class in this list. |
||
|
When |
||
|
Similar to |
||
|
When |
||
|
When |
||
|
When |
||
|
When |
||
|
When |
||
|
When |
||
|
Specifies the maximum number of message for each message type to output. |
||
|
Specifies the largest cell-row gap to be connected. By default, all aligned standard cells in each row are strapped, regardless of gap distance. |
||
|
If |
||
|
If |
||
|
(Applies only when - |
||
|
Specifies the ring layers for |
||
|
Specifies the ring layers for |
||
|
Specifies the ring layers for |
||
|
Specifies the ring layers for |
||
|
Specifies the ring layers for |
||
|
Specifies the outer bounds for the area of the standard cells to add straps to. Connects only pins that intersect the area and extends cell row straps to the area bounds. |
||
|
If true, routes standard cells to the end of the defined rows. By default, standard cells are routed only to the last cell in the row. |
||
|
When |
||
|
Stops strap extensions at the boundary of macro blocks that belong to a class in this list. Use |
||
|
Stops strap extensions at the boundary of macro blocks that belong to a class in this list. Use |
||
|
Stops strap extensions at the boundary of macro blocks that belong to a class in this list. Use |
||
|
Stops strap extensions at the boundary of macro blocks that belong to a class in this list. Use |
||
|
Stops strap extensions at the boundary of macro blocks that belong to a class in this list. Use |
||
|
Stops strap extensions at the boundary of macro blocks that belong to a class in this list. Use |
||
|
Stops strap extensions at the internal block rings of macro blocks that belong to a class in the given list. |
||
|
Stops strap extensions at the internal block rings of macro blocks that belong to a class in the given list. |
||
|
Stops strap extensions at the internal block rings of macro blocks that belong to a class in the given list. |
||
|
Stops strap extensions at the internal block rings of macro blocks that belong to a class in the given list. |
||
|
Stops strap extensions at the internal block rings of macro blocks that belong to a class in the given list. |
||
|
Permits this command to be undone. Default is the current setting for the |
||
|
Allows specification of cellnames instead of class names for the |
||
Examples
The following figure shows examples that illustrate how the row_end, max_row_gap, and extend_to_boundary_with_pins arguments can be used to control the placement of standard cell row straps.

Example 1 — Strap to the Last Cell in Each Row (Default)
proute_cell_row -layers met1 -nets {VDD VSS}
Example 2 — Strap to the End of Rows
proute_cell_row -layers met1 -nets {VDD VSS} -row_end
Example 3 —Strap with Maximum Row Gap Size
proute_cell_row -layers met1 -nets {VDD VSS} -max_row_gap 20
Example 4— Strap to the prBoundary with Pins
proute_cell_row -layers met1 -nets {VDD VSS} -extend_to_boundary_with_pins true
Related Topics
Return to top