87        std::vector<std::pair<int, double>> bits;
 
 
 
  309    std::vector<std::pair<IbisWaveform*, IbisWaveform*>> 
waveformPairs();
 
  326                                    const std::vector<std::pair<int, double>>&     aBits,
 
  327                                    const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
 
 
  388                             const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
 
  401                              const std::pair<IbisWaveform*, IbisWaveform*>& aPair1,
 
  402                              const std::pair<IbisWaveform*, IbisWaveform*>& aPair2,
 
  416                            const std::pair<IbisWaveform*, IbisWaveform*>& aPair,
 
 
  475    KIBIS( 
const std::string& aFileName, 
REPORTER* aReporter = 
nullptr );
 
 
IBIS_BASE(REPORTER *aReporter)
 
KIBIS_BASE(KIBIS *aTopLevel)
 
KIBIS_COMPONENT(KIBIS &aToplevel, const IbisComponent &aSource, IbisParser &aParser)
 
std::vector< KIBIS_PIN > m_pins
 
std::string m_manufacturer
Name of the manufacturer.
 
std::string m_name
Name of the component.
 
KIBIS_PIN * GetPin(const std::string &aPinNumber)
Get a pin by its number ( 1, 2, A1, A2, ... )
 
KIBIS_FILE(KIBIS &aTopLevel)
 
bool Init(const IbisParser &aParser)
 
std::vector< IbisWaveform * > m_fallingWaveforms
 
IbisWaveform TrimWaveform(const IbisWaveform &aIn) const
Copy a waveform, and substract the first value to all samples.
 
IBIS_MODEL_ENABLE m_enable
 
bool HasPOWERClamp() const
Return true if the model has a clamp diode to the power net.
 
std::vector< IbisWaveform * > m_risingWaveforms
 
bool HasPullup() const
Return true if the model has a pullup transistor.
 
bool HasGNDClamp() const
Return true if the model has a clamp diode to the gnd net.
 
TypMinMaxValue m_pulldownReference
 
TypMinMaxValue m_GNDClampReference
 
bool HasPulldown() const
Return true if the model has a pulldown transistor.
 
IBIS_MODEL_POLARITY m_polarity
 
std::string generateSquareWave(const std::string &aNode1, const std::string &aNode2, const std::vector< std::pair< int, double > > &aBits, const std::pair< IbisWaveform *, IbisWaveform * > &aPair, const KIBIS_PARAMETER &aParam)
Generate a square waveform.
 
TypMinMaxValue m_temperatureRange
 
TypMinMaxValue m_voltageRange
 
std::string m_description
 
KIBIS_MODEL(KIBIS &aTopLevel, const IbisModel &aSource, IbisParser &aParser)
 
TypMinMaxValue m_pullupReference
 
std::vector< std::pair< IbisWaveform *, IbisWaveform * > > waveformPairs()
Create waveform pairs.
 
TypMinMaxValue m_POWERClampReference
 
std::string SpiceDie(const KIBIS_PARAMETER &aParam, int aIndex) const
Generate the spice directive to simulate the die.
 
KIBIS_ACCURACY m_accuracy
 
void SetCornerFromString(IBIS_CORNER &aCorner, const std::string &aString)
 
KIBIS_WAVEFORM * m_waveform
 
TypMinMaxValue m_Rpin
Resistance from die to pin.
 
bool writeSpiceDiffDriver(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
 
TypMinMaxValue m_Lpin
Inductance from die to pin.
 
void getKuKdFromFile(const std::string &aSimul)
Update m_Ku, m_Kd using with two waveform inputs.
 
KIBIS_COMPONENT * m_parent
 
std::vector< double > m_Ku
 
std::string m_pinNumber
Pin Number Examples : 1, 2, 3 ( or for BGA ), A1, A2, A3, etc...
 
std::string addDie(KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam, int aIndex)
Generate the spice directive to simulate the die for Ku/Kd estimation.
 
bool writeSpiceDevice(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
 
std::vector< KIBIS_MODEL * > m_models
 
std::vector< double > m_t
 
TypMinMaxValue m_Cpin
Capacitance from pin to GND.
 
std::string m_signalName
Name of the pin Examples : "VCC", "GPIOA", "CLK", etc...
 
void getKuKdTwoWaveforms(KIBIS_MODEL &aModel, const std::pair< IbisWaveform *, IbisWaveform * > &aPair1, const std::pair< IbisWaveform *, IbisWaveform * > &aPair2, const KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using with two waveform inputs.
 
void getKuKdOneWaveform(KIBIS_MODEL &aModel, const std::pair< IbisWaveform *, IbisWaveform * > &aPair, const KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using with a single waveform input.
 
bool writeSpiceDiffDevice(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
 
std::string KuKdDriver(KIBIS_MODEL &aModel, const std::pair< IbisWaveform *, IbisWaveform * > &aPair, const KIBIS_PARAMETER &aParam, int aIndex)
Update m_Ku, m_Kd using with two waveform inputs.
 
KIBIS_PIN(KIBIS &aTopLevel, const IbisComponentPin &aPin, const IbisComponentPackage &aPackage, IbisParser &aParser, KIBIS_COMPONENT *aParent, std::vector< KIBIS_MODEL > &aModels)
 
std::vector< double > m_Kd
 
bool writeSpiceDriver(std::string &aDest, const std::string &aName, KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
 
KIBIS_PIN * m_complementaryPin
 
void getKuKdNoWaveform(KIBIS_MODEL &aModel, const KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using no falling / rising waveform inputs ( low accuracy )
 
std::vector< KIBIS_MODEL > m_models
 
KIBIS()
Constructor for unitialized KIBIS members.
 
std::vector< KIBIS_COMPONENT > m_components
 
KIBIS_MODEL * GetModel(const std::string &aName)
Return the model with name aName .
 
KIBIS_COMPONENT * GetComponent(const std::string &aName)
Return the component with name aName .
 
std::string m_cacheDir
Absolute path of the directory that will be used for caching.
 
A pure virtual class used to derive REPORTER objects from.
 
KIBIS_ACCURACY
Accuracy level.
 
EDA_ANGLE abs(const EDA_ANGLE &aAngle)