|
KiCad PCB EDA Suite
|
#include <tuning_profile_parameters_user_defined.h>
Classes | |
| struct | VIA_OVERRIDE_CACHE_KEY |
| Cache key for use with std::map. More... | |
Public Member Functions | |
| TUNING_PROFILE_PARAMETERS_USER_DEFINED (BOARD *aBoard, LENGTH_DELAY_CALCULATION *aCalculation) | |
| void | OnSettingsChanged () override |
| Event called by the length and time calculation architecture if netclass definitions have changed. | |
| std::vector< int64_t > | GetPropagationDelays (const std::vector< LENGTH_DELAY_CALCULATION_ITEM > &aItems, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext) override |
| Gets the propagation delays (in internal units) for the given items in the given geometry context. | |
| int64_t | GetPropagationDelay (const LENGTH_DELAY_CALCULATION_ITEM &aItem, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext) override |
| Gets the propagation delay (in internal units) for the given item in the given geometry context. | |
| int64_t | GetTrackLengthForPropagationDelay (int64_t aDelay, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext) override |
| Gets the track length (in internal distance units) required for the given propagation delay (in internal time units). | |
| int64_t | CalculatePropagationDelayForShapeLineChain (const SHAPE_LINE_CHAIN &aShape, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext) override |
| Gets the propagation delay for the given shape line chain. | |
| virtual void | OnStackupChanged () |
| Event called by the length and time calculation architecture if the board stackup has changed. | |
Protected Attributes | |
| BOARD * | m_board |
| The board all calculations are for. | |
| LENGTH_DELAY_CALCULATION * | m_lengthCalculation |
| The parent length / delay calculation object. | |
Private Member Functions | |
| void | rebuildCaches () |
| int64_t | getPropagationDelay (const LENGTH_DELAY_CALCULATION_ITEM &aItem, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext, const TUNING_PROFILE *aDelayProfile) const |
| Gets the propagation delay (in internal units) for the given item in the given geometry context, for items in the pre-found net class. | |
| const TUNING_PROFILE * | GetTuningProfile (const wxString &aDelayProfileName) |
| Gets the tuning profile pointer for the given tuning profile name. | |
Private Attributes | |
| std::map< wxString, const TUNING_PROFILE * > | m_delayProfilesCache |
| Cached map of tuning profile names to per-layer time domain parameters. | |
| std::map< wxString, std::map< VIA_OVERRIDE_CACHE_KEY, int64_t > > | m_viaOverridesCache |
| Cached per-tuning profile via overrides. | |
Definition at line 31 of file tuning_profile_parameters_user_defined.h.
|
inlineexplicit |
Definition at line 34 of file tuning_profile_parameters_user_defined.h.
References TUNING_PROFILE_PARAMETERS_IFACE::TUNING_PROFILE_PARAMETERS_IFACE().
|
overridevirtual |
Gets the propagation delay for the given shape line chain.
| aShape | is the shape to calculate delay for |
| aContext | is the geometry context for which to query to propagation delay |
Implements TUNING_PROFILE_PARAMETERS_IFACE.
Definition at line 164 of file tuning_profile_parameters_user_defined.cpp.
References DELAY_PROFILE_TRACK_PROPAGATION_ENTRY::GetDelay(), NETCLASS::GetTuningProfile(), GetTuningProfile(), TUNING_PROFILE_GEOMETRY_CONTEXT::Layer, SHAPE_LINE_CHAIN::Length(), TUNING_PROFILE::m_TrackPropagationEntriesMap, TUNING_PROFILE_GEOMETRY_CONTEXT::NetClass, and PCB_IU_PER_MM.
|
overridevirtual |
Gets the propagation delay (in internal units) for the given item in the given geometry context.
| aItem | the board item to query propagation delay for |
| aContext | the geometry context in which to query to propagation delay |
Implements TUNING_PROFILE_PARAMETERS_IFACE.
Definition at line 59 of file tuning_profile_parameters_user_defined.cpp.
References LENGTH_DELAY_CALCULATION_ITEM::GetEffectiveNetClass(), LENGTH_DELAY_CALCULATION_ITEM::GetMergeStatus(), getPropagationDelay(), NETCLASS::GetTuningProfile(), GetTuningProfile(), and LENGTH_DELAY_CALCULATION_ITEM::MERGED_RETIRED.
|
private |
Gets the propagation delay (in internal units) for the given item in the given geometry context, for items in the pre-found net class.
Preconditions:
| aItem | the board item to query propagation delay for |
| aContext | the geometry context in which to query to propagation delay |
| aDelayProfile | the time domain tuning profile for the given item |
Definition at line 75 of file tuning_profile_parameters_user_defined.cpp.
References distance(), PADSTACK::EndLayer(), DELAY_PROFILE_TRACK_PROPAGATION_ENTRY::GetDelay(), LENGTH_DELAY_CALCULATION_ITEM::GetEndLayer(), LENGTH_DELAY_CALCULATION_ITEM::GetLine(), LENGTH_DELAY_CALCULATION_ITEM::GetMergeStatus(), LENGTH_DELAY_CALCULATION_ITEM::GetPad(), PAD::GetPadToDieDelay(), LENGTH_DELAY_CALCULATION_ITEM::GetStartLayer(), LENGTH_DELAY_CALCULATION_ITEM::GetVia(), TUNING_PROFILE::m_EnableTimeDomainTuning, TUNING_PROFILE_PARAMETERS_IFACE::m_lengthCalculation, TUNING_PROFILE::m_ProfileName, TUNING_PROFILE::m_TrackPropagationEntriesMap, m_viaOverridesCache, TUNING_PROFILE::m_ViaPropagationDelay, LENGTH_DELAY_CALCULATION_ITEM::MERGED_RETIRED, PCB_VIA::Padstack(), PCB_IU_PER_MM, PADSTACK::StartLayer(), and LENGTH_DELAY_CALCULATION_ITEM::Type().
Referenced by GetPropagationDelay(), and GetPropagationDelays().
|
overridevirtual |
Gets the propagation delays (in internal units) for the given items in the given geometry context.
This assumes that all items are in the same netclass
| aItems | the board items to query propagation delay for |
| aContext | the geometry context in which to query to propagation delay |
Implements TUNING_PROFILE_PARAMETERS_IFACE.
Definition at line 37 of file tuning_profile_parameters_user_defined.cpp.
References getPropagationDelay(), and GetTuningProfile().
|
overridevirtual |
Gets the track length (in internal distance units) required for the given propagation delay (in internal time units).
The track length should be calculated with the given geometry context.
| aContext | the geometry context in which to query to propagation delay |
| aDelay | the propagation delay for which a length should be calculated |
Implements TUNING_PROFILE_PARAMETERS_IFACE.
Definition at line 142 of file tuning_profile_parameters_user_defined.cpp.
References DELAY_PROFILE_TRACK_PROPAGATION_ENTRY::GetDelay(), NETCLASS::GetTuningProfile(), GetTuningProfile(), TUNING_PROFILE_GEOMETRY_CONTEXT::Layer, TUNING_PROFILE::m_TrackPropagationEntriesMap, TUNING_PROFILE_GEOMETRY_CONTEXT::NetClass, and PCB_IU_PER_MM.
|
private |
Gets the tuning profile pointer for the given tuning profile name.
| aDelayProfileName | the tuning profile name to return |
Definition at line 131 of file tuning_profile_parameters_user_defined.cpp.
References m_delayProfilesCache.
Referenced by CalculatePropagationDelayForShapeLineChain(), GetPropagationDelay(), GetPropagationDelays(), and GetTrackLengthForPropagationDelay().
|
overridevirtual |
Event called by the length and time calculation architecture if netclass definitions have changed.
This can be used to invalidate any calculation / simulation caches.
Reimplemented from TUNING_PROFILE_PARAMETERS_IFACE.
Definition at line 30 of file tuning_profile_parameters_user_defined.cpp.
References rebuildCaches().
|
inlinevirtualinherited |
Event called by the length and time calculation architecture if the board stackup has changed.
This can be used to invalidate any calculation / simulation caches.
Definition at line 74 of file tuning_profile_parameters_iface.h.
|
private |
Definition at line 185 of file tuning_profile_parameters_user_defined.cpp.
References TUNING_PROFILES::GetTuningProfiles(), TUNING_PROFILE_PARAMETERS_IFACE::m_board, DELAY_PROFILE_VIA_OVERRIDE_ENTRY::m_Delay, m_delayProfilesCache, DELAY_PROFILE_VIA_OVERRIDE_ENTRY::m_SignalLayerFrom, DELAY_PROFILE_VIA_OVERRIDE_ENTRY::m_SignalLayerTo, DELAY_PROFILE_VIA_OVERRIDE_ENTRY::m_ViaLayerFrom, DELAY_PROFILE_VIA_OVERRIDE_ENTRY::m_ViaLayerTo, m_viaOverridesCache, and project.
Referenced by OnSettingsChanged().
|
protectedinherited |
The board all calculations are for.
Definition at line 121 of file tuning_profile_parameters_iface.h.
Referenced by TUNING_PROFILE_PARAMETERS_USER_DEFINED::rebuildCaches(), and TUNING_PROFILE_PARAMETERS_IFACE().
|
private |
Cached map of tuning profile names to per-layer time domain parameters.
Definition at line 137 of file tuning_profile_parameters_user_defined.h.
Referenced by GetTuningProfile(), and rebuildCaches().
|
protectedinherited |
The parent length / delay calculation object.
Definition at line 124 of file tuning_profile_parameters_iface.h.
Referenced by TUNING_PROFILE_PARAMETERS_USER_DEFINED::getPropagationDelay(), and TUNING_PROFILE_PARAMETERS_IFACE().
|
private |
Cached per-tuning profile via overrides.
Definition at line 140 of file tuning_profile_parameters_user_defined.h.
Referenced by getPropagationDelay(), and rebuildCaches().