Katabatic - Routing Toolbox


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

AutoContact H-Tee (two H, one V) More...

Inheritance diagram for AutoContactHTee:
Inheritance graph
[legend]

Public Member Functions

virtual AutoSegmentgetOpposite (const AutoSegment *) const
 
virtual AutoSegmentgetPerpandicular (const AutoSegment *) const
 
virtual AutoSegmentgetSegment (unsigned int) const
 
virtual void updateGeometry ()
 
virtual void updateTopology ()
 
- Public Member Functions inherited from AutoContact
HookgetBodyHook ()
 
HookgetAnchorHook ()
 
ComponentgetAnchor () const
 
NetgetNet () const
 
const LayergetLayer () 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
 
Contactbase () const
 
virtual const NamegetName () const
 
size_t getId () const
 
virtual Box getBoundingBox () const
 
GCellgetGCell () 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
 
BoxintersectConstraintBox (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 AutoContactHTeecreate (GCell *, Net *, const Layer *)
 
- Static Public Member Functions inherited from AutoContact
static size_t getAllocateds ()
 
static const NamegetStaticName ()
 

Additional Inherited Members

- Static Protected Member Functions inherited from AutoContact
static void _getTopology (Contact *, Component *&anchor, Horizontal **&, Vertical **&, size_t)
 

Detailed Description

AutoContact H-Tee (two H, one V)

AutoContact to build an horizontal tee (two H, one V).

Member Function Documentation

◆ create()

AutoContactHTee * create ( GCell gcell,
Net net,
const Layer layer 
)
static
Parameters
gcellThe GCell into which create the AutoContact.
netThe Net to which this AutoContact belongs.
layerThe Layer of the AutoContact.
Returns
The created AutoContactHTee.

Create a new AutoContactHTee.

References Katabatic::CntInCreationStage, and Contact::create().

Referenced by GCellTopology::_do_xG(), GCellTopology::_do_xG_1M1_1M2(), and GCellTopology::_do_xG_xM1_xM3().

◆ getOpposite()

AutoSegment * getOpposite ( const AutoSegment reference) const
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.

◆ getPerpandicular()

AutoSegment * getPerpandicular ( const AutoSegment reference) const
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.

◆ getSegment()

AutoSegment * getSegment ( unsigned int  index) const
virtual

Returns: The nth anchored AutoSegment. The index is significant:

  • 0 : first horizontal (h1).
  • 1 : second horizontal (h2).
  • 2 : first vertical (b1).
  • 3 : second vertical (b2).

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.

◆ updateGeometry()

void updateGeometry ( )
virtual

◆ updateTopology()

void updateTopology ( )
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:

  1. The two horizontals (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.
  2. The two horizontals no longer are on the same layer (figures 1 & 3). In that case, the dogleg is made on the horizontal which is at the greater distance (in a layer sense) from the vertical.
updateTopologyHTee.png
Update H-Tee Topology

Implements AutoContact.

References DebugSession::close(), Katabatic::CntBadTopology, RoutingGauge::getContactLayer(), AutoContact::getLayer(), RoutingGauge::getLayerDepth(), AutoContact::getNet(), Session::getRoutingGauge(), RoutingGauge::getRoutingLayer(), AutoContact::hasBadTopology(), AutoContact::isInvalidatedCache(), DebugSession::open(), AutoContact::setLayer(), and AutoContact::showTopologyError().


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


Generated by doxygen 1.8.14 on Sun Nov 21 2021 Return to top of page
Katabatic - Routing Toolbox Copyright © 2008-2020 Sorbonne Universite. All rights reserved