AutoContact H-Tee (two H, one V) More...
Public Member Functions | |
virtual AutoSegment * | getOpposite (const AutoSegment *) const |
virtual AutoSegment * | getPerpandicular (const AutoSegment *) const |
virtual AutoSegment * | getSegment (unsigned int) const |
virtual void | updateGeometry () |
virtual void | updateTopology () |
Public Member Functions inherited from AutoContact | |
Hook * | getBodyHook () |
Hook * | getAnchorHook () |
Component * | getAnchor () const |
Net * | getNet () const |
const Layer * | getLayer () const |
DbU::Unit | getX () const |
DbU::Unit | getY () const |
DbU::Unit | getDx () const |
DbU::Unit | getDy () const |
Point | getCenter () const |
Point | getPosition () const |
DbU::Unit | getWidth () const |
DbU::Unit | getHalfWidth () const |
DbU::Unit | getHeight () const |
DbU::Unit | getHalfHeight () const |
Components | getSlaveComponents () const |
void | setLayer (const Layer *) |
void | setWidth (DbU::Unit) |
void | setHeight (DbU::Unit) |
void | setSizes (DbU::Unit width, DbU::Unit height) |
void | setX (DbU::Unit) |
void | setY (DbU::Unit) |
void | setPosition (DbU::Unit width, DbU::Unit height) |
void | setPosition (const Point &) |
void | setDx (DbU::Unit) |
void | setDy (DbU::Unit) |
void | setOffset (DbU::Unit dx, DbU::Unit dy) |
virtual void | translate (const DbU::Unit &tx, const DbU::Unit &ty) |
bool | isInCreationStage () const |
bool | isInvalidated () const |
bool | isInvalidatedCache () const |
bool | isTurn () const |
bool | isTee (unsigned int direction) const |
bool | isHTee () const |
bool | isVTee () const |
bool | isFixed () const |
bool | hasBadTopology () const |
bool | canDestroy (unsigned int flags=0) const |
bool | canMoveUp (const AutoSegment *moved) const |
Contact * | base () const |
virtual const Name & | getName () const |
size_t | getId () const |
virtual Box | getBoundingBox () const |
GCell * | getGCell () const |
unsigned int | getMinDepth () const |
unsigned int | getMaxDepth () const |
void | getLengths (DbU::Unit *lengths, AutoSegment::DepthLengthSet &) |
virtual Box | getNativeConstraintBox () const |
Interval | getUConstraints (unsigned int direction) const |
DbU::Unit | getCBXMin () const |
DbU::Unit | getCBXMax () const |
DbU::Unit | getCBYMin () const |
DbU::Unit | getCBYMax () const |
Box | getConstraintBox () const |
Box & | intersectConstraintBox (Box &box) const |
void | invalidate (unsigned int flags=0) |
void | showTopologyError (const std::string &, unsigned int flags=0) |
virtual void | checkTopology () |
void | setGCell (GCell *) |
void | setCBXMin (DbU::Unit xMin) |
void | setCBXMax (DbU::Unit xMax) |
void | setCBYMin (DbU::Unit yMin) |
void | setCBYMax (DbU::Unit yMax) |
void | setConstraintBox (const Box &box) |
bool | restrictConstraintBox (DbU::Unit constraintMin, DbU::Unit constraintMax, unsigned int flags=KbWarnOnError) |
void | migrateConstraintBox (AutoContact *other) |
Static Public Member Functions | |
static AutoContactHTee * | create (GCell *, Net *, const Layer *) |
Static Public Member Functions inherited from AutoContact | |
static size_t | getAllocateds () |
static const Name & | getStaticName () |
Additional Inherited Members | |
Static Protected Member Functions inherited from AutoContact | |
static void | _getTopology (Contact *, Component *&anchor, Horizontal **&, Vertical **&, size_t) |
AutoContact H-Tee (two H, one V)
AutoContact to build an horizontal tee (two H, one V).
|
static |
gcell | The GCell into which create the AutoContact. |
net | The Net to which this AutoContact belongs. |
layer | The Layer of the AutoContact. |
Create a new AutoContactHTee.
References Katabatic::CntHTee, Katabatic::CntInCreationStage, and Contact::create().
|
virtual |
Returns: The other AutoSegment the same direction as reference
, this is only meaningful on AutoContactHTee or AutoContactVTee. If there is no opposite, NULL
is returned.
Implements AutoContact.
|
virtual |
Returns: The AutoSegment in the perpandicular direction to reference
, this is only meaningful on AutoContacTurn. It there is no unique perpandicular, NULL
is returned.
Implements AutoContact.
|
virtual |
Returns: The nth anchored AutoSegment. The index is significant:
Not all the indexes are filled for every AutoContact. For example Turn
have h1 and b1, and HTee
have h1, h2 and v1.
Implements AutoContact.
References AutoContact::_getTopology(), AutoContact::base(), DebugSession::close(), Katabatic::CntBadTopology, Katabatic::CntInvalidatedCache, AutoSegment::getDirection(), AutoContact::getNet(), AutoSegment::getY(), AutoSegment::invalidate(), AutoSegment::isCreated(), AutoSegment::isInvalidated(), Katabatic::KbHorizontal, Katabatic::KbPropagate, Katabatic::KbVertical, Session::lookup(), DebugSession::open(), and AutoContact::showTopologyError().
|
virtual |
Compute the new position of the AutoContact based on the AutoSegment positions. The Session mechanism ensure that all AutoSegment are set into their final positions before calling this updator.
Implements AutoContact.
References AutoContact::base(), DebugSession::close(), Katabatic::CntInvalidated, AutoContact::getNet(), AutoContact::getX(), AutoContact::getY(), AutoContact::hasBadTopology(), Go::invalidate(), AutoContact::isInvalidatedCache(), DebugSession::open(), AutoContact::setX(), and AutoContact::setY().
|
virtual |
Restore the topology (i.e. connexity) of the contact after any number of connected segments has changed layer (at least one, up to three).
For any configuration, the connexity can be restored by making only one dogleg.
We distinguish two kind of layer changes:
h1
and h2
) are still on the same layer (either they both moved or the vertical only has moved, see figures 2 & 4). In that case, the dogleg is made on the vertical.Implements AutoContact.
References DebugSession::close(), Katabatic::CntBadTopology, RoutingGauge::getContactLayer(), AutoContact::getLayer(), RoutingGauge::getLayerDepth(), AutoContact::getNet(), Session::getRoutingGauge(), RoutingGauge::getRoutingLayer(), AutoContact::hasBadTopology(), AutoSegment::invalidate(), AutoContact::isInvalidatedCache(), AutoSegment::makeDogleg(), DebugSession::open(), AutoContact::setLayer(), and AutoContact::showTopologyError().
Generated by doxygen 1.8.13 on Mon May 14 2018 | Return to top of page |
Katabatic - Routing Toolbox | Copyright © 2008-2016 UPMC. All rights reserved |