oaBlockage Class Reference

Inheritance diagram for oaBlockage:

oaFig oaBlockObject oaDesignObject oaObject oaAreaBlockage oaAreaHalo oaLayerBlockage oaLayerHalo oaLayerRangeBlockage oaLayerRangeHalo


Public Methods

oaBlockageType getBlockageType () const
oaBlockObjectgetOwner () const
oaUInt4 getNumPoints () const
void getPoints (oaPointArray &points) const
oaFloat getDensity () const
void setOwner (oaBlockObject *owner)
void setPushedDown (oaBoolean flag)
void setDensity (oaFloat density)
oaBoolean isPushedDown () const

Public Types

enum  { dtIndex = oacBlockageDataType }

Detailed Description

The oaBlockage class of objects indicate areas in a design where certain object types cannot be located. The type of objects to exclude from these areas depends on the blockage type, as indicated by oaBlockageType.

Note: LayerBlockages (both oaLayerBlockage and oaLayerHalo) will never have a blockageType of oacPlacementBlockageType. AreaBlockages (both oaAreaBlockage and oaAreaHalo) always will be of type oacPlacementBlockageType, and this type is automatically set on oaAreaBlockages. For additional information on blockage types, see oaBlockageType.

All blockage types may be associated with an owner. The type of owner allowed depends on the type blockage . If a blockage has an associated owner, it will be moved and destroyed along with its owner.

The optional pushdown attribute indicates that this blockage has been pushed down from a higher level in the hierarchy. This is used in hierarchical designs where the blockage represents geometry that is in a parent block on top of a lower level block.

The screen, placement, and fill blockage types can have an optional density value, indicating the percentage of the area specified by the blockage that can be used by nets or fills respectively.

Blockages are not enforced by the database. The restrictions they specify are implemented by place and route tools.

The oaBlockage class can be observed by deriving from oaObserver<oaBlockage>.


Member Function Documentation

oaBlockageType oaBlockage::getBlockageType   const
 

This function returns the type of this blockage. The type determines which kinds of objects are being blocked.

oaFloat oaBlockage::getDensity   const
 

This function returns the value of the density attribute for this blockage as an integer percentage from 0 to 100. If a density attribute has not been set, the default value of 0 percent is returned.

oaUInt4 oaBlockage::getNumPoints   const
 

This function returns the number of points in the point array for this blockage.

oaInst * oaBlockage::getOwner   const
 

This function returns the owner of this blockage.

void oaBlockage::getPoints oaPointArray &    points const
 

This function fills out points with the points of this blockage.

For halo blockages, the point array is determined by applying each offset to all edges of the corresponding type defined by the pointArray for the owner. For a rectilinear boundary there may be multiple such edges. The left and bottom offsets are subtracted, while the right and bottom offsets are added.

When the owner of a halo blockage is an instance, the points in the blockage are calculated from the prBoundary of the instance's master. The instance's transform is included in the points for the halo blockage.

When the owner of a halo blockage is a prBoundary, the blockage represents a master-based blockage that is the default for all instances of the master. Master-based blockages are defined within the design for the master, but are used in the design that instantiates the master. The application is responsible for applying the instance's transform to a master-based blockage.

For area blockages, the points correspond directly to the point array specified for the blockage.

Parameters:
points The point array to fill out

oaBoolean oaBlockage::isPushedDown   const
 

This function returns a boolean value that indicates if this blockage has been pushed down from a higher level block.

void oaBlockage::setDensity oaFloat    density
 

This function sets the density attribute of this blockage. The density value is a percentage that must be between 0 and 100 inclusive. If density is not explicitly set, the density value defaults to 0.

Parameters:
density The density value

void oaBlockage::setOwner oaBlockObject *    owner
 

This function sets the owner of this blockage to the specified blockObject.

Parameters:
owner The blockObject to use as owner for this blockage

void oaBlockage::setPushedDown oaBoolean    flag
 

This function sets or unsets the flag that indicates if this blockage has been pushed down from a cell higher in the view hierarchy.

Parameters:
flag Boolean to indicate push down status


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


The documentation for this class was generated from the following files:

Return to top of page