Katabatic - Routing Toolbox


Classes | Typedefs | Enumerations
Katabatic Namespace Reference

The namespace dedicated to Katabatic. More...

Classes

class  AutoContact
 Abstract base class for AutoContact. More...
 
class  AutoContactHTee
 AutoContact H-Tee (two H, one V) More...
 
class  AutoContactTerminal
 AutoContact Terminal (S/T is a Terminal) More...
 
class  AutoContactTurn
 AutoContact Turn (one H, one V) More...
 
class  AutoContactVTee
 AutoContact V-Tee (one H, two V) More...
 
class  AutoHorizontal
 Concrete Horizontal AutoSegment. More...
 
class  AutoSegment
 Abstract base class for AutoSegment. More...
 
class  AutoSegments_Aligneds
 All aligned AutoSegment of a set. More...
 
class  AutoSegments_AnchorOnGCell
 All AutoSegment Beginning and/or Stopping in a GCell. More...
 
class  AutoSegments_InDirection
 Filter to select AutoSegment in a given direction. More...
 
class  AutoSegments_IsAccountable
 Filter to select accoutable AutoSegment. More...
 
class  AutoSegments_OnContact
 All AutoSegment anchored on a Contact. More...
 
class  AutoSegments_Perpandiculars
 All perpandicular AutoSegment to a set of aligneds. More...
 
class  AutoVertical
 Concrete Vertical AutoSegment. More...
 
class  BaseGrid
 Abstract Base Class for Irregular Grid. More...
 
class  BaseObserver
 Observer Design Pattern, Observer part. More...
 
class  ChipTools
 Utilities for Chip Level Design. More...
 
class  GCell
 Routing Global Cell. More...
 
class  GCellDensitySet
 GCell Set, sorted by density. More...
 
class  GCellGrid
 GCell Grid. More...
 
class  Grid
 Template Class for Regular Grid. More...
 
class  KatabaticEngine
 The Katabatic Tool. More...
 
class  LocatorHelper
 Locator Helper Collection's Locators. More...
 
class  Observable
 Observer Design Pattern, Subject part. More...
 
class  Observer
 Observer Design Pattern, Observer part. More...
 
class  Session
 Modification Session for Katabatic. More...
 

Typedefs

typedef Hurricane::Filter< AutoSegment * > AutoSegmentHF
 
typedef Hurricane::Locator< AutoSegment * > AutoSegmentHL
 
typedef Hurricane::Collection< AutoSegment * > AutoSegmentHC
 
typedef GenericCollection< AutoSegment * > AutoSegments
 
typedef GenericLocator< AutoSegment * > AutoSegmentLocator
 
typedef GenericFilter< AutoSegment * > AutoSegmentFilter
 
typedef GenericCollection< GCell * > GCells
 
typedef GenericLocator< GCell * > GCellLocator
 
typedef GenericFilter< GCell * > GCellFilter
 

Enumerations

enum  FunctionFlag { ,
  KbOpenSession = 0x00000001,
  KbRealignate = 0x00000002,
  KbNativeConstraints = 0x00000004,
  KbForceMove = 0x00000008,
  KbHorizontal = 0x00000010,
  KbVertical = 0x00000020,
  KbWithPerpands = 0x00000040,
  KbSource = 0x00000080,
  KbTarget = 0x00000100,
  KbWarnOnError = 0x00000200 ,
  KbPropagate = 0x00008000 ,
  KbUseAboveLayer = 0x00020000,
  KbUseBelowLayer = 0x00040000,
  KbDoglegOnLeft = 0x00080000,
  KbDoglegOnRight = 0x00100000 ,
  KbHalfSlacken = 0x00800000
}
 
enum  EngineState {
  EngineCreation = 1,
  EngineGlobalLoaded = 2,
  EngineActive = 3,
  EngineDriving = 4,
  EnginePreDestroying = 5,
  EngineGutted = 6
}
 
enum  AutoContactFlag {
  CntFixed = 0x00000001,
  CntTerminal = 0x00000002,
  CntTurn = 0x00000004,
  CntHTee = 0x00000008,
  CntVTee = 0x00000010,
  CntInvalidated = 0x00000020,
  CntInvalidatedCache = 0x00000040,
  CntInCreationStage = 0x00000080,
  CntBadTopology = 0x00000100
}
 
enum  AutoSegmentFlag { ,
  SegHorizontal = (1<< 0),
  SegFixed = (1<< 1),
  SegGlobal = (1<< 2),
  SegWeakGlobal = (1<< 3),
  SegCanonical = (1<< 4),
  SegBipoint = (1<< 5),
  SegDogleg = (1<< 6),
  SegStrap = (1<< 7),
  SegSourceTop = (1<< 8),
  SegSourceBottom = (1<< 9),
  SegTargetTop = (1<<10),
  SegTargetBottom = (1<<11),
  SegIsReduced = (1<<12),
  SegLayerChange = (1<<13) ,
  SegStrongTerminal = SegSourceTerminal|SegTargetTerminal,
  SegWeakTerminal1 = (1<<16),
  SegWeakTerminal2 = (1<<17),
  SegNotSourceAligned = (1<<18),
  SegNotTargetAligned = (1<<19) ,
  SegSlackened = (1<<22),
  SegAxisSet = (1<<23),
  SegInvalidated = (1<<24) ,
  SegInvalidatedLayer = (1<<27),
  SegCreated = (1<<28) ,
  SegWeakTerminal = SegStrongTerminal|SegWeakTerminal1|SegWeakTerminal2,
  SegNotAligned = SegNotSourceAligned|SegNotTargetAligned
}
 

Detailed Description

The namespace dedicated to Katabatic.

Typedef Documentation

◆ AutoSegmentHF

Shorthand for AutoSegment Hurricane Filter.

◆ AutoSegmentHL

Shorthand for AutoSegment Hurricane Locator.

◆ AutoSegmentHC

Shorthand for AutoSegment Hurricane Collection.

◆ AutoSegments

Shorthand for AutoSegment Hurricane Generic Collection (collection with unique_ptr<> like support).

◆ AutoSegmentLocator

Shorthand for AutoSegment Hurricane Generic Locator (locator with unique_ptr<> like support).

◆ AutoSegmentFilter

Shorthand for AutoSegment Hurricane Generic Filter (filter with unique_ptr<> like support).

◆ GCells

GCell Collection with auto-pointer like support.

◆ GCellLocator

GCell Locator with auto-pointer like support.

◆ GCellFilter

GCell Filter with auto-pointer like support.

Enumeration Type Documentation

◆ FunctionFlag

A set of flags to that can be passed to functions/methods througout all Katabatic.

Enumerator
KbOpenSession 

Tells the function to open it's own Session, otherwise use the one that should already have been opened.

KbRealignate 

On AutoSegment 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.

KbNativeConstraints 

Ignore user-defined constraints or terminal induced ones (for AutoContacts anchored on terminals) and return the owning GCell alone.

KbForceMove 

Tells the function to force move, even if it is not needed.

KbHorizontal 

Request some action to be done in the horizontal direction.

KbVertical 

Request some action to be done in the vertical direction.

KbWithPerpands 

Request that AutoSegments in perpandicular direction should be includeds.

KbSource 

Request AutoSegments anchored by their source anchor or that some operation has to be performed on the source.

KbTarget 

Request AutoSegments anchored by their target anchor or that some operation has to be performed on the target.

KbWarnOnError 

Display a warning if something has gone wrong.

KbPropagate 

The action will affect all the segments on an aligned set.

KbUseAboveLayer 

Request/tell the a above layer has been used.

KbUseBelowLayer 

Request/tell the a below layer has been used.

KbDoglegOnLeft 

The dogleg has occured on the left of something

KbDoglegOnRight 

The dogleg has occured on the right of something

KbHalfSlacken 

For AutoSegment::slacken(), change the overconstrained limit from 10 tracks down to 3 (hard-wired).

◆ EngineState

Describe the current state of the KatabaticEngine.

Enumerator
EngineCreation 

The tool is created, but still in the _postCreate stage.

EngineGlobalLoaded 

The global routing has been loaded from Knik.

EngineActive 

The Engine is in normal running mode (routing ordinary wires).

EngineDriving 

The Engine is transforming the AutoContact/AutoSegment into normal Contact/Segment (prior to tool deletion).

EnginePreDestroying 

This state is used whenever the tool is destroyed without passing through the EngineDriving state.

EngineGutted 

After the EngineDriving state, all the working structures are removed and the tool can no longer be used. It only awaits clean destruction.

◆ AutoContactFlag

Set of flags to describe the internal state of an AutoContact.

Enumerator
CntFixed 

This contact cannot be moved.

CntTerminal 

This contact is anchored on a terminal (AutoContactTerminal), must not be changed.

CntTurn 

The object true class is AutoContactTurn, must not be changed.

CntHTee 

The object true class is AutoContactHTee, must not be changed.

CntVTee 

The object true class is AutoContactVTee, must not be changed.

CntInvalidated 

At least one AutoSegment of this contact has been moved, the contact position must be recomputed (in the Session revalidation).

CntInvalidatedCache 

At least one AutoSegment has been broken or moved up, the connexity must be checked and possibly corrected (in Session revalidation).

CntInCreationStage 

Sets only during the initial creation process.

CntBadTopology 

Something wrong has happened and the connexity of the AutoContact is no longer ensured (too much or too less AutoSegments, too wide span of AutoSegment layers).

◆ AutoSegmentFlag

Set of flags to describe the internal state of an AutoSegment.

Enumerator
SegHorizontal 

This AutoSegment is associated to a Hurricane::Horizontal, if not set, it is associated to a Hurricane::Vertical. Set when the object is constructed.

SegFixed 

The Hurricane::Segment associated must/cannot be moved.

SegGlobal 

The AutoSegment span between at least two GCells (i.e. not fully enclosed in one).

SegWeakGlobal 

The AutoSegment is part of an aligned set which contains at least a global. The global segment is itself tagged as weak global.

SegCanonical 

This AutoSegment is the designated representant of a set of aligned AutoSegment.

SegBipoint 

This AutoSegment is a straight wire between two terminal AutoContact.

SegDogleg 

This AutoSegment has been created as the perpandicular part of a dogleg.

SegStrap 

This AutoSegment has been created to to reconnect parts of an AutoSegment after slackening.

SegSourceTop 

The source contact of this segment is connected to the top layer.

SegSourceBottom 

The source contact of this segment is connected to the bottom layer.

SegTargetTop 

The target contact of this segment is connected to the top layer.

SegTargetBottom 

The target contact of this segment is connected to the bottom layer.

SegIsReduced 

This segment is the perpandicular part of a dogleg which will use the same layer as the parallels.

SegLayerChange 

This AutoSegment has been created to to reconnect parts of an AutoSegment after a layer change.

SegStrongTerminal 

This AutoSegment directly connected to a terminal.

SegWeakTerminal1 

This AutoSegment indirectly connected to a terminal with medium strength.

SegWeakTerminal2 

This AutoSegment indirectly connected to a terminal with weak strength.

SegNotSourceAligned 

This source contact of the segment is not the aligned part of a tee (h1 or h2 for a HTee, v1 or v2 for a VTee).

See also
AutoSegmentFlag::SegNotAligned
SegNotTargetAligned 

This target contact of the segment is not the aligned part of a tee (h1 or h2 for a HTee, v1 or v2 for a VTee).

See also
AutoSegmentFlag::SegNotAligned
SegSlackened 

This AutoSegment has been slackened, that is freed from any constraints from source or target through the insertion of straps.

SegAxisSet 

This AutoSegment has been explicitly positionned at least once.

SegInvalidated 

This position or topology of this AutoSegment has been changed, needing a revalidation.

SegInvalidatedLayer 

The segment has been chenged of layer, but the source & target AutoContact have not been topologicaly checked yet. This flag must be used in whith AutoSegmentFlag::SegInvalidated.

SegCreated 

The AutoSegment has just been created. This flag is set only from the contruction of the object until is first revalidation. Used to disable some tests that cannot be satisfied initially.

SegWeakTerminal 

A mask composed of:

SegNotAligned 

A mask composed of:

This mask is a quick way to know if a segment is not part of an aligned set. It means that the segment is, on both ends, either connected to a terminal, a turn or the stem part of a tee.



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