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

Setting Spacing in Your Design

This topic covers how to set spacing for prBoundary and subcells.

Setting the prBoundary Spacing

If your design does not have existing routing outside of the prBoundary, you can use the environment variable, db.make_prboundary_blockage, to prevent the router from routing outside the prBoundary. You must set the variable prior to loading your design.

setvar db.make_prboundary_blockage true

When db.make_prboundary_blockage is set true when you load a design, blockage shapes for each routing layer are derived to represent the prBoundary and each of the blockage shapes is assigned a constraint group with the minBoundaryInteriorHalo constraint. This constraint specifies the minimum distance a shape on a specified layer must be from the enclosing prBoundary. The blockage shapes are used by the router and other functions, such as checking. If the minBoundaryInteriorHalo constraint is not already set, it defaults to one-half the minimum spacing (minSpacing) value. To change the minimum distance required between shapes and the enclosing prBoundary, use the set_layer_constraint command and specify the constraint group that is assigned to the prBoundary blockage shape. For example:

set_layer_constraint -layer Metal2 -constraint minBoundaryInteriorHalo -Value .3 -group myMetal2_minBoundaryInteriorHalo 

Setting Spacing for Subcells

When data is loaded for a lower level of the hierarchy, blockage representing the subcell at that level is created at the higher levels. By default, spacing is assigned to the blockage according to the set_treat_blockage_as_metal setting described in Handling Blockages. If there are routes in the subcell that require special spacing, such as two times the minimum spacing, that spacing can be assigned to the blockage at the higher levels by setting the db.load_as_detailed_abstract environment variable.

setvar db.load_as_detailed_abstract i_level

where i_level is the hierarchy level for the lower level shapes. minSpacing for the route spec attached to lower level routes or nets will be used for the corresponding blockage.

Related Topics

Preparing the Routing Environment


Return to top
 ⠀
X