72                                       "net for skew tuning. Make sure the names of the nets belonging " 
   73                                       "to a differential pair end with either _N/_P or +/-." ) );
 
 
  190            PNS_DBG( 
Dbg(), AddItem, l, 
BLUE, 10000, wxT( 
"tuned-path-skew-p" ) );
 
  192            m_router->GetInterface()->DisplayPathLine( l->CLine(), isPositive ? 1 : 0 );
 
  202            m_router->GetInterface()->DisplayPathLine( l->CLine(), isPositive ? 0 : 1 );
 
 
  226    auto calculateTargetSkew = [
this]( 
const int64_t targetSkewDelay )
 
  229        const int64_t skewDelayDifference = targetSkewDelay - curSkewDelay;
 
  231        int64_t skewLengthDiff = 
m_router->GetInterface()->CalculateLengthForDelay(
 
  236        skewLengthDiff = skewDelayDifference > 0 ? skewLengthDiff : -skewLengthDiff;
 
  238        return static_cast<int>( curSkew + skewLengthDiff );
 
  243        const int minSkew = calculateTargetSkew( 
m_settings.m_targetSkewDelay.Min() );
 
  244        m_settings.m_targetSkew.SetMin( 
static_cast<int>( minSkew ) );
 
  246        const int optSkew = calculateTargetSkew( 
m_settings.m_targetSkewDelay.Opt() );
 
  247        m_settings.m_targetSkew.SetOpt( 
static_cast<int>( optSkew ) );
 
  249        const int maxSkew = calculateTargetSkew( 
m_settings.m_targetSkewDelay.Max() );
 
  250        m_settings.m_targetSkew.SetMax( 
static_cast<int>( maxSkew ) );
 
 
A base class derived from BOARD_ITEM for items that can be connected and have a net,...
 
virtual NETCLASS * GetEffectiveNetClass() const
Return the NETCLASS for this item.
 
ROUTER * Router() const
Return current router settings.
 
DEBUG_DECORATOR * Dbg() const
 
Base class for PNS router board items.
 
BOARD_ITEM * GetSourceItem() const
 
bool OfKind(int aKindMask) const
 
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
 
int m_currentWidth
Meander settings.
 
MEANDER_SETTINGS m_settings
The current end point.
 
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)
 
NODE * m_world
Width of the meandered trace(s).
 
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)
 
bool doMove(const VECTOR2I &aP, ITEM *aEndItem, long long int aTargetLength, long long int aTargetMin, long long int aTargetMax)
 
LINKED_ITEM * m_initialSegment
Total length added by pad to die size.
 
MEANDER_PLACER(ROUTER *aRouter)
 
VECTOR2I m_currentStart
Current world state.
 
long long int m_lastLength
 
int64_t origPathDelay() const override
 
long long int origPathLength() const override
 
long long int m_coupledLength
 
MEANDER_SKEW_PLACER(ROUTER *aRouter)
 
bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()
 
bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
 
long long int TuningLengthResult() const override
Return the resultant length or skew of the tuned traces.
 
long long int CurrentSkew() const
 
void calculateTimeDomainTargets() override
current routing start point (end of tail, beginning of head)
 
int64_t TuningDelayResult() const override
Return the resultant delay or skew of the tuned traces.
 
NODE * Branch()
Create a lightweight copy (called branch) of self that tracks the changes (added/removed items) wrs t...
 
void SetFailureReason(const wxString &aReason)
 
const DIFF_PAIR AssembleDiffPair(SEGMENT *aStart)
 
const ITEM_SET AssembleTuningPath(ROUTER_IFACE *aRouterIface, ITEM *aStart, SOLID **aStartPad=nullptr, SOLID **aEndPad=nullptr)
Like AssembleTrivialPath, but follows the track length algorithm, which discards segments that are fu...
 
const ITEM_SET AssembleTrivialPath(ITEM *aStart, std::pair< const JOINT *, const JOINT * > *aTerminalJoints=nullptr, bool aFollowLockedSegments=false)
Assemble a trivial path between two joints given a starting item.
 
Push and Shove diff pair dimensions (gap) settings dialog.
 
EDA_ANGLE abs(const EDA_ANGLE &aAngle)
 
#define PNS_DBG(dbg, method,...)
 
Casted dyn_cast(From aObject)
A lightweight dynamic downcast.
 
VECTOR2< int32_t > VECTOR2I