Kite - Detailed Router


Public Member Functions | Static Public Member Functions | List of all members
RoutingPlane Class Reference

Array of Tracks in one Layer. More...

Public Member Functions

bool isHorizontal () const
 
bool isVertical () const
 
KiteEnginegetKiteEngine () const
 
RoutingLayerGaugegetLayerGauge () const
 
unsigned int getDirection () const
 
size_t getDepth () const
 
DbU::Unit getAxisMin () const
 
DbU::Unit getAxisMax () const
 
DbU::Unit getTrackMin () const
 
DbU::Unit getTrackMax () const
 
RoutingPlanegetTop () const
 
RoutingPlanegetBottom () const
 
const LayergetLayer () const
 
const LayergetBlockageLayer () const
 
size_t getTracksSize () const
 
size_t computeTracksSize () const
 
DbU::Unit getTrackPosition (size_t index) const
 
TrackgetTrackByIndex (size_t index) const
 
TrackgetTrackByPosition (DbU::Unit axis, unsigned int mode=KtNearest) const
 
bool _check (unsigned int &overlaps) const
 

Static Public Member Functions

static RoutingPlanecreate (KiteEngine *, size_t depth)
 

Detailed Description

Array of Tracks in one Layer.

A RoutingPlane is an array of Track covering a rectangular area. For now the area is the abutment box of the to be routed Cell. Tracks are spaced evenly and according to the configuration of the relevant RoutingLayerGauge.

RoutingPlane-1.png
Fig 1: Horizontal RoutingPlane

Member Function Documentation

RoutingPlane * create ( KiteEngine engine,
size_t  depth 
)
static
Parameters
engineThe associated engine.
depthThe Layer depth of the plane.
Returns
The newly created RoutingPlane.

The RoutingPlane public constructor. The depth is in the sense of the RoutingGauge.

bool isHorizontal ( ) const
inline

Returns: true if the preferred routing direction is horizontal (the actual direction of the tracks).

bool isVertical ( ) const
inline

Returns: true if the preferred routing direction is vertical (the actual direction of the tracks).

KiteEngine * getKiteEngine ( ) const
inline

Returns: The associated KiteEngine.

Referenced by Track::getKiteEngine().

RoutingLayerGauge * getLayerGauge ( ) const
inline

Returns: The RoutingLayerGauge of the plane.

Referenced by RoutingPlane::getBlockageLayer(), and RoutingPlane::getLayer().

unsigned int getDirection ( ) const
inline
size_t getDepth ( ) const
inline

Returns: The depth of the associated layer (as defined by the RoutingLayerGauge).

Referenced by Track::getDepth().

size_t getAxisMin ( ) const
inline

Returns: The axis coordinate of the first/lowest track.

size_t getAxisMax ( ) const
inline

Returns: The axis coordinate of the last/highest track.

size_t getTrackMin ( ) const
inline

Returns: The minimum bound of all track.

size_t getTrackMax ( ) const
inline

Returns: The maximum bound of all track.

RoutingPlane * getTop ( ) const

Returns: The RoutingPlane immediatly above this one.

RoutingPlane * getBottom ( ) const

Returns: The RoutingPlane immediatly below this one.

const Layer * getLayer ( ) const
inline

Returns: The associated routing layer.

Referenced by Track::getLayer().

const Layer * getBlockageLayer ( ) const
inline

Returns: The blockage layer associated to the routing layer.

Referenced by Track::getBlockageLayer().

size_t getTracksSize ( ) const
inline

Returns: The number of tracks in the array.

size_t computeTracksSize ( ) const
inline

Returns: The number of tracks to create in the array.

Helper method that compute the number of tracks in the array from the area of the Cell to be routed and the RoutingLayerGauge characteristics (the Cell is accessible through the KiteEngine).

Referenced by RoutingPlane::create().

DbU::Unit getTrackPosition ( size_t  index) const
inline

Returns: The axis of the track at index in the array.

Track * getTrackByIndex ( size_t  index) const

Returns: The track at index in the array.

Referenced by Track::getNextTrack(), and Track::getPreviousTrack().

Track * getTrackByPosition ( DbU::Unit  axis,
unsigned int  mode = KtNearest 
) const

Returns: The track which position is nearest from axis. The meaning of nearest is defined by mode (classic rouding options).

Referenced by SegmentFsm::conflictSolveByPlaceds(), NegociateWindow::createTrackSegment(), RoutingEvent::revalidate(), Manipulator::ripupPerpandiculars(), and SegmentFsm::SegmentFsm().

bool _check ( unsigned int &  overlaps) const

Returns: true if no errors have been found (i.e. the database is coherent).

Perform a coherency check on all tracks part of the array.


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


Generated by doxygen 1.8.5 on Sat Aug 18 2018 Return to top of page
Kite - Detailed Router Copyright © 2008-2016 UPMC. All rights reserved