KiCad PCB EDA Suite
Loading...
Searching...
No Matches
IVtable Class Reference

#include <ibis_parser.h>

Inheritance diagram for IVtable:
IBIS_INPUT IBIS_BASE

Public Member Functions

 IVtable (REPORTER *aReporter)
 
bool Check () override
 Check if the data held by the object is valid.
 
double InterpolatedI (double aV, IBIS_CORNER aCorner) const
 Interpolate the IV table.
 
std::string Spice (int aN, const std::string &aPort1, const std::string &aPort2, bool aNegateI, const std::string &aModelName, IBIS_CORNER aCorner) const
 Interpolate the IV table.
 
void Report (const std::string &aMsg, SEVERITY aSeverity=RPT_SEVERITY_INFO) const
 Print a message.
 

Public Attributes

std::vector< IVtableEntrym_entries
 
REPORTERm_Reporter
 

Static Protected Member Functions

static std::string doubleToString (double aNumber)
 Convert a double to string using scientific notation.
 

Detailed Description

Definition at line 343 of file ibis_parser.h.

Constructor & Destructor Documentation

◆ IVtable()

IVtable::IVtable ( REPORTER * aReporter)
inline

Definition at line 346 of file ibis_parser.h.

References IBIS_INPUT::IBIS_INPUT().

Member Function Documentation

◆ Check()

bool IVtable::Check ( )
overridevirtual

Check if the data held by the object is valid.

Returns
true in case of success

Reimplemented from IBIS_INPUT.

Definition at line 375 of file ibis_parser.cpp.

References _, m_entries, IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.

◆ doubleToString()

std::string IBIS_BASE::doubleToString ( double aNumber)
staticprotectedinherited

Convert a double to string using scientific notation.

Parameters
aNumberNumber
Returns
Output string

Definition at line 281 of file ibis_parser.cpp.

Referenced by KIBIS_MODEL::generateSquareWave(), KIBIS_PIN::getKuKdOneWaveform(), KIBIS_PIN::getKuKdTwoWaveforms(), KIBIS_PIN::KuKdDriver(), IVtable::Spice(), KIBIS_MODEL::SpiceDie(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().

◆ InterpolatedI()

double IVtable::InterpolatedI ( double aV,
IBIS_CORNER aCorner ) const

Interpolate the IV table.

Linear interpolation to find the current for voltage aV

Parameters
aVvoltage
aCornerPower supply corner
Returns
current

Definition at line 340 of file ibis_parser.cpp.

References _, I, m_entries, IBIS_BASE::Report(), and RPT_SEVERITY_ERROR.

◆ Report()

void IBIS_BASE::Report ( const std::string & aMsg,
SEVERITY aSeverity = RPT_SEVERITY_INFO ) const
inlineinherited

Print a message.

Call m_Reporter->Report if m_Reporter exists.

Parameters
aMsgMessage
aSeverityMessage sevirity

Definition at line 68 of file ibis_parser.h.

References m_Reporter, and RPT_SEVERITY_INFO.

Referenced by BOOST_AUTO_TEST_CASE(), IbisParser::changeCommentChar(), IbisParser::changeContext(), IBIS_MATRIX::Check(), IbisComponent::Check(), IbisComponentPackage::Check(), IbisComponentPin::Check(), IbisHeader::Check(), IbisModel::Check(), IbisPackageModel::Check(), IbisRamp::Check(), IbisSubmodel::Check(), IVtable::Check(), KIBIS_WAVEFORM_PRBS::Check(), KIBIS_WAVEFORM_PRBS::Check(), KIBIS_WAVEFORM_RECTANGULAR::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::readAddSubmodel(), IbisParser::readDiffPin(), IbisParser::readDouble(), IbisParser::readDvdt(), IbisParser::readInt(), IbisParser::readMatrixBandedOrFull(), IbisParser::readMatrixBandwidth(), IbisParser::readMatrixPinIndex(), IbisParser::readMatrixRow(), IbisParser::readMatrixSparse(), IbisParser::readMatrixType(), IbisParser::readModel(), IbisParser::readPackage(), IbisParser::readPin(), IbisParser::readPinMapping(), IbisParser::readRamp(), IbisParser::readSubmodel(), IbisParser::readSubmodelSpec(), IbisParser::readTypMinMaxValue(), IbisParser::readWaveform(), KIBIS_MODEL::TrimWaveform(), KIBIS_PIN::writeSpiceDevice(), and KIBIS_PIN::writeSpiceDriver().

◆ Spice()

std::string IVtable::Spice ( int aN,
const std::string & aPort1,
const std::string & aPort2,
bool aNegateI,
const std::string & aModelName,
IBIS_CORNER aCorner ) const

Interpolate the IV table.

Generate the spice directive needed to define a model defined by its IV table. The order of aPort1 and aPort2 is important. ( Inverting them will reverse the component )

Parameters
aNIndex of the 'a' device
aPort1Spice node
aPort2Spice node
aNegateINegate I values
aModelNameName of the generated model
aCornerPower supply corner
Returns
Multline spice directives

Definition at line 290 of file ibis_parser.cpp.

References IBIS_BASE::doubleToString(), isNumberNA(), m_entries, and result.

Referenced by KIBIS_PIN::addDie().

Member Data Documentation

◆ m_entries

std::vector<IVtableEntry> IVtable::m_entries

Definition at line 350 of file ibis_parser.h.

Referenced by Check(), InterpolatedI(), IbisParser::readIVtableEntry(), and Spice().

◆ m_Reporter


The documentation for this class was generated from the following files: