172 lines
7.9 KiB
Groff
172 lines
7.9 KiB
Groff
.TH "AutoContactTerminal" 3 "Fri Oct 1 2021" "Version 1.0" "Katabatic - Routing Toolbox" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
AutoContactTerminal \- \fBAutoContact\fP Terminal (S/T is a Terminal)
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.PP
|
|
Inherits \fBAutoContact\fP\&.
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "virtual \fBBox\fP \fBgetNativeConstraintBox\fP () const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fBAutoSegment\fP * \fBgetSegment\fP (unsigned int) const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fBAutoSegment\fP * \fBgetOpposite\fP (const \fBAutoSegment\fP *) const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fBAutoSegment\fP * \fBgetPerpandicular\fP (const \fBAutoSegment\fP *) const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual void \fBupdateGeometry\fP ()"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual void \fBupdateTopology\fP ()"
|
|
.br
|
|
.in -1c
|
|
.SS "Static Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "static \fBAutoContactTerminal\fP * \fBcreate\fP (\fBGCell\fP *gcell, \fBComponent\fP *anchor, const \fBLayer\fP *layer, \fBPoint\fP point, \fBDbU::Unit\fP width, \fBDbU::Unit\fP height)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static \fBAutoContactTerminal\fP * \fBcreate\fP (\fBGCell\fP *gcell, \fBComponent\fP *anchor, const \fBLayer\fP *layer, const \fBDbU::Unit\fP dx, const \fBDbU::Unit\fP dy, const \fBDbU::Unit\fP width, const \fBDbU::Unit\fP height)"
|
|
.br
|
|
.in -1c
|
|
.SS "Additional Inherited Members"
|
|
.SH "Detailed Description"
|
|
.PP
|
|
\fBAutoContact\fP Terminal (S/T is a Terminal)
|
|
|
|
\fBAutoContact\fP that are directly attached by either source or target or both to a terminal\&.
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "\fBAutoContactTerminal\fP * create (\fBGCell\fP * gcell, \fBComponent\fP * rp, const \fBLayer\fP * layer, \fBPoint\fP point, \fBDbU::Unit\fP width, \fBDbU::Unit\fP height)\fC [static]\fP"
|
|
|
|
.PP
|
|
\fBParameters:\fP
|
|
.RS 4
|
|
\fIgcell\fP The \fBGCell\fP into which create the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIrp\fP The RoutingPad on which to anchor the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIlayer\fP The Layer of the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIpoint\fP The absolute position\&.
|
|
.br
|
|
\fIwidth\fP The width of the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIheight\fP The height of the \fBAutoContact\fP\&.
|
|
.RE
|
|
.PP
|
|
\fBReturns:\fP
|
|
.RS 4
|
|
The created \fBAutoContact\fP\&.
|
|
.RE
|
|
.PP
|
|
Create a new \fBAutoContactTerminal\fP anchored on \fCrp\fP\&. \fCpoint\fP gives the \fIabsolute\fP position\&.
|
|
.PP
|
|
References Hook::detach(), and Component::getBodyHook()\&.
|
|
.PP
|
|
Referenced by GCellTopology::doRp_AccessPad(), and GCellTopology::doRp_AutoContacts()\&.
|
|
.SS "\fBAutoContactTerminal\fP * create (\fBGCell\fP * gcell, \fBComponent\fP * rp, const \fBLayer\fP * layer, const \fBDbU::Unit\fP x, const \fBDbU::Unit\fP y, const \fBDbU::Unit\fP width, const \fBDbU::Unit\fP height)\fC [static]\fP"
|
|
|
|
.PP
|
|
\fBParameters:\fP
|
|
.RS 4
|
|
\fIgcell\fP The \fBGCell\fP into which create the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIrp\fP The Component on which to anchor the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIlayer\fP The Layer of the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIx\fP The absolute X position\&.
|
|
.br
|
|
\fIy\fP The absolute Y position\&.
|
|
.br
|
|
\fIwidth\fP The width of the \fBAutoContact\fP\&.
|
|
.br
|
|
\fIheight\fP The height of the \fBAutoContact\fP\&.
|
|
.RE
|
|
.PP
|
|
\fBReturns:\fP
|
|
.RS 4
|
|
The created \fBAutoContact\fP\&.
|
|
.RE
|
|
.PP
|
|
Create a new \fBAutoContactTerminal\fP anchored on \fCrp\fP\&. \fC(x,y)\fP gives the \fIabsolute\fP position\&.
|
|
.PP
|
|
The anchor component \fCrp\fP is most often a \fBHurricane::RoutingPad\fP (occurrencing a \fBHurricane::Segment\fP) or directly a \fBHurricane::Segment\fP, in case of RoutingPad layer promotion\&.
|
|
.PP
|
|
References Katabatic::CntInCreationStage, Contact::create(), Component::getPosition(), and DbU::getValueString()\&.
|
|
.SS "\fBBox\fP getNativeConstraintBox () const\fC [virtual]\fP"
|
|
\fBReturns:\fP The native constraint box (that is, whithout any user constraints applied)\&. For \fBAutoContactTerminal\fP, this is the Box of the supporting external component, and for all others the bounding box of the owning \fBGCell\fP\&.
|
|
.PP
|
|
Reimplemented from \fBAutoContact\fP\&.
|
|
.PP
|
|
References AutoContact::getAnchor(), GCell::getBoundingBox(), Occurrence::getEntity(), RoutingPad::getOccurrence(), Transformation::getOrientation(), Occurrence::getPath(), Component::getPosition(), RoutingPad::getSourcePosition(), Segment::getSourcePosition(), RoutingPad::getTargetPosition(), Segment::getTargetPosition(), Path::getTransformation(), and DbU::getValueString()\&.
|
|
.SS "\fBAutoSegment\fP * getSegment (unsigned int index) const\fC [virtual]\fP"
|
|
\fBReturns:\fP The nth anchored \fBAutoSegment\fP\&. The index is significant:
|
|
.IP "\(bu" 2
|
|
\fB0\fP : first horizontal (\fBh1\fP)\&.
|
|
.IP "\(bu" 2
|
|
\fB1\fP : second horizontal (\fBh2\fP)\&.
|
|
.IP "\(bu" 2
|
|
\fB2\fP : first vertical (\fBb1\fP)\&.
|
|
.IP "\(bu" 2
|
|
\fB3\fP : second vertical (\fBb2\fP)\&.
|
|
.PP
|
|
.PP
|
|
Not all the indexes are filled for every \fBAutoContact\fP\&. For example \fCTurn\fP have \fBh1\fP and \fBb1\fP, and \fCHTee\fP have \fBh1\fP, \fBh2\fP and \fBv1\fP\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.PP
|
|
References AutoSegment::isHorizontal(), and AutoSegment::isVertical()\&.
|
|
.SS "\fBAutoSegment\fP * getOpposite (const \fBAutoSegment\fP * reference) const\fC [virtual]\fP"
|
|
\fBReturns:\fP The other \fBAutoSegment\fP the \fIsame\fP direction as \fCreference\fP, this is only meaningful on \fBAutoContactHTee\fP or \fBAutoContactVTee\fP\&. If there is no opposite, \fCNULL\fP is returned\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.SS "\fBAutoSegment\fP * getPerpandicular (const \fBAutoSegment\fP * reference) const\fC [virtual]\fP"
|
|
\fBReturns:\fP The \fBAutoSegment\fP in the \fIperpandicular\fP direction to \fCreference\fP, this is only meaningful on AutoContacTurn\&. It there is no unique perpandicular, \fCNULL\fP is returned\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.SS "void updateGeometry ()\fC [virtual]\fP"
|
|
Compute the new position of the \fBAutoContact\fP based on the \fBAutoSegment\fP positions\&. The \fBSession\fP mechanism ensure that all \fBAutoSegment\fP are set into their final positions before calling this updator\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.PP
|
|
References AutoContact::base(), DebugSession::close(), Katabatic::CntInvalidated, Interval::contains(), AutoContact::getNet(), AutoContact::getUConstraints(), DbU::getValueString(), AutoSegment::getX(), AutoSegment::getY(), AutoContact::hasBadTopology(), Go::invalidate(), AutoSegment::isCreated(), AutoSegment::isHorizontal(), AutoContact::isInvalidatedCache(), Katabatic::KbHorizontal, Katabatic::KbVertical, DebugSession::open(), AutoContact::setX(), AutoContact::setY(), and AutoContact::showTopologyError()\&.
|
|
.SS "void updateTopology ()\fC [virtual]\fP"
|
|
Restore the topology (i\&.e\&. connexity) of the contact after the incident segment has changed layer\&.
|
|
.PP
|
|
Based on the layer depth delta between the terminal and the segment three case can occurs:
|
|
.IP "\(bu" 2
|
|
The delta is \fBzero\fP, then just sets the layer of the contact to the common metal layer\&.
|
|
.IP "\(bu" 2
|
|
The delta is \fBone\fP, then sets the contact layer to VIA connecting the two layers\&.
|
|
.IP "\(bu" 2
|
|
The delta is \fBtwo\fP, then create a dogleg to restore the connexity\&. Depending on whether the terminal was attached to the source or target, sets the layer of the segments\&.
|
|
.IP "\(bu" 2
|
|
A delta of more than \fBtwo\fP is an error, and must never occurs\&.
|
|
.PP
|
|
.PP
|
|
As, by default, the perpandicular is set in the layer above the parallel, it may be necessary to adjust his layer as well (to the one below)\&.
|
|
.PP
|
|
Update Terminal Topology
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.PP
|
|
References DebugSession::close(), Katabatic::CntBadTopology, AutoContact::getAnchor(), RoutingGauge::getContactLayer(), AutoContact::getLayer(), AutoSegment::getLayer(), RoutingGauge::getLayerDepth(), AutoContact::getNet(), Session::getRoutingGauge(), RoutingGauge::getRoutingLayer(), AutoSegment::invalidate(), AutoContact::isInvalidatedCache(), AutoSegment::makeDogleg(), DebugSession::open(), AutoContact::setLayer(), and AutoContact::showTopologyError()\&.
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for Katabatic - Routing Toolbox from the source code\&.
|