oaGCellPattern Class Reference

Inheritance diagram for oaGCellPattern:

oaBlockObject oaDesignObject oaObject


Public Methods

void destroy ()
oaBoolean isHorizontal () const
oaCoord getStartCoord () const
oaDist getSpacing () const
oaUInt4 getCount () const

Static Public Methods

oaGCellPattern * create (oaBlock *block, oaBoolean isHorizontal, oaCoord startCoord, oaDist spacing, oaUInt4 count)

Public Types

enum  { dtIndex = oacGCellPatternDataType }

Detailed Description

The oaGCellPattern class defines the position and number of GCells in the congestion map. GCells are used by global routers to keep statistics on the level of congestion of each area in the design. GCells are defined as a grid - possibly non uniform - covering the area of the design.

GCellPatterns can be horizontal or vertical and at least one of each must exist in a design for it to have a valid congestion map. Each GCellPattern declares a set of uniformly spaced edges that will divide the design area into columns or rows. GCellPatterns with isHorizontal set will define columns, and GCellPatterns with isHorizontal unset will define rows.

In the common case where there is a single GCellPattern for each direction, the pattern declares count edges that define count-1 columns or rows. These columns or rows will have indexes from 0 to count-2 in the oaCMap. The startCoord of the GCellPattern with isHorizontal set will be the left X coordinate of the first column and the startCoord of the GCellPattern with isHorizontal unset will define the bottom Y coordinate of the lowest row.

Non-uniform grids may be declared by using multiple GCellPatterns for a given direction. In this case OpenAccess will sort and merge the edges defined by all the GCellPatterns for a given direction. Coincident edges will be removed and the remaining edges will define the set of rows or columns that exist. It is allowed (though unusual) to have overlapping GCellPatterns.

See oaCMap for a discussion of how to access GCells and the data that is stored in them.

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


Member Function Documentation

oaGCellPattern * oaGCellPattern::create oaBlock *    block,
oaBoolean    isHorizontal,
oaCoord    startCoord,
oaDist    spacing,
oaUInt4    count
[static]
 

This function creates a new GCellPattern in the specified design with the specified attributes.

Parameters:
block The vlock in which to create the new GCellPattern
isHorizontal Determines if the pattern is horizontal
startCoord The starting coordinate for the pattern
spacing The spacing for the pattern
count The number of edges defined by the pattern
This will invalidate any previous values stored on the design's oaCMap.

void oaGCellPattern::destroy  
 

This function removes this pattern from the design. It will also invalidate any previous oaCMap.

oaUInt4 oaGCellPattern::getCount   const
 

This function gets the count value from this pattern.

oaUInt4 oaGCellPattern::getSpacing   const
 

This function gets the spacing from this pattern.

oaInt4 oaGCellPattern::getStartCoord   const
 

This function gets the starting coordinate from this pattern.

oaBoolean oaGCellPattern::isHorizontal   const
 

This function gets the flag indicating if this pattern is horizontal.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page