| 
    KiCad PCB EDA Suite
    
   | 
 
#include <pns_meander_skew_placer.h>
  
Public Types | |
| enum | TUNING_STATUS { TOO_SHORT = 0 , TOO_LONG , TUNED } | 
| < Result of the length tuning operation  More... | |
Public Member Functions | |
| MEANDER_SKEW_PLACER (ROUTER *aRouter) | |
| ~MEANDER_SKEW_PLACER () | |
| bool | Start (const VECTOR2I &aP, ITEM *aStartItem) override | 
| Function Start()      | |
| bool | Move (const VECTOR2I &aP, ITEM *aEndItem) override | 
| Function Move()      | |
| long long int | TuningLengthResult () const override | 
| Return the resultant length or skew of the tuned traces.      | |
| int64_t | TuningDelayResult () const override | 
| Return the resultant delay or skew of the tuned traces.      | |
| long long int | CurrentSkew () const | 
| virtual bool | FixRoute (const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false) override | 
| Function FixRoute()      | |
| bool | CommitPlacement () override | 
| bool | AbortPlacement () override | 
| bool | HasPlacedAnything () const override | 
| NODE * | CurrentNode (bool aLoopsRemoved=false) const override | 
| Function CurrentNode()      | |
| const ITEM_SET | Traces () override | 
| Function Traces()      | |
| const ITEM_SET | TunedPath () override | 
| const VECTOR2I & | CurrentStart () const override | 
| Function CurrentStart()      | |
| const VECTOR2I & | CurrentEnd () const override | 
| Function CurrentEnd()      | |
| const std::vector< NET_HANDLE > | CurrentNets () const override | 
| Function CurrentNets()      | |
| int | CurrentLayer () const override | 
| Function CurrentLayer()      | |
| TUNING_STATUS | TuningStatus () const override | 
| Return the tuning status (too short, too long, etc.) of the trace(s) being tuned.      | |
| bool | CheckFit (MEANDER_SHAPE *aShape) override | 
| Checks if it's OK to place the shape aShape (i.e.      | |
| virtual void | AmplitudeStep (int aSign) | 
| Increase/decreases the current meandering amplitude by one step.   | |
| virtual void | SpacingStep (int aSign) | 
| Increase/decrease the current meandering spacing by one step.   | |
| virtual int | Clearance () | 
| Return the clearance of the track(s) being length tuned.   | |
| virtual const MEANDER_SETTINGS & | MeanderSettings () const | 
| Return the current meandering configuration.   | |
| virtual void | UpdateSettings (const MEANDER_SETTINGS &aSettings) | 
| virtual std::optional< VECTOR2I > | UnfixRoute () | 
| virtual bool | ToggleVia (bool aEnabled) | 
| Function ToggleVia()   | |
| virtual bool | IsPlacingVia () const | 
| Function IsPlacingVia()   | |
| virtual bool | SetLayer (int aLayer) | 
| Function SetLayer()   | |
| virtual void | FlipPosture () | 
| Function FlipPosture()   | |
| virtual void | UpdateSizes (const SIZES_SETTINGS &aSizes) | 
| Function UpdateSizes()   | |
| virtual void | SetOrthoMode (bool aOrthoMode) | 
| Function SetOrthoMode()   | |
| virtual void | GetModifiedNets (std::vector< NET_HANDLE > &aNets) const | 
| Function GetModifiedNets.   | |
| ROUTER * | Router () const | 
| Return current router settings.   | |
| ROUTING_SETTINGS & | Settings () const | 
| Return the logger object, allowing to dump geometry to a file.   | |
| virtual LOGGER * | Logger () | 
| void | SetLogger (LOGGER *aLogger) | 
| void | SetDebugDecorator (DEBUG_DECORATOR *aDecorator) | 
| Assign a debug decorator allowing this algo to draw extra graphics for visual debugging.   | |
| DEBUG_DECORATOR * | Dbg () const | 
| const BOX2I & | VisibleViewArea () const | 
Protected Member Functions | |
| bool | doMove (const VECTOR2I &aP, ITEM *aEndItem, long long int aTargetLength, long long int aTargetMin, long long int aTargetMax) | 
| void | tuneLineLength (MEANDERED_LINE &aTuned, long long int aElongation) | 
| Take a set of meanders in aTuned and tunes their length to extend the original line length by aElongation.   | |
| VECTOR2I | getSnappedStartPoint (LINKED_ITEM *aStartItem, VECTOR2I aStartPoint) | 
| long long int | lineLength (const ITEM_SET &aLine, const SOLID *aStartPad, const SOLID *aEndPad) const | 
| Calculate the total length of the line represented by an item set (tracks and vias)   | |
| int64_t | lineDelay (const ITEM_SET &aLine, const SOLID *aStartPad, const SOLID *aEndPad) const | 
| Calculate the total delay of the line represented by an item set (tracks and vias)   | |
Protected Attributes | |
| VECTOR2I | m_currentStart | 
| Current world state.   | |
| NODE * | m_currentNode | 
| LINE | m_originLine | 
| LINE | m_currentTrace | 
| ITEM_SET | m_tunedPath | 
| SHAPE_LINE_CHAIN | m_finalShape | 
| MEANDERED_LINE | m_result | 
| LINKED_ITEM * | m_initialSegment | 
| Total length added by pad to die size.   | |
| int | m_padToDieLength | 
| Total length added by pad to die size.   | |
| int | m_padToDieDelay | 
| The netclass for the placed segments.   | |
| NETCLASS * | m_netClass | 
| long long int | m_lastLength | 
| int64_t | m_lastDelay | 
| TUNING_STATUS | m_lastStatus | 
| NODE * | m_world | 
| Width of the meandered trace(s).   | |
| int | m_currentWidth | 
| Meander settings.   | |
| MEANDER_SETTINGS | m_settings | 
| The current end point.   | |
| VECTOR2I | m_currentEnd | 
| SOLID * | m_startPad_p | 
| SOLID * | m_endPad_p | 
| SOLID * | m_startPad_n | 
| SOLID * | m_endPad_n | 
| DEBUG_DECORATOR * | m_debugDecorator | 
| ROUTER * | m_router | 
| LOGGER * | m_logger | 
Private Member Functions | |
| long long int | origPathLength () const override | 
| int64_t | origPathDelay () const override | 
| void | calculateTimeDomainTargets () override | 
| current routing start point (end of tail, beginning of head)   | |
Private Attributes | |
| DIFF_PAIR | m_originPair | 
| ITEM_SET | m_tunedPathP | 
| ITEM_SET | m_tunedPathN | 
| long long int | m_coupledLength | 
| int64_t | m_coupledDelay | 
| int | m_padToDieLengthP | 
| int | m_padToDieLengthN | 
| int64_t | m_padToDieDelayP | 
| int64_t | m_padToDieDelayN | 
Differential pair skew adjustment algorithm.
Definition at line 39 of file pns_meander_skew_placer.h.
      
  | 
  inherited | 
< Result of the length tuning operation
| Enumerator | |
|---|---|
| TOO_SHORT | |
| TOO_LONG | |
| TUNED | |
Definition at line 49 of file pns_meander_placer_base.h.
| PNS::MEANDER_SKEW_PLACER::MEANDER_SKEW_PLACER | ( | ROUTER * | aRouter | ) | 
Definition at line 33 of file pns_meander_skew_placer.cpp.
References m_coupledDelay, m_coupledLength, m_padToDieDelayN, m_padToDieDelayP, m_padToDieLengthN, m_padToDieLengthP, and PNS::MEANDER_PLACER::MEANDER_PLACER().
| PNS::MEANDER_SKEW_PLACER::~MEANDER_SKEW_PLACER | ( | ) | 
Definition at line 46 of file pns_meander_skew_placer.cpp.
      
  | 
  overridevirtualinherited | 
Reimplemented from PNS::PLACEMENT_ALGO.
Definition at line 314 of file pns_meander_placer.cpp.
References PNS::MEANDER_PLACER_BASE::m_world.
      
  | 
  virtualinherited | 
Increase/decreases the current meandering amplitude by one step.
| aSign | direction (negative = decrease, positive = increase). | 
Definition at line 49 of file pns_meander_placer_base.cpp.
References m_settings.
Referenced by DRAWING_TOOL::PlaceTuningPattern().
      
  | 
  overrideprivatevirtual | 
current routing start point (end of tail, beginning of head)
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 224 of file pns_meander_skew_placer.cpp.
References std::abs(), CurrentSkew(), m_coupledDelay, PNS::MEANDER_PLACER::m_lastDelay, PNS::MEANDER_PLACER::m_netClass, m_originPair, PNS::ALGO_BASE::m_router, and PNS::MEANDER_PLACER_BASE::m_settings.
      
  | 
  overridevirtualinherited | 
Checks if it's OK to place the shape aShape (i.e.
if it doesn't cause DRC violations or collide with other meanders).
| aShape | the shape to check. | 
Reimplemented from PNS::MEANDER_PLACER_BASE.
Definition at line 337 of file pns_meander_placer.cpp.
References clearance, PNS::MEANDER_SHAPE::CLine(), m_currentNode, m_originLine, m_result, PNS::MEANDER_PLACER_BASE::m_settings, and PNS::MEANDER_SHAPE::Width().
      
  | 
  virtualinherited | 
Return the clearance of the track(s) being length tuned.
Definition at line 67 of file pns_meander_placer_base.cpp.
References PNS::ITEM_SET::CItems(), PNS::CT_CLEARANCE, PNS::PLACEMENT_ALGO::CurrentLayer(), PNS::ROUTER::GetRuleResolver(), MINOPTMAX< T >::HasMin(), m_currentWidth, PNS::CONSTRAINT::m_Value, MINOPTMAX< T >::Min(), PNS::RULE_RESOLVER::QueryConstraint(), PNS::ALGO_BASE::Router(), and PNS::PLACEMENT_ALGO::Traces().
Referenced by SpacingStep().
      
  | 
  overridevirtualinherited | 
Reimplemented from PNS::PLACEMENT_ALGO.
Definition at line 327 of file pns_meander_placer.cpp.
References PNS::ROUTER::CommitRouting(), m_currentNode, and PNS::ALGO_BASE::Router().
Referenced by FixRoute().
      
  | 
  overridevirtualinherited | 
Function CurrentEnd()
Returns the current end of the line(s) being placed/tuned. It may not be equal to the cursor position due to collisions.
Implements PNS::PLACEMENT_ALGO.
Definition at line 367 of file pns_meander_placer.cpp.
References PNS::MEANDER_PLACER_BASE::m_currentEnd.
      
  | 
  overridevirtualinherited | 
Function CurrentLayer()
Returns the layer of currently routed track.
Implements PNS::PLACEMENT_ALGO.
Definition at line 372 of file pns_meander_placer.cpp.
References m_initialSegment.
      
  | 
  inlineoverridevirtualinherited | 
Function CurrentNets()
Returns the net(s) of currently routed track(s).
Implements PNS::PLACEMENT_ALGO.
Definition at line 86 of file pns_meander_placer.h.
References m_originLine.
      
  | 
  overridevirtualinherited | 
Function CurrentNode()
Returns the most recent board state.
Implements PNS::PLACEMENT_ALGO.
Definition at line 55 of file pns_meander_placer.cpp.
References m_currentNode, and PNS::MEANDER_PLACER_BASE::m_world.
| long long int PNS::MEANDER_SKEW_PLACER::CurrentSkew | ( | ) | const | 
Definition at line 174 of file pns_meander_skew_placer.cpp.
References m_coupledLength, and PNS::MEANDER_PLACER::m_lastLength.
Referenced by calculateTimeDomainTargets().
      
  | 
  overridevirtualinherited | 
Function CurrentStart()
Returns the current start of the line(s) being placed/tuned.
Implements PNS::PLACEMENT_ALGO.
Definition at line 362 of file pns_meander_placer.cpp.
References m_currentStart.
      
  | 
  inlineinherited | 
Definition at line 78 of file pns_algo_base.h.
References m_debugDecorator.
Referenced by PNS::SHOVE::AddLockedSpringbackNode(), PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::clipAndCheckCollisions(), PNS::MEANDER_PLACER::doMove(), PNS::COMPONENT_DRAGGER::Drag(), PNS::MULTI_DRAGGER::Drag(), PNS::DRAGGER::dragShove(), PNS::DRAGGER::dragWalkaround(), PNS::MULTI_DRAGGER::findNewLeaderSegment(), PNS::SHOVE::fixupViaCollisions(), PNS::LINE_PLACER::handlePullback(), PNS::LINE_PLACER::mergeHead(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::MULTI_DRAGGER::multidragShove(), PNS::MULTI_DRAGGER::multidragWalkaround(), PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingLine(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::DRAGGER::optimizeAndUpdateDraggedLine(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PNS::SHOVE::preShoveCleanup(), PNS::SHOVE::pruneLineFromOptimizerQueue(), PNS::SHOVE::pruneRootLines(), PNS::SHOVE::pushLineStack(), PNS::SHOVE::pushOrShoveVia(), PNS::SHOVE::pushSpringback(), PNS::SHOVE::reconstructHeads(), PNS::SHOVE::reduceSpringback(), PNS::LINE_PLACER::reduceTail(), PNS::LINE_PLACER::removeLoops(), PNS::SHOVE::replaceItems(), PNS::SHOVE::replaceLine(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::rhWalkOnly(), PNS::WALKAROUND::Route(), PNS::LINE_PLACER::routeStep(), PNS::SHOVE::Run(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::shoveLineToHullSet(), PNS::SHOVE::shoveMainLoop(), PNS::SHOVE::ShoveObstacleLine(), PNS::LINE_PLACER::simplifyNewLine(), PNS::WALKAROUND::singleStep(), PNS::LINE_PLACER::splitHeadTail(), PNS::DRAGGER::Start(), PNS::LINE_PLACER::Start(), PNS::MULTI_DRAGGER::Start(), PNS::SHOVE::touchRootLine(), PNS::SHOVE::touchRootLine(), PNS::LINE_PLACER::Trace(), PNS::DRAGGER::tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
      
  | 
  protectedinherited | 
Definition at line 165 of file pns_meander_placer.cpp.
References SEG::A, SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::Arc(), SHAPE_LINE_CHAIN::ArcIndex(), SEG::B, BLUE, SHAPE_LINE_CHAIN::Clear(), SHAPE_LINE_CHAIN::CSegment(), PNS::ALGO_BASE::Dbg(), dyn_cast(), SHAPE_LINE_CHAIN::IsArcSegment(), SHAPE_LINE_CHAIN::Length(), PNS::MEANDER_PLACER_BASE::lineDelay(), m_currentNode, m_currentStart, PNS::MEANDER_PLACER_BASE::m_currentWidth, m_finalShape, m_lastDelay, m_lastLength, m_lastStatus, m_netClass, m_originLine, m_result, PNS::ALGO_BASE::m_router, PNS::MEANDER_PLACER_BASE::m_settings, m_tunedPath, PNS::MEANDER_PLACER_BASE::m_world, PNS::MT_EMPTY, SHAPE_LINE_CHAIN::NextShape(), origPathDelay(), origPathLength(), PNS_DBG, SHAPE_LINE_CHAIN::SegmentCount(), SEG::Side(), SHAPE_LINE_CHAIN::Simplify(), PNS::MEANDER_PLACER_BASE::TOO_LONG, PNS::MEANDER_PLACER_BASE::TOO_SHORT, PNS::MEANDER_PLACER_BASE::TUNED, and PNS::MEANDER_PLACER_BASE::tuneLineLength().
Referenced by Move(), and PNS::MEANDER_SKEW_PLACER::Move().
      
  | 
  overridevirtualinherited | 
Function FixRoute()
Commits the currently routed items to the parent node, taking aP as the final end point and aEndItem as the final anchor (if provided).
Implements PNS::PLACEMENT_ALGO.
Definition at line 301 of file pns_meander_placer.cpp.
References CommitPlacement(), LINE, m_currentNode, m_currentTrace, m_finalShape, and m_originLine.
      
  | 
  inlinevirtualinherited | 
Function FlipPosture()
Toggles the current posture (straight/diagonal) of the trace head.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 167 of file pns_placement_algo.h.
      
  | 
  inlinevirtualinherited | 
Function GetModifiedNets.
Returns the nets of all currently routed trace(s)
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 198 of file pns_placement_algo.h.
      
  | 
  protectedinherited | 
Definition at line 260 of file pns_meander_placer_base.cpp.
References PNS::ARC::Anchor(), PNS::ITEM::ARC_T, PNS::ITEM::Kind(), and PNS::ITEM::SEGMENT_T.
Referenced by PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  overridevirtualinherited | 
Reimplemented from PNS::PLACEMENT_ALGO.
Definition at line 321 of file pns_meander_placer.cpp.
References m_currentTrace.
      
  | 
  inlinevirtualinherited | 
Function IsPlacingVia()
Returns true if the placer is placing a via (or more vias).
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 104 of file pns_placement_algo.h.
      
  | 
  protectedinherited | 
Calculate the total delay of the line represented by an item set (tracks and vias)
| aLine | 
Definition at line 294 of file pns_meander_placer_base.cpp.
References PNS::ROUTER_IFACE::CalculateRoutedPathDelay(), PNS::ITEM_SET::Empty(), PNS::ROUTER::GetInterface(), m_settings, and PNS::ALGO_BASE::Router().
Referenced by PNS::MEANDER_PLACER::doMove(), PNS::DP_MEANDER_PLACER::origPathDelay(), PNS::MEANDER_PLACER::origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Calculate the total length of the line represented by an item set (tracks and vias)
| aLine | 
Definition at line 284 of file pns_meander_placer_base.cpp.
References PNS::ROUTER_IFACE::CalculateRoutedPathLength(), PNS::ITEM_SET::Empty(), PNS::ROUTER::GetInterface(), m_settings, and PNS::ALGO_BASE::Router().
Referenced by PNS::DP_MEANDER_PLACER::origPathLength(), PNS::MEANDER_PLACER::origPathLength(), PNS::MEANDER_SKEW_PLACER::origPathLength(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  virtualinherited | 
Definition at line 34 of file pns_algo_base.cpp.
References m_logger.
Referenced by PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::DRAGGER::Start(), PNS::MULTI_DRAGGER::Start(), PNS::DRAGGER::tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
      
  | 
  virtualinherited | 
Return the current meandering configuration.
Definition at line 254 of file pns_meander_placer_base.cpp.
References m_settings.
Referenced by PCB_TUNING_PATTERN::Update().
Function Move()
Moves the end of the currently routed primtive(s) to the point aP, taking aEndItem as the anchor (if not NULL). (unless NULL).
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 180 of file pns_meander_skew_placer.cpp.
References BLUE, calculateTimeDomainTargets(), PNS::ALGO_BASE::Dbg(), PNS::MEANDER_PLACER::doMove(), dyn_cast(), m_coupledLength, PNS::MEANDER_PLACER::m_originLine, m_originPair, PNS::ALGO_BASE::m_router, PNS::MEANDER_PLACER_BASE::m_settings, m_tunedPathN, m_tunedPathP, PNS_DBG, and YELLOW.
      
  | 
  overrideprivatevirtual | 
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 165 of file pns_meander_skew_placer.cpp.
References PNS::MEANDER_PLACER_BASE::lineDelay(), PNS::MEANDER_PLACER_BASE::m_endPad_n, PNS::MEANDER_PLACER_BASE::m_endPad_p, PNS::MEANDER_PLACER::m_originLine, m_originPair, m_padToDieDelayN, m_padToDieDelayP, PNS::MEANDER_PLACER_BASE::m_startPad_n, PNS::MEANDER_PLACER_BASE::m_startPad_p, and PNS::MEANDER_PLACER::m_tunedPath.
      
  | 
  overrideprivatevirtual | 
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 156 of file pns_meander_skew_placer.cpp.
References PNS::MEANDER_PLACER_BASE::lineLength(), PNS::MEANDER_PLACER_BASE::m_endPad_n, PNS::MEANDER_PLACER_BASE::m_endPad_p, PNS::MEANDER_PLACER::m_originLine, m_originPair, m_padToDieLengthN, m_padToDieLengthP, PNS::MEANDER_PLACER_BASE::m_startPad_n, PNS::MEANDER_PLACER_BASE::m_startPad_p, and PNS::MEANDER_PLACER::m_tunedPath.
      
  | 
  inlineinherited | 
Return current router settings.
Definition at line 54 of file pns_algo_base.h.
References m_router.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::MEANDER_PLACER_BASE::Clearance(), PNS::DIFF_PAIR_PLACER::CommitPlacement(), PNS::DP_MEANDER_PLACER::CommitPlacement(), PNS::LINE_PLACER::CommitPlacement(), PNS::MEANDER_PLACER::CommitPlacement(), PNS::COMPONENT_DRAGGER::FixRoute(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::DRAGGER::FixRoute(), PNS::MULTI_DRAGGER::FixRoute(), PNS::DIFF_PAIR_PLACER::initPlacement(), PNS::LINE_PLACER::initPlacement(), PNS::MEANDER_PLACER_BASE::lineDelay(), PNS::MEANDER_PLACER_BASE::lineLength(), PNS::LINE_PLACER::makeVia(), PNS::MULTI_DRAGGER::multidragShove(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::reconstructHeads(), PNS::SHOVE::removeHeads(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::Run(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveIteration(), PNS::DIFF_PAIR_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), PNS::DRAGGER::Start(), PNS::LINE_PLACER::Start(), PNS::MEANDER_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::MULTI_DRAGGER::Start(), PNS::DRAGGER::tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
      
  | 
  inlineinherited | 
Assign a debug decorator allowing this algo to draw extra graphics for visual debugging.
Definition at line 73 of file pns_algo_base.h.
References m_debugDecorator.
Referenced by PNS::SHOVE::onCollidingSolid(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::SHOVE(), PNS::DRAGGER::tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
      
  | 
  inlinevirtualinherited | 
Function SetLayer()
Sets the current routing layer.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 114 of file pns_placement_algo.h.
      
  | 
  inlineinherited | 
Definition at line 65 of file pns_algo_base.h.
References m_logger.
Referenced by PNS::LINE_PLACER::rhWalkBase(), PNS::DRAGGER::tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
      
  | 
  inlinevirtualinherited | 
Function SetOrthoMode()
Forces the router to place a straight 90/45 degree trace (with the end as near to the cursor as possible) instead of a standard 135 degree two-segment bend.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 189 of file pns_placement_algo.h.
      
  | 
  inherited | 
Return the logger object, allowing to dump geometry to a file.
Definition at line 28 of file pns_algo_base.cpp.
References m_router.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::CommitPlacement(), PNS::MULTI_DRAGGER::Drag(), PNS::DRAGGER::dragMarkObstacles(), PNS::DRAGGER::dragShove(), PNS::DRAGGER::dragWalkaround(), PNS::COMPONENT_DRAGGER::FixRoute(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::LINE_PLACER::FixRoute(), PNS::MULTI_DRAGGER::FixRoute(), PNS::LINE_PLACER::Move(), PNS::SHOVE::onCollidingSolid(), PNS::DRAGGER::optimizeAndUpdateDraggedLine(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PNS::DRAGGER::propagateViaForces(), PNS::SHOVE::pushOrShoveVia(), PNS::LINE_PLACER::rhMarkObstacles(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::rhWalkOnly(), PNS::DIFF_PAIR_PLACER::route(), PNS::LINE_PLACER::routeHead(), PNS::LINE_PLACER::routeStep(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveMainLoop(), PNS::WALKAROUND::singleStep(), PNS::DRAGGER::Start(), PNS::LINE_PLACER::Start(), PNS::MULTI_DRAGGER::Start(), PNS::DRAGGER::tryWalkaround(), PNS::MULTI_DRAGGER::tryWalkaround(), PNS::LINE_PLACER::UnfixRoute(), and PNS::WALKAROUND::WALKAROUND().
      
  | 
  virtualinherited | 
Increase/decrease the current meandering spacing by one step.
| aSign | direction (negative = decrease, positive = increase). | 
Definition at line 58 of file pns_meander_placer_base.cpp.
References Clearance(), m_currentWidth, and m_settings.
Referenced by DRAWING_TOOL::PlaceTuningPattern().
Function Start()
Starts placement/drag operation at point aP, taking item aStartItem as anchor (unless NULL).
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 51 of file pns_meander_skew_placer.cpp.
References _, PNS::ITEM::ARC_T, PNS::TOPOLOGY::AssembleDiffPair(), PNS::TOPOLOGY::AssembleTrivialPath(), PNS::TOPOLOGY::AssembleTuningPath(), PNS::NODE::Branch(), calculateTimeDomainTargets(), BOARD_CONNECTED_ITEM::GetEffectiveNetClass(), PNS::MEANDER_PLACER_BASE::getSnappedStartPoint(), PNS::ITEM::GetSourceItem(), PNS::ROUTER::GetWorld(), PNS::MEANDER_PLACER_BASE::lineDelay(), PNS::MEANDER_PLACER_BASE::lineLength(), m_coupledDelay, m_coupledLength, PNS::MEANDER_PLACER_BASE::m_currentEnd, PNS::MEANDER_PLACER::m_currentNode, PNS::MEANDER_PLACER::m_currentStart, PNS::MEANDER_PLACER_BASE::m_currentWidth, PNS::MEANDER_PLACER_BASE::m_endPad_n, PNS::MEANDER_PLACER_BASE::m_endPad_p, PNS::MEANDER_PLACER::m_initialSegment, PNS::MEANDER_PLACER::m_lastDelay, PNS::MEANDER_PLACER::m_lastLength, PNS::MEANDER_PLACER::m_netClass, PNS::MEANDER_PLACER::m_originLine, m_originPair, m_padToDieDelayN, m_padToDieDelayP, m_padToDieLengthN, m_padToDieLengthP, PNS::MEANDER_PLACER_BASE::m_settings, PNS::MEANDER_PLACER_BASE::m_startPad_n, PNS::MEANDER_PLACER_BASE::m_startPad_p, PNS::MEANDER_PLACER::m_tunedPath, m_tunedPathN, m_tunedPathP, PNS::MEANDER_PLACER_BASE::m_world, PNS::ITEM::OfKind(), PNS::ALGO_BASE::Router(), PNS::ITEM::SEGMENT_T, and PNS::ROUTER::SetFailureReason().
      
  | 
  inlinevirtualinherited | 
Function ToggleVia()
Enables/disables a via at the end of currently routed trace.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 94 of file pns_placement_algo.h.
      
  | 
  overridevirtualinherited | 
Function Traces()
Returns all routed/tuned traces.
Implements PNS::PLACEMENT_ALGO.
Definition at line 351 of file pns_meander_placer.cpp.
References LINE, m_currentTrace, m_finalShape, and m_originLine.
      
  | 
  overridevirtualinherited | 
Implements PNS::MEANDER_PLACER_BASE.
Definition at line 357 of file pns_meander_placer.cpp.
References m_tunedPath.
      
  | 
  protectedinherited | 
Take a set of meanders in aTuned and tunes their length to extend the original line length by aElongation.
Definition at line 156 of file pns_meander_placer_base.cpp.
References end, PNS::findAmplitudeForLength(), PNS::MEANDERED_LINE::Meanders(), PNS::MT_ARC, PNS::MT_CORNER, PNS::MT_EMPTY, PNS::MT_FINISH, PNS::MT_SINGLE, and PNS::MT_START.
Referenced by PNS::MEANDER_PLACER::doMove(), and PNS::DP_MEANDER_PLACER::Move().
      
  | 
  overridevirtual | 
Return the resultant delay or skew of the tuned traces.
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 218 of file pns_meander_skew_placer.cpp.
References m_coupledDelay, and PNS::MEANDER_PLACER::m_lastDelay.
      
  | 
  overridevirtual | 
Return the resultant length or skew of the tuned traces.
Reimplemented from PNS::MEANDER_PLACER.
Definition at line 212 of file pns_meander_skew_placer.cpp.
References m_coupledLength, and PNS::MEANDER_PLACER::m_lastLength.
      
  | 
  overridevirtualinherited | 
Return the tuning status (too short, too long, etc.) of the trace(s) being tuned.
Implements PNS::MEANDER_PLACER_BASE.
Definition at line 396 of file pns_meander_placer.cpp.
References m_lastStatus.
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::LINE_PLACER.
Definition at line 81 of file pns_placement_algo.h.
      
  | 
  virtualinherited | 
Definition at line 84 of file pns_meander_placer_base.cpp.
References m_settings.
Referenced by PCB_TUNING_PATTERN::Update().
      
  | 
  inlinevirtualinherited | 
Function UpdateSizes()
Performs on-the-fly update of the width, via diameter & drill size from a settings class. Used to dynamically change these parameters as the track is routed.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
Definition at line 178 of file pns_placement_algo.h.
      
  | 
  inherited | 
Definition at line 40 of file pns_algo_base.cpp.
References m_router.
Referenced by PNS::SHOVE::runOptimizer().
      
  | 
  private | 
Definition at line 70 of file pns_meander_skew_placer.h.
Referenced by calculateTimeDomainTargets(), MEANDER_SKEW_PLACER(), Start(), and TuningDelayResult().
      
  | 
  private | 
Definition at line 69 of file pns_meander_skew_placer.h.
Referenced by CurrentSkew(), MEANDER_SKEW_PLACER(), Move(), Start(), and TuningLengthResult().
      
  | 
  protectedinherited | 
Definition at line 155 of file pns_meander_placer_base.h.
Referenced by PNS::DP_MEANDER_PLACER::CurrentEnd(), PNS::MEANDER_PLACER::CurrentEnd(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 120 of file pns_meander_placer.h.
Referenced by CheckFit(), CommitPlacement(), CurrentNode(), doMove(), FixRoute(), MEANDER_PLACER(), Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Current world state.
Definition at line 117 of file pns_meander_placer.h.
Referenced by CurrentStart(), doMove(), Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 123 of file pns_meander_placer.h.
Referenced by FixRoute(), HasPlacedAnything(), and Traces().
      
  | 
  protectedinherited | 
Meander settings.
Definition at line 149 of file pns_meander_placer_base.h.
Referenced by PNS::MEANDER_PLACER::calculateTimeDomainTargets(), Clearance(), PNS::MEANDER_PLACER::doMove(), MEANDER_PLACER_BASE(), SpacingStep(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 86 of file pns_algo_base.h.
Referenced by ALGO_BASE(), Dbg(), and SetDebugDecorator().
      
  | 
  protectedinherited | 
Definition at line 160 of file pns_meander_placer_base.h.
Referenced by MEANDER_PLACER_BASE(), PNS::DP_MEANDER_PLACER::origPathDelay(), PNS::MEANDER_PLACER::origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), PNS::DP_MEANDER_PLACER::origPathLength(), PNS::MEANDER_PLACER::origPathLength(), PNS::MEANDER_SKEW_PLACER::origPathLength(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 158 of file pns_meander_placer_base.h.
Referenced by MEANDER_PLACER_BASE(), PNS::DP_MEANDER_PLACER::origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), PNS::DP_MEANDER_PLACER::origPathLength(), PNS::MEANDER_SKEW_PLACER::origPathLength(), PNS::DP_MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 126 of file pns_meander_placer.h.
Referenced by doMove(), FixRoute(), and Traces().
      
  | 
  protectedinherited | 
Total length added by pad to die size.
Definition at line 128 of file pns_meander_placer.h.
Referenced by CurrentLayer(), MEANDER_PLACER(), Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 140 of file pns_meander_placer.h.
Referenced by PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), doMove(), MEANDER_PLACER(), PNS::MEANDER_SKEW_PLACER::Start(), TuningDelayResult(), and PNS::MEANDER_SKEW_PLACER::TuningDelayResult().
      
  | 
  protectedinherited | 
Definition at line 139 of file pns_meander_placer.h.
Referenced by PNS::MEANDER_SKEW_PLACER::CurrentSkew(), doMove(), MEANDER_PLACER(), PNS::MEANDER_SKEW_PLACER::Start(), TuningLengthResult(), and PNS::MEANDER_SKEW_PLACER::TuningLengthResult().
      
  | 
  protectedinherited | 
Definition at line 141 of file pns_meander_placer.h.
Referenced by doMove(), MEANDER_PLACER(), and TuningStatus().
      
  | 
  protectedinherited | 
Definition at line 88 of file pns_algo_base.h.
Referenced by ALGO_BASE(), Logger(), and SetLogger().
      
  | 
  protectedinherited | 
Definition at line 137 of file pns_meander_placer.h.
Referenced by calculateTimeDomainTargets(), PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), doMove(), MEANDER_PLACER(), Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 122 of file pns_meander_placer.h.
Referenced by CheckFit(), CurrentNets(), doMove(), FixRoute(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathLength(), Start(), PNS::MEANDER_SKEW_PLACER::Start(), and Traces().
      
  | 
  private | 
Definition at line 66 of file pns_meander_skew_placer.h.
Referenced by calculateTimeDomainTargets(), Move(), origPathDelay(), origPathLength(), and Start().
      
  | 
  protectedinherited | 
The netclass for the placed segments.
Definition at line 134 of file pns_meander_placer.h.
Referenced by MEANDER_PLACER(), origPathDelay(), and Start().
      
  | 
  private | 
Definition at line 74 of file pns_meander_skew_placer.h.
Referenced by MEANDER_SKEW_PLACER(), origPathDelay(), and Start().
      
  | 
  private | 
Definition at line 73 of file pns_meander_skew_placer.h.
Referenced by MEANDER_SKEW_PLACER(), origPathDelay(), and Start().
      
  | 
  protectedinherited | 
Total length added by pad to die size.
Definition at line 131 of file pns_meander_placer.h.
Referenced by MEANDER_PLACER(), origPathLength(), and Start().
      
  | 
  private | 
Definition at line 72 of file pns_meander_skew_placer.h.
Referenced by MEANDER_SKEW_PLACER(), origPathLength(), and Start().
      
  | 
  private | 
Definition at line 71 of file pns_meander_skew_placer.h.
Referenced by MEANDER_SKEW_PLACER(), origPathLength(), and Start().
      
  | 
  protectedinherited | 
Definition at line 127 of file pns_meander_placer.h.
Referenced by CheckFit(), and doMove().
      
  | 
  protectedinherited | 
Definition at line 87 of file pns_algo_base.h.
Referenced by ALGO_BASE(), PNS::DP_MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::doMove(), PNS::LINE_PLACER::FixRoute(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), Router(), Settings(), PNS::DIFF_PAIR_PLACER::updateLeadingRatLine(), PNS::LINE_PLACER::updateLeadingRatLine(), and VisibleViewArea().
      
  | 
  protectedinherited | 
The current end point.
Definition at line 152 of file pns_meander_placer_base.h.
Referenced by AmplitudeStep(), PNS::DP_MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::CheckFit(), PNS::MEANDER_PLACER::doMove(), lineDelay(), lineLength(), MeanderSettings(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), SpacingStep(), PNS::MEANDER_SKEW_PLACER::Start(), and UpdateSettings().
      
  | 
  protectedinherited | 
Definition at line 159 of file pns_meander_placer_base.h.
Referenced by MEANDER_PLACER_BASE(), PNS::DP_MEANDER_PLACER::origPathDelay(), PNS::MEANDER_PLACER::origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), PNS::DP_MEANDER_PLACER::origPathLength(), PNS::MEANDER_PLACER::origPathLength(), PNS::MEANDER_SKEW_PLACER::origPathLength(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 157 of file pns_meander_placer_base.h.
Referenced by MEANDER_PLACER_BASE(), PNS::DP_MEANDER_PLACER::origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), PNS::DP_MEANDER_PLACER::origPathLength(), PNS::MEANDER_SKEW_PLACER::origPathLength(), PNS::DP_MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  protectedinherited | 
Definition at line 124 of file pns_meander_placer.h.
Referenced by doMove(), origPathDelay(), PNS::MEANDER_SKEW_PLACER::origPathDelay(), origPathLength(), PNS::MEANDER_SKEW_PLACER::origPathLength(), Start(), PNS::MEANDER_SKEW_PLACER::Start(), and TunedPath().
      
  | 
  private | 
Definition at line 67 of file pns_meander_skew_placer.h.
      
  | 
  private | 
Definition at line 67 of file pns_meander_skew_placer.h.
      
  | 
  protectedinherited | 
Width of the meandered trace(s).
Definition at line 146 of file pns_meander_placer_base.h.
Referenced by PNS::DP_MEANDER_PLACER::AbortPlacement(), PNS::MEANDER_PLACER::AbortPlacement(), PNS::DP_MEANDER_PLACER::CurrentNode(), PNS::MEANDER_PLACER::CurrentNode(), PNS::MEANDER_PLACER::doMove(), PNS::DP_MEANDER_PLACER::DP_MEANDER_PLACER(), MEANDER_PLACER_BASE(), PNS::DP_MEANDER_PLACER::Move(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().