KiCad PCB EDA Suite
|
#include <kibis.h>
Public Member Functions | |
KIBIS_MODEL (KIBIS &aTopLevel, const IbisModel &aSource, IbisParser &aParser) | |
bool | HasPulldown () const |
Return true if the model has a pulldown transistor. | |
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. | |
bool | HasPOWERClamp () const |
Return true if the model has a clamp diode to the power net. | |
std::string | SpiceDie (const KIBIS_PARAMETER &aParam, int aIndex) const |
Generate the spice directive to simulate the die. | |
std::vector< std::pair< IbisWaveform *, IbisWaveform * > > | waveformPairs () |
Create waveform pairs. | |
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. | |
IbisWaveform | TrimWaveform (const IbisWaveform &aIn) const |
Copy a waveform, and substract the first value to all samples. | |
void | Report (const std::string &aMsg, SEVERITY aSeverity=RPT_SEVERITY_INFO) const |
Print a message. | |
Public Attributes | |
std::string | m_name |
std::string | m_description |
IBIS_MODEL_TYPE | m_type = IBIS_MODEL_TYPE::UNDEFINED |
double | m_vinl = 0.8 |
double | m_vinh = 2 |
double | m_vref = 0 |
double | m_rref = 0 |
double | m_cref = 0 |
double | m_vmeas = 0 |
IBIS_MODEL_ENABLE | m_enable = IBIS_MODEL_ENABLE::UNDEFINED |
IBIS_MODEL_POLARITY | m_polarity = IBIS_MODEL_POLARITY::UNDEFINED |
TypMinMaxValue | m_C_comp |
TypMinMaxValue | m_voltageRange |
TypMinMaxValue | m_temperatureRange |
TypMinMaxValue | m_pullupReference |
TypMinMaxValue | m_pulldownReference |
TypMinMaxValue | m_GNDClampReference |
TypMinMaxValue | m_POWERClampReference |
TypMinMaxValue | m_Rgnd |
TypMinMaxValue | m_Rpower |
TypMinMaxValue | m_Rac |
TypMinMaxValue | m_Cac |
IVtable | m_GNDClamp |
IVtable | m_POWERClamp |
IVtable | m_pullup |
IVtable | m_pulldown |
std::vector< IbisWaveform * > | m_risingWaveforms |
std::vector< IbisWaveform * > | m_fallingWaveforms |
IbisRamp | m_ramp |
KIBIS * | m_topLevel |
bool | m_valid |
REPORTER * | m_Reporter |
Static Protected Member Functions | |
static std::string | doubleToString (double aNumber) |
Convert a double to string using scientific notation. | |
KIBIS_MODEL::KIBIS_MODEL | ( | KIBIS & | aTopLevel, |
const IbisModel & | aSource, | ||
IbisParser & | aParser | ||
) |
Definition at line 236 of file kibis.cpp.
References IbisModel::m_C_comp, m_C_comp, IbisModel::m_Cac, m_Cac, IbisModel::m_cref, m_cref, m_description, IbisModel::m_enable, m_enable, IbisModel::m_fallingWaveforms, m_fallingWaveforms, IbisModel::m_GNDClamp, m_GNDClamp, IbisModel::m_GNDClampReference, m_GNDClampReference, IbisParser::m_ibisFile, IbisModelSelectorEntry::m_modelDescription, IbisModelSelectorEntry::m_modelName, IbisModelSelector::m_models, IbisFile::m_modelSelectors, IbisModel::m_name, m_name, IbisModel::m_polarity, m_polarity, IbisModel::m_POWERClamp, m_POWERClamp, IbisModel::m_POWERClampReference, m_POWERClampReference, IbisModel::m_pulldown, m_pulldown, IbisModel::m_pulldownReference, m_pulldownReference, IbisModel::m_pullup, m_pullup, IbisModel::m_pullupReference, m_pullupReference, IbisModel::m_Rac, m_Rac, IbisModel::m_ramp, m_ramp, IbisModel::m_Rgnd, m_Rgnd, IbisModel::m_risingWaveforms, m_risingWaveforms, IbisModel::m_Rpower, m_Rpower, IbisModel::m_rref, m_rref, IbisModel::m_temperatureRange, m_temperatureRange, IbisModel::m_type, m_type, KIBIS_BASE::m_valid, IbisModel::m_vinh, m_vinh, IbisModel::m_vinl, m_vinl, IbisModel::m_vmeas, m_vmeas, IbisModel::m_voltageRange, m_voltageRange, IbisModel::m_vref, and m_vref.
|
staticprotectedinherited |
Convert a double to string using scientific notation.
aNumber | Number |
Definition at line 311 of file ibis_parser.cpp.
Referenced by generateSquareWave(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), KIBIS_PIN::KuKdDriver(), IVtable::Spice(), SpiceDie(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
std::string KIBIS_MODEL::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.
For maximum accuracy, we need a waveform pair. This function creates the pairs based on the fixture.
aNode1 | node where the voltage is applied |
aNode2 | Reference node |
aBits | The first member is the bit value ( 1 or 0 ). The second member is the time of the transition edge. |
aPair |
aParam | Parameters |
Definition at line 501 of file kibis.cpp.
References delta, IBIS_BASE::doubleToString(), VTtable::m_entries, KIBIS_PARAMETER::m_supply, IbisWaveform::m_table, VTtableEntry::t, TrimWaveform(), VTtableEntry::V, TypMinMaxValue::value, and WF.
Referenced by KIBIS_PIN::KuKdDriver().
bool KIBIS_MODEL::HasGNDClamp | ( | ) | const |
Return true if the model has a clamp diode to the gnd net.
Definition at line 489 of file kibis.cpp.
References IVtable::m_entries, and m_GNDClamp.
Referenced by KIBIS_PIN::addDie(), BOOST_AUTO_TEST_CASE(), and SpiceDie().
bool KIBIS_MODEL::HasPOWERClamp | ( | ) | const |
Return true if the model has a clamp diode to the power net.
Definition at line 495 of file kibis.cpp.
References IVtable::m_entries, and m_POWERClamp.
Referenced by KIBIS_PIN::addDie(), and SpiceDie().
bool KIBIS_MODEL::HasPulldown | ( | ) | const |
Return true if the model has a pulldown transistor.
Definition at line 477 of file kibis.cpp.
References IVtable::m_entries, and m_pulldown.
Referenced by KIBIS_PIN::addDie(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), and SpiceDie().
bool KIBIS_MODEL::HasPullup | ( | ) | const |
Return true if the model has a pullup transistor.
Definition at line 483 of file kibis.cpp.
References IVtable::m_entries, and m_pullup.
Referenced by KIBIS_PIN::addDie(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), and SpiceDie().
|
inlineinherited |
Print a message.
Call m_Reporter->Report if m_Reporter exists.
aMsg | Message |
aSeverity | Message sevirity |
Definition at line 67 of file ibis_parser.h.
References IBIS_BASE::m_Reporter, and REPORTER::Report().
Referenced by BOOST_AUTO_TEST_CASE(), IbisParser::changeCommentChar(), IbisParser::changeContext(), IBIS_MATRIX_BANDED::Check(), IBIS_MATRIX_SPARSE::Check(), IBIS_MATRIX_FULL::Check(), IbisHeader::Check(), IbisComponentPackage::Check(), IbisComponentPin::Check(), IbisComponent::Check(), IVtable::Check(), IbisRamp::Check(), IbisModel::Check(), IbisPackageModel::Check(), KIBIS_WAVEFORM_PRBS::Check(), KIBIS_WAVEFORM_RECTANGULAR::Check(), IbisParser::checkEndofLine(), KIBIS_PIN::getKuKdFromFile(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), IbisParser::getNextLine(), IVtable::InterpolatedI(), KIBIS_PIN::KuKdDriver(), IbisParser::onNewLine(), IbisParser::ParseFile(), IbisParser::readDiffPin(), IbisParser::readDouble(), IbisParser::readInt(), IbisParser::readMatrix(), IbisParser::readMatrixBanded(), IbisParser::readMatrixFull(), IbisParser::readMatrixSparse(), IbisParser::readModel(), IbisParser::readPackage(), IbisParser::readPin(), IbisParser::readPinMapping(), IbisParser::readRamp(), IbisParser::readTypMinMaxValue(), IbisParser::readWaveform(), TrimWaveform(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
std::string KIBIS_MODEL::SpiceDie | ( | const KIBIS_PARAMETER & | aParam, |
int | aIndex | ||
) | const |
Generate the spice directive to simulate the die.
aParam | Parameters |
aIndex | Index used to offset spice nodes / directives |
Definition at line 368 of file kibis.cpp.
References IBIS_BASE::doubleToString(), HasGNDClamp(), HasPOWERClamp(), HasPulldown(), HasPullup(), m_C_comp, KIBIS_PARAMETER::m_Ccomp, m_GNDClamp, m_POWERClamp, m_pulldown, m_pullup, KIBIS_PARAMETER::m_supply, m_voltageRange, IVtable::Spice(), and TypMinMaxValue::value.
Referenced by KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
IbisWaveform KIBIS_MODEL::TrimWaveform | ( | const IbisWaveform & | aIn | ) | const |
Copy a waveform, and substract the first value to all samples.
aIn | Input waveform |
Definition at line 441 of file kibis.cpp.
References _, VTtable::m_entries, IBIS_BASE::m_Reporter, IbisWaveform::m_table, IBIS_BASE::Report(), RPT_SEVERITY_ERROR, VTtableEntry::t, VTtableEntry::V, and TypMinMaxValue::value.
Referenced by generateSquareWave().
std::vector< std::pair< IbisWaveform *, IbisWaveform * > > KIBIS_MODEL::waveformPairs | ( | ) |
Create waveform pairs.
For maximum accuracy, we need a waveform pair. This function creates the pairs based on the fixture. The first element is the rising edge, the second is the falling edge.
Definition at line 341 of file kibis.cpp.
References IbisWaveform::m_C_fixture, m_fallingWaveforms, IbisWaveform::m_L_fixture, IbisWaveform::m_R_fixture, m_risingWaveforms, IbisWaveform::m_V_fixture, IbisWaveform::m_V_fixture_max, and IbisWaveform::m_V_fixture_min.
Referenced by KIBIS_PIN::writeSpiceDriver().
TypMinMaxValue KIBIS_MODEL::m_C_comp |
Definition at line 265 of file kibis.h.
Referenced by KIBIS_MODEL(), KIBIS_PIN::KuKdDriver(), and SpiceDie().
TypMinMaxValue KIBIS_MODEL::m_Cac |
Definition at line 275 of file kibis.h.
Referenced by KIBIS_MODEL().
double KIBIS_MODEL::m_cref = 0 |
Definition at line 259 of file kibis.h.
Referenced by KIBIS_MODEL().
std::string KIBIS_MODEL::m_description |
Definition at line 251 of file kibis.h.
Referenced by KIBIS_MODEL().
IBIS_MODEL_ENABLE KIBIS_MODEL::m_enable = IBIS_MODEL_ENABLE::UNDEFINED |
Definition at line 261 of file kibis.h.
Referenced by BOOST_AUTO_TEST_CASE(), and KIBIS_MODEL().
std::vector<IbisWaveform*> KIBIS_MODEL::m_fallingWaveforms |
Definition at line 281 of file kibis.h.
Referenced by KIBIS_MODEL(), and waveformPairs().
IVtable KIBIS_MODEL::m_GNDClamp |
Definition at line 276 of file kibis.h.
Referenced by KIBIS_PIN::addDie(), HasGNDClamp(), KIBIS_MODEL(), and SpiceDie().
TypMinMaxValue KIBIS_MODEL::m_GNDClampReference |
Definition at line 270 of file kibis.h.
Referenced by KIBIS_MODEL().
std::string KIBIS_MODEL::m_name |
Definition at line 250 of file kibis.h.
Referenced by BOOST_AUTO_TEST_CASE(), SIM_MODEL_IBIS::ChangePin(), KIBIS_MODEL(), main(), and KIBIS_PIN::writeSpiceDriver().
IBIS_MODEL_POLARITY KIBIS_MODEL::m_polarity = IBIS_MODEL_POLARITY::UNDEFINED |
Definition at line 262 of file kibis.h.
Referenced by BOOST_AUTO_TEST_CASE(), and KIBIS_MODEL().
IVtable KIBIS_MODEL::m_POWERClamp |
Definition at line 277 of file kibis.h.
Referenced by KIBIS_PIN::addDie(), HasPOWERClamp(), KIBIS_MODEL(), and SpiceDie().
TypMinMaxValue KIBIS_MODEL::m_POWERClampReference |
Definition at line 271 of file kibis.h.
Referenced by KIBIS_MODEL().
IVtable KIBIS_MODEL::m_pulldown |
Definition at line 279 of file kibis.h.
Referenced by KIBIS_PIN::addDie(), HasPulldown(), KIBIS_MODEL(), and SpiceDie().
TypMinMaxValue KIBIS_MODEL::m_pulldownReference |
Definition at line 269 of file kibis.h.
Referenced by KIBIS_MODEL().
IVtable KIBIS_MODEL::m_pullup |
Definition at line 278 of file kibis.h.
Referenced by KIBIS_PIN::addDie(), HasPullup(), KIBIS_MODEL(), and SpiceDie().
TypMinMaxValue KIBIS_MODEL::m_pullupReference |
Definition at line 268 of file kibis.h.
Referenced by KIBIS_MODEL().
TypMinMaxValue KIBIS_MODEL::m_Rac |
Definition at line 274 of file kibis.h.
Referenced by KIBIS_MODEL().
IbisRamp KIBIS_MODEL::m_ramp |
Definition at line 282 of file kibis.h.
Referenced by KIBIS_PIN::getKuKdNoWaveform(), and KIBIS_MODEL().
|
inherited |
Definition at line 74 of file ibis_parser.h.
Referenced by BOOST_AUTO_TEST_CASE(), IbisParser::changeContext(), IBIS_BASE::IBIS_BASE(), SPICE_GENERATOR_IBIS::IbisDevice(), KIBIS::KIBIS(), IbisParser::parsePackageModelModelData(), IbisParser::readDiffPin(), IbisParser::readIVtableEntry(), IbisParser::readMatrix(), IbisParser::readPin(), IbisParser::readPinMapping(), IbisParser::readVTtableEntry(), IbisParser::readWaveform(), IBIS_BASE::Report(), and TrimWaveform().
TypMinMaxValue KIBIS_MODEL::m_Rgnd |
Definition at line 272 of file kibis.h.
Referenced by KIBIS_MODEL().
std::vector<IbisWaveform*> KIBIS_MODEL::m_risingWaveforms |
Definition at line 280 of file kibis.h.
Referenced by KIBIS_MODEL(), and waveformPairs().
TypMinMaxValue KIBIS_MODEL::m_Rpower |
Definition at line 273 of file kibis.h.
Referenced by KIBIS_MODEL().
double KIBIS_MODEL::m_rref = 0 |
Definition at line 258 of file kibis.h.
Referenced by KIBIS_MODEL().
TypMinMaxValue KIBIS_MODEL::m_temperatureRange |
Definition at line 267 of file kibis.h.
Referenced by KIBIS_MODEL().
|
inherited |
Definition at line 56 of file kibis.h.
Referenced by KIBIS_PIN::getKuKdFromFile(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), and KIBIS_COMPONENT::KIBIS_COMPONENT().
IBIS_MODEL_TYPE KIBIS_MODEL::m_type = IBIS_MODEL_TYPE::UNDEFINED |
Definition at line 252 of file kibis.h.
Referenced by BOOST_AUTO_TEST_CASE(), KIBIS_MODEL(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().
|
inherited |
Definition at line 57 of file kibis.h.
Referenced by BOOST_AUTO_TEST_CASE(), SPICE_GENERATOR_IBIS::IbisDevice(), KIBIS_FILE::Init(), KIBIS::KIBIS(), KIBIS_COMPONENT::KIBIS_COMPONENT(), KIBIS_MODEL(), KIBIS_PIN::KIBIS_PIN(), KIBIS_WAVEFORM::KIBIS_WAVEFORM(), and SIM_LIBRARY_IBIS::ReadFile().
double KIBIS_MODEL::m_vinh = 2 |
Definition at line 256 of file kibis.h.
Referenced by KIBIS_MODEL().
double KIBIS_MODEL::m_vinl = 0.8 |
Definition at line 255 of file kibis.h.
Referenced by KIBIS_MODEL().
double KIBIS_MODEL::m_vmeas = 0 |
Definition at line 260 of file kibis.h.
Referenced by KIBIS_MODEL().
TypMinMaxValue KIBIS_MODEL::m_voltageRange |
Definition at line 266 of file kibis.h.
Referenced by KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), KIBIS_MODEL(), and SpiceDie().
double KIBIS_MODEL::m_vref = 0 |
Definition at line 257 of file kibis.h.
Referenced by KIBIS_MODEL().