.TH "Katabatic" 3 "Thu Nov 12 2020" "Version 1.0" "Katabatic - Routing Toolbox" \" -*- nroff -*- .ad l .nh .SH NAME Katabatic \- The namespace dedicated to \fBKatabatic\fP\&. .SH SYNOPSIS .br .PP .SS "Classes" .in +1c .ti -1c .RI "class \fBAutoContact\fP" .br .RI "Abstract base class for \fBAutoContact\fP\&. " .ti -1c .RI "class \fBAutoContactHTee\fP" .br .RI "\fBAutoContact\fP H-Tee (two H, one V) " .ti -1c .RI "class \fBAutoContactTerminal\fP" .br .RI "\fBAutoContact\fP Terminal (S/T is a Terminal) " .ti -1c .RI "class \fBAutoContactTurn\fP" .br .RI "\fBAutoContact\fP Turn (one H, one V) " .ti -1c .RI "class \fBAutoContactVTee\fP" .br .RI "\fBAutoContact\fP V-Tee (one H, two V) " .ti -1c .RI "class \fBAutoHorizontal\fP" .br .RI "Concrete Horizontal \fBAutoSegment\fP\&. " .ti -1c .RI "class \fBAutoSegment\fP" .br .RI "Abstract base class for \fBAutoSegment\fP\&. " .ti -1c .RI "class \fBAutoSegments_Aligneds\fP" .br .RI "All aligned \fBAutoSegment\fP of a set\&. " .ti -1c .RI "class \fBAutoSegments_AnchorOnGCell\fP" .br .RI "All \fBAutoSegment\fP Beginning and/or Stopping in a \fBGCell\fP\&. " .ti -1c .RI "class \fBAutoSegments_InDirection\fP" .br .RI "Filter to select \fBAutoSegment\fP in a given direction\&. " .ti -1c .RI "class \fBAutoSegments_IsAccountable\fP" .br .RI "Filter to select accoutable \fBAutoSegment\fP\&. " .ti -1c .RI "class \fBAutoSegments_OnContact\fP" .br .RI "All \fBAutoSegment\fP anchored on a Contact\&. " .ti -1c .RI "class \fBAutoSegments_Perpandiculars\fP" .br .RI "All perpandicular \fBAutoSegment\fP to a set of aligneds\&. " .ti -1c .RI "class \fBAutoVertical\fP" .br .RI "Concrete Vertical \fBAutoSegment\fP\&. " .ti -1c .RI "class \fBBaseGrid\fP" .br .RI "Abstract Base Class for Irregular \fBGrid\fP\&. " .ti -1c .RI "class \fBBaseObserver\fP" .br .RI "\fBObserver\fP Design Pattern, \fBObserver\fP part\&. " .ti -1c .RI "class \fBChipTools\fP" .br .RI "Utilities for Chip Level Design\&. " .ti -1c .RI "class \fBGCell\fP" .br .RI "Routing Global Cell\&. " .ti -1c .RI "class \fBGCellDensitySet\fP" .br .RI "\fBGCell\fP Set, sorted by density\&. " .ti -1c .RI "class \fBGCellGrid\fP" .br .RI "\fBGCell\fP \fBGrid\fP\&. " .ti -1c .RI "class \fBGrid\fP" .br .RI "Template Class for Regular \fBGrid\fP\&. " .ti -1c .RI "class \fBKatabaticEngine\fP" .br .RI "The \fBKatabatic\fP Tool\&. " .ti -1c .RI "class \fBLocatorHelper\fP" .br .RI "Locator Helper Collection's Locators\&. " .ti -1c .RI "class \fBObservable\fP" .br .RI "\fBObserver\fP Design Pattern, Subject part\&. " .ti -1c .RI "class \fBObserver\fP" .br .RI "\fBObserver\fP Design Pattern, \fBObserver\fP part\&. " .ti -1c .RI "class \fBSession\fP" .br .RI "Modification \fBSession\fP for \fBKatabatic\fP\&. " .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef \fBHurricane::Filter\fP< \fBAutoSegment\fP * > \fBAutoSegmentHF\fP" .br .ti -1c .RI "typedef \fBHurricane::Locator\fP< \fBAutoSegment\fP * > \fBAutoSegmentHL\fP" .br .ti -1c .RI "typedef \fBHurricane::Collection\fP< \fBAutoSegment\fP * > \fBAutoSegmentHC\fP" .br .ti -1c .RI "typedef \fBGenericCollection\fP< \fBAutoSegment\fP * > \fBAutoSegments\fP" .br .ti -1c .RI "typedef \fBGenericLocator\fP< \fBAutoSegment\fP * > \fBAutoSegmentLocator\fP" .br .ti -1c .RI "typedef \fBGenericFilter\fP< \fBAutoSegment\fP * > \fBAutoSegmentFilter\fP" .br .ti -1c .RI "typedef \fBGenericCollection\fP< \fBGCell\fP * > \fBGCells\fP" .br .ti -1c .RI "typedef \fBGenericLocator\fP< \fBGCell\fP * > \fBGCellLocator\fP" .br .ti -1c .RI "typedef \fBGenericFilter\fP< \fBGCell\fP * > \fBGCellFilter\fP" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBFunctionFlag\fP { , \fBKbOpenSession\fP = 0x00000001, \fBKbRealignate\fP = 0x00000002, \fBKbNativeConstraints\fP = 0x00000004, \fBKbForceMove\fP = 0x00000008, \fBKbHorizontal\fP = 0x00000010, \fBKbVertical\fP = 0x00000020, \fBKbWithPerpands\fP = 0x00000040, \fBKbSource\fP = 0x00000080, \fBKbTarget\fP = 0x00000100, \fBKbWarnOnError\fP = 0x00000200, \fBKbPropagate\fP = 0x00008000, \fBKbUseAboveLayer\fP = 0x00020000, \fBKbUseBelowLayer\fP = 0x00040000, \fBKbDoglegOnLeft\fP = 0x00080000, \fBKbDoglegOnRight\fP = 0x00100000, \fBKbHalfSlacken\fP = 0x00800000 }" .br .ti -1c .RI "enum \fBEngineState\fP { \fBEngineCreation\fP = 1, \fBEngineGlobalLoaded\fP = 2, \fBEngineActive\fP = 3, \fBEngineDriving\fP = 4, \fBEnginePreDestroying\fP = 5, \fBEngineGutted\fP = 6 }" .br .ti -1c .RI "enum \fBAutoContactFlag\fP { \fBCntFixed\fP = 0x00000001, \fBCntTerminal\fP = 0x00000002, \fBCntTurn\fP = 0x00000004, \fBCntHTee\fP = 0x00000008, \fBCntVTee\fP = 0x00000010, \fBCntInvalidated\fP = 0x00000020, \fBCntInvalidatedCache\fP = 0x00000040, \fBCntInCreationStage\fP = 0x00000080, \fBCntBadTopology\fP = 0x00000100 }" .br .ti -1c .RI "enum \fBAutoSegmentFlag\fP { , \fBSegHorizontal\fP = (1<< 0), \fBSegFixed\fP = (1<< 1), \fBSegGlobal\fP = (1<< 2), \fBSegWeakGlobal\fP = (1<< 3), \fBSegCanonical\fP = (1<< 4), \fBSegBipoint\fP = (1<< 5), \fBSegDogleg\fP = (1<< 6), \fBSegStrap\fP = (1<< 7), \fBSegSourceTop\fP = (1<< 8), \fBSegSourceBottom\fP = (1<< 9), \fBSegTargetTop\fP = (1<<10), \fBSegTargetBottom\fP = (1<<11), \fBSegIsReduced\fP = (1<<12), \fBSegLayerChange\fP = (1<<13), \fBSegStrongTerminal\fP = SegSourceTerminal|SegTargetTerminal, \fBSegWeakTerminal1\fP = (1<<16), \fBSegWeakTerminal2\fP = (1<<17), \fBSegNotSourceAligned\fP = (1<<18), \fBSegNotTargetAligned\fP = (1<<19), \fBSegSlackened\fP = (1<<22), \fBSegAxisSet\fP = (1<<23), \fBSegInvalidated\fP = (1<<24), \fBSegInvalidatedLayer\fP = (1<<27), \fBSegCreated\fP = (1<<28), \fBSegWeakTerminal\fP = SegStrongTerminal|SegWeakTerminal1|SegWeakTerminal2, \fBSegNotAligned\fP = SegNotSourceAligned|SegNotTargetAligned }" .br .in -1c .SH "Detailed Description" .PP The namespace dedicated to \fBKatabatic\fP\&. .SH "Typedef Documentation" .PP .SS "typedef \fBHurricane::Filter\fP< \fBAutoSegment\fP * > \fBAutoSegmentHF\fP" Shorthand for \fBAutoSegment\fP Hurricane Filter\&. .SS "typedef \fBHurricane::Locator\fP< \fBAutoSegment\fP * > \fBAutoSegmentHL\fP" Shorthand for \fBAutoSegment\fP Hurricane Locator\&. .SS "typedef \fBHurricane::Collection\fP< \fBAutoSegment\fP * > \fBAutoSegmentHC\fP" Shorthand for \fBAutoSegment\fP Hurricane Collection\&. .SS "typedef \fBGenericCollection\fP< \fBAutoSegment\fP * > \fBAutoSegments\fP" Shorthand for \fBAutoSegment\fP Hurricane Generic Collection (collection with \fCunique_ptr<>\fP like support)\&. .SS "typedef \fBGenericLocator\fP< \fBAutoSegment\fP * > \fBAutoSegmentLocator\fP" Shorthand for \fBAutoSegment\fP Hurricane Generic Locator (locator with \fCunique_ptr<>\fP like support)\&. .SS "typedef \fBGenericFilter\fP< \fBAutoSegment\fP * > \fBAutoSegmentFilter\fP" Shorthand for \fBAutoSegment\fP Hurricane Generic Filter (filter with \fCunique_ptr<>\fP like support)\&. .SS "typedef \fBGenericCollection\fP< \fBGCell\fP * > \fBGCells\fP" \fBGCell\fP Collection with auto-pointer like support\&. .SS "typedef \fBGenericLocator\fP< \fBGCell\fP * > \fBGCellLocator\fP" \fBGCell\fP Locator with auto-pointer like support\&. .SS "typedef \fBGenericFilter\fP< \fBGCell\fP * > \fBGCellFilter\fP" \fBGCell\fP Filter with auto-pointer like support\&. .SH "Enumeration Type Documentation" .PP .SS "enum \fBFunctionFlag\fP" A set of flags to that can be passed to functions/methods througout all \fBKatabatic\fP\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fIKbOpenSession \fP\fP Tells the function to open it's own \fBSession\fP, otherwise use the one that should already have been opened\&. .TP \fB\fIKbRealignate \fP\fP On \fBAutoSegment\fP axis manipulation, force the realignment of all the segment on an aligned set, even is the axis of the canonical is already at the right coordinate\&. .TP \fB\fIKbNativeConstraints \fP\fP Ignore user-defined constraints or terminal induced ones (for AutoContacts anchored on terminals) and return the owning \fBGCell\fP alone\&. .TP \fB\fIKbForceMove \fP\fP Tells the function to force move, even if it is not needed\&. .TP \fB\fIKbHorizontal \fP\fP Request some action to be done in the horizontal direction\&. .TP \fB\fIKbVertical \fP\fP Request some action to be done in the vertical direction\&. .TP \fB\fIKbWithPerpands \fP\fP Request that AutoSegments in perpandicular direction should be includeds\&. .TP \fB\fIKbSource \fP\fP Request AutoSegments anchored by their source anchor or that some operation has to be performed on the source\&. .TP \fB\fIKbTarget \fP\fP Request AutoSegments anchored by their target anchor or that some operation has to be performed on the target\&. .TP \fB\fIKbWarnOnError \fP\fP Display a warning if something has gone wrong\&. .TP \fB\fIKbPropagate \fP\fP The action will affect all the segments on an aligned set\&. .TP \fB\fIKbUseAboveLayer \fP\fP Request/tell the a above layer has been used\&. .TP \fB\fIKbUseBelowLayer \fP\fP Request/tell the a below layer has been used\&. .TP \fB\fIKbDoglegOnLeft \fP\fP The dogleg has occured on the left \fIof something\fP .TP \fB\fIKbDoglegOnRight \fP\fP The dogleg has occured on the right \fIof something\fP .TP \fB\fIKbHalfSlacken \fP\fP For \fBAutoSegment::slacken()\fP, change the overconstrained limit from 10 tracks down to 3 (hard-wired)\&. .SS "enum \fBEngineState\fP" Describe the current state of the \fBKatabaticEngine\fP\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fIEngineCreation \fP\fP The tool is created, but still in the \fC_postCreate\fP stage\&. .TP \fB\fIEngineGlobalLoaded \fP\fP The global routing has been loaded from Knik\&. .TP \fB\fIEngineActive \fP\fP The Engine is in normal running mode (routing ordinary wires)\&. .TP \fB\fIEngineDriving \fP\fP The Engine is transforming the AutoContact/AutoSegment into normal Contact/Segment (prior to tool deletion)\&. .TP \fB\fIEnginePreDestroying \fP\fP This state is used whenever the tool is destroyed without passing through the EngineDriving state\&. .TP \fB\fIEngineGutted \fP\fP After the EngineDriving state, all the working structures are removed and the tool can no longer be used\&. It only awaits clean destruction\&. .SS "enum \fBAutoContactFlag\fP" Set of flags to describe the internal state of an \fBAutoContact\fP\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fICntFixed \fP\fP This contact cannot be moved\&. .TP \fB\fICntTerminal \fP\fP This contact is anchored on a terminal (\fBAutoContactTerminal\fP), \fBmust not be changed\fP\&. .TP \fB\fICntTurn \fP\fP The object true class is \fBAutoContactTurn\fP, \fBmust not be changed\fP\&. .TP \fB\fICntHTee \fP\fP The object true class is \fBAutoContactHTee\fP, \fBmust not be changed\fP\&. .TP \fB\fICntVTee \fP\fP The object true class is \fBAutoContactVTee\fP, \fBmust not be changed\fP\&. .TP \fB\fICntInvalidated \fP\fP At least one \fBAutoSegment\fP of this contact has been moved, the contact position must be recomputed (in the \fBSession\fP revalidation)\&. .TP \fB\fICntInvalidatedCache \fP\fP At least one \fBAutoSegment\fP has been broken or moved up, the connexity must be checked and possibly corrected (in \fBSession\fP revalidation)\&. .TP \fB\fICntInCreationStage \fP\fP Sets only during the initial creation process\&. .TP \fB\fICntBadTopology \fP\fP Something wrong has happened and the connexity of the \fBAutoContact\fP is no longer ensured (too much or too less AutoSegments, too wide span of \fBAutoSegment\fP layers)\&. .SS "enum \fBAutoSegmentFlag\fP" Set of flags to describe the internal state of an \fBAutoSegment\fP\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fISegHorizontal \fP\fP This \fBAutoSegment\fP is associated to a \fBHurricane::Horizontal\fP, if not set, it is associated to a \fBHurricane::Vertical\fP\&. Set when the object is constructed\&. .TP \fB\fISegFixed \fP\fP The \fBHurricane::Segment\fP associated must/cannot be moved\&. .TP \fB\fISegGlobal \fP\fP The \fBAutoSegment\fP span between at least two GCells (i\&.e\&. not fully enclosed in one)\&. .TP \fB\fISegWeakGlobal \fP\fP The \fBAutoSegment\fP is part of an aligned set which contains at least a global\&. The global segment is itself tagged as weak global\&. .TP \fB\fISegCanonical \fP\fP This \fBAutoSegment\fP is the designated representant of a set of aligned \fBAutoSegment\fP\&. .TP \fB\fISegBipoint \fP\fP This \fBAutoSegment\fP is a straight wire between two terminal \fBAutoContact\fP\&. .TP \fB\fISegDogleg \fP\fP This \fBAutoSegment\fP has been created as the perpandicular part of a dogleg\&. .TP \fB\fISegStrap \fP\fP This \fBAutoSegment\fP has been created to to reconnect parts of an \fBAutoSegment\fP after slackening\&. .TP \fB\fISegSourceTop \fP\fP The source contact of this segment is connected to the \fItop\fP layer\&. .TP \fB\fISegSourceBottom \fP\fP The source contact of this segment is connected to the \fIbottom\fP layer\&. .TP \fB\fISegTargetTop \fP\fP The target contact of this segment is connected to the \fItop\fP layer\&. .TP \fB\fISegTargetBottom \fP\fP The target contact of this segment is connected to the \fIbottom\fP layer\&. .TP \fB\fISegIsReduced \fP\fP This segment is the perpandicular part of a dogleg which will use the \fIsame\fP layer as the parallels\&. .TP \fB\fISegLayerChange \fP\fP This \fBAutoSegment\fP has been created to to reconnect parts of an \fBAutoSegment\fP after a layer change\&. .TP \fB\fISegStrongTerminal \fP\fP This \fBAutoSegment\fP directly connected to a terminal\&. .TP \fB\fISegWeakTerminal1 \fP\fP This \fBAutoSegment\fP indirectly connected to a terminal with medium strength\&. .TP \fB\fISegWeakTerminal2 \fP\fP This \fBAutoSegment\fP indirectly connected to a terminal with weak strength\&. .TP \fB\fISegNotSourceAligned \fP\fP This source contact of the segment is not the aligned part of a tee (\fCh1\fP or \fCh2\fP for a \fCHTee\fP, \fCv1\fP or \fCv2\fP for a \fCVTee\fP)\&. .PP \fBSee also:\fP .RS 4 AutoSegmentFlag::SegNotAligned .RE .PP .TP \fB\fISegNotTargetAligned \fP\fP This target contact of the segment is not the aligned part of a tee (\fCh1\fP or \fCh2\fP for a \fCHTee\fP, \fCv1\fP or \fCv2\fP for a \fCVTee\fP)\&. .PP \fBSee also:\fP .RS 4 AutoSegmentFlag::SegNotAligned .RE .PP .TP \fB\fISegSlackened \fP\fP This \fBAutoSegment\fP has been slackened, that is freed from any constraints from source or target through the insertion of straps\&. .TP \fB\fISegAxisSet \fP\fP This \fBAutoSegment\fP has been explicitly positionned at least once\&. .TP \fB\fISegInvalidated \fP\fP This position or topology of this \fBAutoSegment\fP has been changed, needing a revalidation\&. .TP \fB\fISegInvalidatedLayer \fP\fP The segment has been chenged of layer, but the source & target \fBAutoContact\fP have not been topologicaly checked yet\&. This flag \fBmust\fP be used in whith AutoSegmentFlag::SegInvalidated\&. .TP \fB\fISegCreated \fP\fP The \fBAutoSegment\fP has just been created\&. This flag is set only from the contruction of the object until is \fIfirst\fP revalidation\&. Used to disable some tests that cannot be satisfied initially\&. .TP \fB\fISegWeakTerminal \fP\fP A mask composed of: .IP "\(bu" 2 \fBKatabatic::SegStrongTerminal\fP .IP "\(bu" 2 \fBKatabatic::SegWeakTerminal1\fP .IP "\(bu" 2 \fBKatabatic::SegWeakTerminal2\fP .PP .TP \fB\fISegNotAligned \fP\fP A mask composed of: .IP "\(bu" 2 \fBKatabatic::SegNotSourceAligned\fP .IP "\(bu" 2 \fBKatabatic::SegNotTargetAligned\fP .PP .PP This mask is a quick way to know if a segment is \fBnot\fP part of an aligned set\&. It means that the segment is, on both ends, either connected to a terminal, a turn \fIor the stem part of a tee\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Katabatic - Routing Toolbox from the source code\&.