36#define NAN_INVALID "0"
38#define IBIS_MAX_VERSION 7.0
39#define IBIS_MAX_LINE_LENGTH 2048
89 bool virtual Check() {
return false; };
130 bool Check()
override;
141 bool Check()
override;
153 bool Check()
override;
177 bool Check()
override;
187 bool Check()
override;
205 bool Check()
override;
230 bool Check()
override;
307 bool Check()
override;
332 bool Check()
override;
361 bool Check()
override;
385 std::string
Spice(
int aN,
const std::string& aPort1,
const std::string& aPort2,
386 const std::string& aModelName,
IBIS_CORNER aCorner )
const;
465 bool Check()
override;
482 bool Check()
override;
575 bool Check()
override;
600 bool Check()
override;
687 bool ParseFile(
const std::string& aFileName );
745 bool parseDouble(
double& aDest, std::string& aStr,
bool aAllowModifiers =
false );
767 bool readWord( std::string& aDest );
769 bool readMatrix( std::shared_ptr<IBIS_MATRIX> aDest );
778 bool storeString( std::string& aDest,
bool aMultiline );
void Report(std::string aMsg, SEVERITY aSeverity=RPT_SEVERITY_INFO) const
Print a message.
static std::string doubleToString(double aNumber)
Convert a double to string using scientific notation.
IBIS_ANY(REPORTER *aReporter)
IBIS_MATRIX_BANDED(REPORTER *aReporter)
std::vector< double > m_data
bool Check() override
Check if the data held by the object is valid.
bool Check() override
Check if the data held by the object is valid.
IBIS_MATRIX_FULL(REPORTER *aReporter)
std::vector< double > m_data
IBIS_MATRIX_SPARSE(REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
std::vector< double > m_data
std::vector< double > m_data
IBIS_MATRIX(REPORTER *aReporter)
IBIS_SECTION(REPORTER *aReporter)
IVtableEntry(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::vector< IVtableEntry > m_entries
IVtable(REPORTER *aReporter)
std::string Spice(int aN, const std::string &aPort1, const std::string &aPort2, const std::string &aModelName, IBIS_CORNER aCorner) const
Interpolate the IV table.
bool Check() override
Check if the data held by the object is valid.
IbisComponentPackage(REPORTER *aReporter)
std::string m_GNDClampRef
IbisComponentPinMapping(REPORTER *aReporter)
virtual ~IbisComponentPinMapping()
std::string m_POWERClampRef
bool Check() override
Check if the data held by the object is valid.
virtual ~IbisComponentPin()
IbisComponentPin(REPORTER *aReporter)
std::string m_manufacturer
std::string m_packageModel
std::vector< IbisComponentPinMapping > m_pinMappings
IbisComponentPackage m_package
std::string m_dieSupplyPads
bool Check() override
Check if the data held by the object is valid.
IbisComponent(REPORTER *aReporter)
std::vector< IbisComponentPin > m_pins
IbisDiffPinEntry(REPORTER *aReporter)
virtual ~IbisDiffPinEntry()
IbisDiffPin(REPORTER *aReporter)
std::vector< IbisDiffPinEntry > m_entries
std::vector< IbisComponent > m_components
std::vector< IbisPackageModel > m_packageModels
std::vector< IbisModel > m_models
IbisFile(REPORTER *aReporter)
std::vector< IbisModelSelector > m_modelSelectors
std::string m_modelDescription
virtual ~IbisModelSelector()
bool Check() override
Check if the data held by the object is valid.
std::vector< IbisModelSelectorEntry > m_models
IbisModelSelector(REPORTER *aReporter)
TypMinMaxValue m_pullupReference
bool Check() override
Check if the data held by the object is valid.
std::vector< IbisWaveform * > m_risingWaveforms
TypMinMaxValue m_POWERClampReference
IbisModel(REPORTER *aReporter)
IBIS_MODEL_POLARITY m_polarity
IBIS_MODEL_ENABLE m_enable
TypMinMaxValue m_temperatureRange
std::vector< IbisWaveform * > m_fallingWaveforms
TypMinMaxValue m_pulldownReference
TypMinMaxValue m_GNDClampReference
TypMinMaxValue m_voltageRange
std::vector< std::string > m_pins
std::shared_ptr< IBIS_MATRIX > m_resistanceMatrix
IbisPackageModel(REPORTER *aReporter)
std::shared_ptr< IBIS_MATRIX > m_inductanceMatrix
virtual ~IbisPackageModel()
bool Check() override
Check if the data held by the object is valid.
std::string m_description
std::shared_ptr< IBIS_MATRIX > m_capacitanceMatrix
std::string m_manufacturer
std::vector< char > m_buffer
IBIS_PARSER_CONTINUE m_continue
bool changeCommentChar()
Ibis can change the character used for comments.
bool getNextLine()
Load the next line.
bool parseComponent(std::string &aKeyword)
Parse a single keyword in the component context.
bool parseModel(std::string &aKeyword)
Parse a single keyword in the model selector context.
bool readMatrixFull(std::string, IBIS_MATRIX_FULL &aDest)
VTtable * m_currentVTtable
bool isLineEmptyFromCursor()
void printLine()
Print the current line.
bool changeContext(std::string &aKeyword)
int m_currentMatrixRowIndex
bool parseDouble(double &aDest, std::string &aStr, bool aAllowModifiers=false)
Parse a double according to the ibis standard.
bool onNewLine()
Parse the current line.
bool readWord(std::string &aDest)
bool readTypMinMaxValue(TypMinMaxValue &aDest)
bool compareIbisWord(const std::string &a, const std::string &b)
compare two strings without being case sensitive
IbisComponent * m_currentComponent
std::shared_ptr< IBIS_MATRIX > m_currentMatrix
bool readDvdt(std::string &aString, dvdt &aDest)
bool ParseFile(const std::string &aFileName)
Parse a file.
std::string * m_continuingString
IbisModel * m_currentModel
IbisParser(REPORTER *aReporter)
bool parsePackageModelModelData(std::string &)
Parse a single keyword in the package model context.
IbisPackageModel * m_currentPackageModel
bool readDouble(double &aDest)
IbisModelSelector * m_currentModelSelector
bool parsePackageModel(std::string &aKeyword)
Parse a single keyword in the model context.
bool readString(std::string &aDest)
bool readTypMinMaxValueSubparam(const std::string &aSubparam, TypMinMaxValue &aDest)
bool readMatrixBanded(std::string, IBIS_MATRIX_BANDED &aDest)
bool readNumericSubparam(const std::string &aSubparam, double &aDest)
bool readMatrix(std::shared_ptr< IBIS_MATRIX > aDest)
IBIS_PARSER_CONTEXT m_context
IVtable * m_currentIVtable
bool readIVtableEntry(IVtable &aTable)
bool readVTtableEntry(VTtable &aTable)
bool parseModelSelector(std::string &aKeyword)
Parse a single keyword in the component context.
bool storeString(std::string &aDest, bool aMultiline)
bool readPackageModelPins()
bool readRampdvdt(dvdtTypMinMax &aDest)
bool readTableLine(std::vector< std::string > &aDest)
bool readMatrixSparse(std::string, IBIS_MATRIX_SPARSE &aDest)
bool parseHeader(std::string &aKeyword)
Parse a single keyword in the header context.
bool readWaveform(IbisWaveform *aDest, IBIS_WAVEFORM_TYPE aType)
IbisWaveform * m_currentWaveform
IbisRamp(REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
A pure virtual class used to derive REPORTER objects from.
virtual REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED)=0
Report a string with a given severity.
TypMinMaxValue(REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
VTtableEntry(REPORTER *aReporter)
VTtable(REPORTER *aReporter)
std::vector< VTtableEntry > m_entries
bool Check() override
Check if the data held by the object is valid.
dvdtTypMinMax(REPORTER *aReporter)
@ COMPONENT_DIESUPPLYPADS