74 std::vector<std::pair<int, double>> bits;
92 m_type = KIBIS_WAVEFORM_TYPE::RECTANGULAR;
113 m_type = KIBIS_WAVEFORM_TYPE::PRBS;
131 m_type = KIBIS_WAVEFORM_TYPE::STUCK_HIGH;
141 m_type = KIBIS_WAVEFORM_TYPE::STUCK_LOW;
151 m_type = KIBIS_WAVEFORM_TYPE::HIGH_Z;
223 KIBIS( std::string aFileName,
REPORTER* aReporter =
nullptr );
303 std::vector<std::pair<IbisWaveform*, IbisWaveform*>>
waveformPairs();
320 std::vector<std::pair<int, double>> aBits,
321 std::pair<IbisWaveform*, IbisWaveform*> aPair,
394 std::pair<IbisWaveform*, IbisWaveform*> aPair2,
std::vector< KIBIS_PIN > m_pins
KIBIS_PIN * GetPin(std::string aPinNumber)
Get a pin by its number ( 1, 2, A1, A2, ... )
std::string m_manufacturer
Name of the manufacturer.
std::string m_name
Name of the component.
bool Init(IbisParser &aParser)
std::vector< IbisWaveform * > m_fallingWaveforms
IBIS_MODEL_ENABLE m_enable
bool HasPulldown()
Return true if the model has a pulldown transistor.
std::vector< IbisWaveform * > m_risingWaveforms
bool HasPOWERClamp()
Return true if the model has a clamp diode to the power net.
TypMinMaxValue m_pulldownReference
TypMinMaxValue m_GNDClampReference
bool HasPullup()
Return true if the model has a pullup transistor.
std::string generateSquareWave(std::string aNode1, std::string aNode2, std::vector< std::pair< int, double > > aBits, std::pair< IbisWaveform *, IbisWaveform * > aPair, KIBIS_PARAMETER &aParam)
Generate a square waveform.
IBIS_MODEL_POLARITY m_polarity
TypMinMaxValue m_temperatureRange
TypMinMaxValue m_voltageRange
std::string SpiceDie(KIBIS_PARAMETER &aParam, int aIndex)
Generate the spice directive to simulate the die.
IbisWaveform TrimWaveform(IbisWaveform &aIn)
Copy a waveform, and substract the first value to all samples.
bool HasGNDClamp()
Return true if the model has a clamp diode to the gnd net.
std::string m_description
TypMinMaxValue m_pullupReference
std::vector< std::pair< IbisWaveform *, IbisWaveform * > > waveformPairs()
Create waveform pairs.
TypMinMaxValue m_POWERClampReference
KIBIS_ACCURACY m_accuracy
void SetCornerFromString(IBIS_CORNER &aCorner, std::string aString)
KIBIS_WAVEFORM * m_waveform
bool writeSpiceDiffDriver(std::string *aDest, std::string aName, KIBIS_MODEL &aModel, KIBIS_PARAMETER &aParam)
TypMinMaxValue m_Rpin
Resistance from die to pin.
TypMinMaxValue m_Lpin
Inductance from die to pin.
bool writeSpiceDiffDevice(std::string *aDest, std::string aName, KIBIS_MODEL &aModel, KIBIS_PARAMETER &aParam)
std::string addDie(KIBIS_MODEL &aModel, KIBIS_PARAMETER &aParam, int aIndex)
Generate the spice directive to simulate the die for Ku/Kd estimation.
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::vector< KIBIS_MODEL * > m_models
std::vector< double > m_t
std::string KuKdDriver(KIBIS_MODEL &aModel, std::pair< IbisWaveform *, IbisWaveform * > aPair, KIBIS_PARAMETER &aParam, int aIndex)
Update m_Ku, m_Kd using with two waveform inputs.
void getKuKdFromFile(std::string *aSimul)
Update m_Ku, m_Kd using with two waveform inputs.
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, std::pair< IbisWaveform *, IbisWaveform * > aPair1, std::pair< IbisWaveform *, IbisWaveform * > aPair2, KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using with two waveform inputs.
void getKuKdOneWaveform(KIBIS_MODEL &aModel, std::pair< IbisWaveform *, IbisWaveform * > aPair, KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using with a single waveform input.
void getKuKdNoWaveform(KIBIS_MODEL &aModel, KIBIS_PARAMETER &aParam)
Update m_Ku, m_Kd using no falling / rising waveform inputs ( low accuracy )
bool writeSpiceDriver(std::string *aDest, std::string aName, KIBIS_MODEL &aModel, KIBIS_PARAMETER &aParam)
std::vector< double > m_Kd
bool writeSpiceDevice(std::string *aDest, std::string aName, KIBIS_MODEL &aModel, KIBIS_PARAMETER &aParam)
KIBIS_PIN * m_complementaryPin
std::vector< KIBIS_MODEL > m_models
KIBIS_COMPONENT * GetComponent(std::string aName)
Return the component with name aName .
std::vector< KIBIS_COMPONENT > m_components
KIBIS_MODEL * GetModel(std::string aName)
Return the model 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.