Handling Blockages
All blockages and their constraints are loaded when you read in a design. To change this default behavior, you can set the following environment variables prior to loading the design:
-
db.load_blockagesdetermines whether to load standard cell blockages that originated in LEF. Default istrue. -
db.load_core_blockagesdetermines whether to load core cell blockages (usually top-level) that originated in the blockage section in DEF. Default istrue. -
db.enable_blockage_constraintsdetermines whether constraints for blockage shapes are read in. Default istrue.
By default, the minimum spacing required by blockages is used for block-to-neighboring shapes spacing, regardless of the spacing rules for the neighboring shapes. You can change the default behavior by using the Tcl command. This command uses four arguments to determine the way that blockages are treated: min_width, min_space, override, and force_min_space.
-
The
min_spaceandmin_widtharguments are mutually exclusive. These arguments determine how blockages without any pre-assigned constraints are to be treated.-
min_widthcauses the checker to treat all unassigned blockages as if they have an effective width equal to theminWidthrule for the current layer. Thus, the minimum spacing is determined based on theminWidthvalue. -
min_spacecauses the checker to use theminSpacingrule for the current layer as the minimum spacing for all unassigned blockages.
-
-
The
overrideargument causes all pre-assigned constraints to be ignored and themin_widthandmin_spacearguments determine the spacing to be used for all blockages. -
The
force_min_spaceargument, when set totrue, causes the checker to use the spacing required by blockages for blockage-to-neighboring shape spacing, rather than using the larger of the minimum spacing for the blockage and the neighboring shape.
Related Topics
Preparing the Routing Environment
Return to top