[BLOCKAGES numBlockages ; [- LAYER layerName [ + COMPONENT compName | + SLOTS | + FILLS | + PUSHDOWN | + EXCEPTPGNET ] [ + SPACING minSpacing | + DESIGNRULEWIDTH effectiveWidth ] {RECT pt pt | POLYGON pt pt pt ...} ... ;] ... [- PLACEMENT [ + COMPONENT compName | + PUSHDOWN | + SOFT | + PARTIAL maxDensity ] {RECT pt pt} ... ;] ... END BLOCKAGES]
The DEF BLOCKAGES are mapped to oaLayerBlockage or oaAreaBlockage. The blockage type is determined from the LAYER/SLOTS/FILLS/PLACEMENT attributes as shown in the following table.
DEF blockage type | oacBlockageTypeEnum |
---|---|
PLACEMENT | oacPlacementBlockageType |
LAYER FILLS | oacFillBlockageType |
LAYER SLOTS | oacSlotBlockageType |
LAYER | oacRoutingBlockageType |
The DEF LAYER BLOCKAGE maps to an oaLayerBlockage on the specified layer. The layer must exist in the technology database.
compName corresponds to the name of the instance (mapped into the DEF namespace) that is the owner of the blockage.
The SLOTS blockage type maps to oacSlotBlockageType as shown in the previous table.
The FILLS blockage type maps to oacFillBlockageType as shown in the previous table.
The BLOCKAGE PUSHDOWN attribute is stored in the oaBlockage pushDown flag. Use the following API to determine whether the PUSHDOWN attribute needs to be written (TRUE value returned) or not:
oaBoolean oaBlockage::isPushedDown() const
For dataModel 4, the EXCEPTPGNET attribute maps to the allowPGNet attribute of the blockage.
The EXCEPTPGNET parameter does not map to OpenAccess for earlier dataModels. A warning is issued if EXCEPTPGNET is found in this context in DEF.
This information is stored using an oacMinSpacing constraint in the constraint group for the blockage.
The BLOCKAGE DESIGNRULEWIDTH attribute is stored in the oaBlockage effectiveWidth attribute.
This information corresponds to the lower left and upper right points of the bounding box of a blockage.
This information corresponds to the points of a blockage.
The DEF PLACEMENT BLOCKAGE maps to an oaAreaBlockage.
compName corresponds to the name of the instance (mapped into the DEF namespace) that is the owner of the blockage.
The BLOCKAGE PUSHDOWN attribute is stored in the oaBlockage pushDown flag. Use the following API to determine whether the PUSHDOWN attribute needs to be written (TRUE value returned) or not:
oaBoolean oaBlockage::isPushedDown() const
The SOFT and PARTIAL parameters map to the oaAreaBlockage object. The maxDensity value for PARTIAL blockages is a float. The SOFT type blockage has a density value that depends on the dataModel. The value defaults to 0% for OpenAccess dataModel 4 and defaults to 100% for dataModel 3.
The SOFT and PARTIAL parameters map to the oaAreaBlockage object. The SOFT type blockage has a density value of 100%. The maxDensity value for PARTIAL blockages is a float. The value defaults to 0% for OpenAccess dataModel 4 and defaults to 100% for dataModel 3.
This information corresponds to the lower left and upper right points of the bounding box of a blockage.
Copyright © 2003-2008 Cadence Design Systems, Inc.
All rights reserved.