GCellGrid(3)

NAME
GCellGrid - GCell Grid.

SYNOPSIS

Inherits Grid< GCell >.

  Public Types
enum DensityMode { AverageHVDensity =1, AverageHDensity =2, AverageVDensity =3, MaxHVDensity =4, MaxVDensity =5, MaxHDensity =6, MaxDensity =7 }

  Public Member Functions
Cell * getCell () const
KatabaticEngine * getKatabatic () const
unsigned int getDensityMode () const
size_t getHEdgeCapacity () const
size_t getVEdgeCapacity () const
Interval getUSide (unsigned int) const
size_t checkDensity () const
size_t updateDensity ()
void updateContacts (unsigned int flags=KbOpenSession)
void setDensityMode (unsigned int)

  Protected Member Functions
void _postCreate ()
void _preDestroy ()

  Static Protected Member Functions
static GCellGrid * create (KatabaticEngine *)

Detailed Description

GCell Grid. The GCell Grid of Katabatic. Although the base template class Grid support irregular grid, the GCellGrid is regular, following the Knik global router GCells. Only the topmost row and leftmost column may have different height or width to cope with the design real size.

Due to the regular nature of the grid, the horizontal & vertical edges capacities are all identical, and initialized from the Katabatic Configuration.

The grid is build from the Knik global routing, so obviously a KnikEngine must be attached to the Cell when building the GCellGrid. An error is thrown otherwise.

Member Enumeration Documentation

  enum DensityMode
Various ways of computing the overall density of a GCell.

Enumerator

AverageHVDensity
    The average density all depths accounted.

AverageHDensity
    The average density of horizontal layers.

AverageVDensity
    The average density of horizontal layers.

MaxHVDensity
    The maximum of the average horizontal & vertical densities taken as a whole.

MaxVDensity
    The maximum of the average vertical densities taken depth by depth.

MaxHDensity
    The maximum of the average horizontal densities taken depth by depth.

MaxDensity
    The maximum of the average horizontal & vertical densities taken depth by depth.

Member Function Documentation

  Cell * getCell () const
Returns: The associated Cell.

Referenced by GCellGrid::_postCreate().

  KatabaticEngine * getKatabatic () const [inline]
Returns: The associated KatabaticEngine.

  unsigned int getDensityMode () const [inline]
Returns: The computation mode of the GCell densities.

Referenced by GCell::getDensity().

  size_t getHEdgeCapacity () const [inline]
Returns: The horizontal edge capacity. As the matrix is regular it is identical for all horizontal edges.

Referenced by GCell::checkEdgeSaturation().

  size_t getVEdgeCapacity () const [inline]
Returns: The vertical edge capacity. As the matrix is regular it is identical for all vertical edges.

Referenced by GCell::checkEdgeSaturation().

  Interval getUSide (unsigned int direction) const
Returns: The side of the whole grid in direction.

References Box::getXMax(), Box::getXMin(), Box::getYMax(), Box::getYMin(), Katabatic::KbHorizontal, and Katabatic::KbVertical.

  size_t checkDensity () const
Returns: The number of GCell saturateds.

Check all GCells for saturations.

References Grid< GCell >::getGCells().

  size_t updateDensity ()
Returns: The number of GCell saturateds.

Force a density update on all the GCells.

References Grid< GCell >::getGCells().

  void updateContacts (unsigned int flags = KbOpenSession)
Force an update on all AutoContact on all the GCells. if openSession is true, enclose the update in a Session.

References Session::close(), Grid< GCell >::getGCells(), Katabatic::KbOpenSession, and Session::open().

Referenced by KatabaticEngine::refresh().

  void setDensityMode (unsigned int mode) [inline]
Sets the density computation mode.

  void _postCreate () [protected], [virtual]
Perform the GCell & GCell vector allocation.

•   Read the horizontal and vertical cut lines from Knik and translate them into BaseGrid::Axis.

•   From the BaseGrid::Axis, deduces the exact positions of the GCells and allocate them.

•   The GCell allocation is done in a 'row by row' fashion consistent with BaseGrid implicit assumptions.

Reimplemented from BaseGrid.

References BaseGrid::Axis::addGraduation(), GCellGrid::getCell(), BaseGrid::getColumns(), BaseGrid::getRows(), BaseGrid::Axis::getSize(), and BaseGrid::Axis::sort().

  void _preDestroy () [protected], [virtual]
The GCells are deleted at this point.

Reimplemented from BaseGrid.

  GCellGrid * create (KatabaticEngine * ktbt) [static], [protected]
API-space contructor.

References grid().

Referenced by KatabaticEngine::createDetailedGrid().

Author

Generated automatically by Doxygen for Katabatic - Routing Toolbox from the source code.