KiCad PCB EDA Suite
|
Dimensions for the meandering algorithm. More...
#include <pns_meander.h>
Public Member Functions | |
MEANDER_SETTINGS () | |
void | SetTargetLength (long long int aOpt) |
void | SetTargetLength (const MINOPTMAX< int > &aConstraint) |
void | SetTargetLengthDelay (long long int aOpt) |
void | SetTargetLengthDelay (const MINOPTMAX< int > &aConstraint) |
void | SetTargetSkew (int aOpt) |
void | SetTargetSkew (const MINOPTMAX< int > &aConstraint) |
void | SetTargetSkewDelay (int aOpt) |
void | SetTargetSkewDelay (const MINOPTMAX< int > &aConstraint) |
Minimum meandering amplitude. | |
Public Attributes | |
int | m_minAmplitude |
Maximum meandering amplitude. | |
int | m_maxAmplitude |
Meandering period/spacing (see dialog picture for explanation). | |
int | m_spacing |
Amplitude/spacing adjustment step. | |
int | m_step |
Length PadToDie. | |
int | m_lenPadToDie |
Desired length of the tuned line/diff pair (this is in nm, so allow more than board width). | |
MINOPTMAX< long long int > | m_targetLength |
Desired propagation delay of the tuned line. | |
MINOPTMAX< long long int > | m_targetLengthDelay |
Target skew value for diff pair de-skewing. | |
MINOPTMAX< int > | m_targetSkew |
Target skew value for diff pair de-skewing. | |
MINOPTMAX< int > | m_targetSkewDelay |
bool | m_overrideCustomRules |
Type of corners for the meandered line. | |
MEANDER_STYLE | m_cornerStyle |
Rounding percentage (0 - 100). | |
int | m_cornerRadiusPercentage |
Place meanders on one side. | |
bool | m_singleSided |
Initial side when placing meanders at segment. | |
MEANDER_SIDE | m_initialSide |
Allowable tuning error. | |
int | m_lengthTolerance |
Keep vertices between pre, tuned and post parts of the line. | |
bool | m_keepEndpoints |
Calculate tuning in the time domain. | |
bool | m_isTimeDomain |
The net class this meander pattern belongs to. | |
NETCLASS * | m_netClass |
Static Public Attributes | |
static const long long int | DEFAULT_LENGTH_TOLERANCE |
static const long long int | LENGTH_UNCONSTRAINED |
static const long long int | DEFAULT_DELAY_TOLERANCE |
static const long long int | DELAY_UNCONSTRAINED |
static const int | SKEW_UNCONSTRAINED |
Dimensions for the meandering algorithm.
Definition at line 67 of file pns_meander.h.
PNS::MEANDER_SETTINGS::MEANDER_SETTINGS | ( | ) |
Definition at line 40 of file pns_meander.cpp.
References DELAY_UNCONSTRAINED, LENGTH_UNCONSTRAINED, m_cornerRadiusPercentage, m_cornerStyle, m_initialSide, m_isTimeDomain, m_keepEndpoints, m_lengthTolerance, m_lenPadToDie, m_maxAmplitude, m_minAmplitude, m_netClass, m_overrideCustomRules, m_singleSided, m_spacing, m_step, PNS::MEANDER_SIDE_LEFT, PNS::MEANDER_STYLE_ROUND, SetTargetLength(), SetTargetLengthDelay(), SetTargetSkew(), and SetTargetSkewDelay().
void PNS::MEANDER_SETTINGS::SetTargetLength | ( | const MINOPTMAX< int > & | aConstraint | ) |
Definition at line 80 of file pns_meander.cpp.
References MINOPTMAX< T >::HasMax(), MINOPTMAX< T >::HasMin(), m_targetLength, MINOPTMAX< T >::Max(), MINOPTMAX< T >::Min(), MINOPTMAX< T >::Opt(), MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), and SetTargetLength().
void PNS::MEANDER_SETTINGS::SetTargetLength | ( | long long int | aOpt | ) |
Definition at line 63 of file pns_meander.cpp.
References DEFAULT_LENGTH_TOLERANCE, LENGTH_UNCONSTRAINED, m_targetLength, MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), and MINOPTMAX< T >::SetOpt().
Referenced by PCB_TUNING_PATTERN::CreateNew(), PCB_TUNING_PATTERN::EditStart(), MEANDER_SETTINGS(), PCB_TUNING_PATTERN::SetProperties(), SetTargetLength(), PCB_TUNING_PATTERN::SetTargetLength(), PCB_TUNING_PATTERN::ShowPropertiesDialog(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow().
void PNS::MEANDER_SETTINGS::SetTargetLengthDelay | ( | const MINOPTMAX< int > & | aConstraint | ) |
Definition at line 109 of file pns_meander.cpp.
References MINOPTMAX< T >::HasMax(), MINOPTMAX< T >::HasMin(), m_targetLengthDelay, MINOPTMAX< T >::Max(), MINOPTMAX< T >::Min(), MINOPTMAX< T >::Opt(), MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), and SetTargetLengthDelay().
void PNS::MEANDER_SETTINGS::SetTargetLengthDelay | ( | long long int | aOpt | ) |
Definition at line 92 of file pns_meander.cpp.
References DEFAULT_DELAY_TOLERANCE, DELAY_UNCONSTRAINED, m_targetLengthDelay, MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), and MINOPTMAX< T >::SetOpt().
Referenced by PCB_TUNING_PATTERN::CreateNew(), PCB_TUNING_PATTERN::EditStart(), MEANDER_SETTINGS(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::SetTargetDelay(), SetTargetLengthDelay(), PCB_TUNING_PATTERN::ShowPropertiesDialog(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow().
void PNS::MEANDER_SETTINGS::SetTargetSkew | ( | const MINOPTMAX< int > & | aConstraint | ) |
Definition at line 138 of file pns_meander.cpp.
References MINOPTMAX< T >::HasMax(), MINOPTMAX< T >::HasMin(), m_targetSkew, MINOPTMAX< T >::Max(), MINOPTMAX< T >::Min(), MINOPTMAX< T >::Opt(), MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), and SetTargetSkew().
void PNS::MEANDER_SETTINGS::SetTargetSkew | ( | int | aOpt | ) |
Definition at line 121 of file pns_meander.cpp.
References DEFAULT_LENGTH_TOLERANCE, m_targetSkew, MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), MINOPTMAX< T >::SetOpt(), and SKEW_UNCONSTRAINED.
Referenced by PCB_TUNING_PATTERN::CreateNew(), PCB_TUNING_PATTERN::EditStart(), MEANDER_SETTINGS(), PCB_TUNING_PATTERN::SetProperties(), SetTargetSkew(), PCB_TUNING_PATTERN::SetTargetSkew(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow().
void PNS::MEANDER_SETTINGS::SetTargetSkewDelay | ( | const MINOPTMAX< int > & | aConstraint | ) |
Minimum meandering amplitude.
Definition at line 167 of file pns_meander.cpp.
References MINOPTMAX< T >::HasMax(), MINOPTMAX< T >::HasMin(), m_targetSkewDelay, MINOPTMAX< T >::Max(), MINOPTMAX< T >::Min(), MINOPTMAX< T >::Opt(), MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), and SetTargetSkewDelay().
void PNS::MEANDER_SETTINGS::SetTargetSkewDelay | ( | int | aOpt | ) |
Definition at line 150 of file pns_meander.cpp.
References DEFAULT_LENGTH_TOLERANCE, m_targetSkewDelay, MINOPTMAX< T >::SetMax(), MINOPTMAX< T >::SetMin(), MINOPTMAX< T >::SetOpt(), and SKEW_UNCONSTRAINED.
Referenced by PCB_TUNING_PATTERN::CreateNew(), PCB_TUNING_PATTERN::EditStart(), MEANDER_SETTINGS(), SetTargetSkewDelay(), PCB_TUNING_PATTERN::SetTargetSkewDelay(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow().
|
static |
Definition at line 73 of file pns_meander.h.
Referenced by SetTargetLengthDelay().
|
static |
Definition at line 70 of file pns_meander.h.
Referenced by SetTargetLength(), SetTargetSkew(), and SetTargetSkewDelay().
|
static |
Definition at line 74 of file pns_meander.h.
Referenced by PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetTargetDelay(), MEANDER_SETTINGS(), PCB_TUNING_PATTERN::SetTargetDelay(), SetTargetLengthDelay(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
|
static |
Definition at line 71 of file pns_meander.h.
Referenced by PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetTargetLength(), MEANDER_SETTINGS(), SetTargetLength(), PCB_TUNING_PATTERN::SetTargetLength(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
int PNS::MEANDER_SETTINGS::m_cornerRadiusPercentage |
Place meanders on one side.
Definition at line 125 of file pns_meander.h.
Referenced by BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), PNS::MEANDER_SHAPE::cornerRadius(), PCB_TUNING_PATTERN::GetCornerRadiusPercentage(), PCB_TUNING_PATTERN::GetProperties(), MEANDER_SETTINGS(), PCB_TUNING_PATTERN::SetCornerRadiusPercentage(), PCB_TUNING_PATTERN::SetProperties(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), and PANEL_SETUP_TUNING_PATTERNS::TransferDataToWindow().
MEANDER_STYLE PNS::MEANDER_SETTINGS::m_cornerStyle |
Rounding percentage (0 - 100).
Definition at line 122 of file pns_meander.h.
Referenced by BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), PNS::MEANDER_SHAPE::cornerRadius(), PCB_TUNING_PATTERN::getOutline(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::IsRounded(), PNS::MEANDER_SHAPE::makeMiterShape(), MEANDER_SETTINGS(), PNS::MEANDER_SHAPE::MinAmplitude(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::SetRounded(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), and PANEL_SETUP_TUNING_PATTERNS::TransferDataToWindow().
MEANDER_SIDE PNS::MEANDER_SETTINGS::m_initialSide |
Allowable tuning error.
Definition at line 131 of file pns_meander.h.
Referenced by PCB_TUNING_PATTERN::baseMirror(), PNS::MEANDER_PLACER::doMove(), PCB_TUNING_PATTERN::EditStart(), PCB_TUNING_PATTERN::GetInitialSide(), PCB_TUNING_PATTERN::getOutline(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::MakeEditPoints(), MEANDER_SETTINGS(), PNS::MEANDERED_LINE::MeanderSegment(), PNS::DP_MEANDER_PLACER::Move(), PCB_TUNING_PATTERN::PCB_TUNING_PATTERN(), PCB_TUNING_PATTERN::SetInitialSide(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::UpdateEditPoints(), and PCB_TUNING_PATTERN::UpdateFromEditPoints().
bool PNS::MEANDER_SETTINGS::m_isTimeDomain |
The net class this meander pattern belongs to.
Definition at line 140 of file pns_meander.h.
Referenced by PNS::DP_MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), PCB_TUNING_PATTERN::CreateNew(), PNS::MEANDER_PLACER::doMove(), PCB_TUNING_PATTERN::EditStart(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetProperties(), MEANDER_SETTINGS(), PNS::DP_MEANDER_PLACER::Move(), DIALOG_TUNING_PATTERN_PROPERTIES::onOverrideCustomRules(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::SetTargetDelay(), PCB_TUNING_PATTERN::SetTargetLength(), PCB_TUNING_PATTERN::ShowPropertiesDialog(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), and PCB_TUNING_PATTERN::Update().
bool PNS::MEANDER_SETTINGS::m_keepEndpoints |
Calculate tuning in the time domain.
Definition at line 137 of file pns_meander.h.
Referenced by PNS::MEANDER_PLACER::doMove(), MEANDER_SETTINGS(), PNS::DP_MEANDER_PLACER::Move(), and PCB_TUNING_PATTERN::Update().
int PNS::MEANDER_SETTINGS::m_lengthTolerance |
Keep vertices between pre, tuned and post parts of the line.
Definition at line 134 of file pns_meander.h.
Referenced by MEANDER_SETTINGS().
int PNS::MEANDER_SETTINGS::m_lenPadToDie |
Desired length of the tuned line/diff pair (this is in nm, so allow more than board width).
Definition at line 105 of file pns_meander.h.
Referenced by MEANDER_SETTINGS().
int PNS::MEANDER_SETTINGS::m_maxAmplitude |
Meandering period/spacing (see dialog picture for explanation).
Definition at line 96 of file pns_meander.h.
Referenced by PNS::MEANDER_PLACER_BASE::AmplitudeStep(), BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), PNS::MEANDER_SHAPE::Fit(), PCB_TUNING_PATTERN::GetMaxAmplitude(), PCB_TUNING_PATTERN::getOutline(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::MakeEditPoints(), MEANDER_SETTINGS(), DRAWING_TOOL::PlaceTuningPattern(), PCB_TUNING_PATTERN::SetMaxAmplitude(), PCB_TUNING_PATTERN::SetMinAmplitude(), PCB_TUNING_PATTERN::SetProperties(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataToWindow(), and PCB_TUNING_PATTERN::UpdateEditPoints().
int PNS::MEANDER_SETTINGS::m_minAmplitude |
Maximum meandering amplitude.
Definition at line 93 of file pns_meander.h.
Referenced by PNS::MEANDER_PLACER_BASE::AmplitudeStep(), BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), PCB_TUNING_PATTERN::GetMinAmplitude(), PCB_TUNING_PATTERN::GetProperties(), MEANDER_SETTINGS(), PNS::MEANDER_SHAPE::MinAmplitude(), PCB_TUNING_PATTERN::SetMaxAmplitude(), PCB_TUNING_PATTERN::SetMinAmplitude(), PCB_TUNING_PATTERN::SetProperties(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), and PANEL_SETUP_TUNING_PATTERNS::TransferDataToWindow().
NETCLASS* PNS::MEANDER_SETTINGS::m_netClass |
Definition at line 143 of file pns_meander.h.
Referenced by PCB_TUNING_PATTERN::CreateNew(), PCB_TUNING_PATTERN::EditStart(), PNS::MEANDER_PLACER_BASE::lineDelay(), PNS::MEANDER_PLACER_BASE::lineLength(), MEANDER_SETTINGS(), and PNS::MEANDER_SKEW_PLACER::Start().
bool PNS::MEANDER_SETTINGS::m_overrideCustomRules |
Type of corners for the meandered line.
Definition at line 119 of file pns_meander.h.
Referenced by PCB_TUNING_PATTERN::EditStart(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_TUNING_PATTERN::GetOverrideCustomRules(), PCB_TUNING_PATTERN::GetProperties(), MEANDER_SETTINGS(), PCB_TUNING_PATTERN::SetOverrideCustomRules(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::ShowPropertiesDialog(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
bool PNS::MEANDER_SETTINGS::m_singleSided |
Initial side when placing meanders at segment.
Definition at line 128 of file pns_meander.h.
Referenced by BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), PCB_TUNING_PATTERN::getOutline(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::IsSingleSided(), MEANDER_SETTINGS(), PNS::MEANDERED_LINE::MeanderSegment(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::SetSingleSided(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), and PANEL_SETUP_TUNING_PATTERNS::TransferDataToWindow().
int PNS::MEANDER_SETTINGS::m_spacing |
Amplitude/spacing adjustment step.
Definition at line 99 of file pns_meander.h.
Referenced by BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), PNS::MEANDER_PLACER::CheckFit(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::GetSpacing(), PCB_TUNING_PATTERN::MakeEditPoints(), MEANDER_SETTINGS(), DRAWING_TOOL::PlaceTuningPattern(), PCB_TUNING_PATTERN::SetProperties(), PCB_TUNING_PATTERN::SetSpacing(), PNS::MEANDER_PLACER_BASE::SpacingStep(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataFromWindow(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow(), PANEL_SETUP_TUNING_PATTERNS::TransferDataToWindow(), and PCB_TUNING_PATTERN::UpdateEditPoints().
int PNS::MEANDER_SETTINGS::m_step |
Length PadToDie.
Definition at line 102 of file pns_meander.h.
Referenced by PNS::MEANDER_PLACER_BASE::AmplitudeStep(), PNS::MEANDER_SHAPE::Fit(), MEANDER_SETTINGS(), PNS::MEANDERED_LINE::MeanderSegment(), and PNS::MEANDER_PLACER_BASE::SpacingStep().
MINOPTMAX<long long int> PNS::MEANDER_SETTINGS::m_targetLength |
Desired propagation delay of the tuned line.
Definition at line 108 of file pns_meander.h.
Referenced by PNS::DP_MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::doMove(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::GetTargetLength(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_PLACER::Move(), DRAWING_TOOL::PlaceTuningPattern(), PCB_TUNING_PATTERN::SetProperties(), SetTargetLength(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
MINOPTMAX<long long int> PNS::MEANDER_SETTINGS::m_targetLengthDelay |
Target skew value for diff pair de-skewing.
Definition at line 111 of file pns_meander.h.
Referenced by PNS::DP_MEANDER_PLACER::calculateTimeDomainTargets(), PNS::MEANDER_PLACER::calculateTimeDomainTargets(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::GetTargetDelay(), PCB_TUNING_PATTERN::SetProperties(), SetTargetLengthDelay(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
MINOPTMAX<int> PNS::MEANDER_SETTINGS::m_targetSkew |
Target skew value for diff pair de-skewing.
Definition at line 114 of file pns_meander.h.
Referenced by PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetProperties(), PCB_TUNING_PATTERN::GetTargetSkew(), PNS::MEANDER_SKEW_PLACER::Move(), DRAWING_TOOL::PlaceTuningPattern(), PCB_TUNING_PATTERN::SetProperties(), SetTargetSkew(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
MINOPTMAX<int> PNS::MEANDER_SETTINGS::m_targetSkewDelay |
Definition at line 117 of file pns_meander.h.
Referenced by PNS::MEANDER_SKEW_PLACER::calculateTimeDomainTargets(), PCB_TUNING_PATTERN::GetPreviewItems(), PCB_TUNING_PATTERN::GetTargetSkewDelay(), SetTargetSkewDelay(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().
|
static |
Definition at line 76 of file pns_meander.h.
Referenced by SetTargetSkew(), SetTargetSkewDelay(), DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataFromWindow(), and DIALOG_TUNING_PATTERN_PROPERTIES::TransferDataToWindow().