36#define NAN_INVALID "0"
38#define IBIS_MAX_VERSION 7.0
39#define IBIS_MAX_LINE_LENGTH 2048
52#define IBIS_REPORTER REPORTER
90 bool virtual Check() {
return false; };
131 bool Check()
override;
142 bool Check()
override;
154 bool Check()
override;
178 bool Check()
override;
188 bool Check()
override;
206 bool Check()
override;
231 bool Check()
override;
308 bool Check()
override;
333 bool Check()
override;
362 bool Check()
override;
386 std::string
Spice(
int aN, std::string aPort1, std::string aPort2, std::string aModelName,
466 bool Check()
override;
483 bool Check()
override;
576 bool Check()
override;
601 bool Check()
override;
687 bool ParseFile( 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 );
777 bool storeString( std::string& aDest,
bool aMultiline );
Store all of the related footprint information found in a netlist.
std::string doubleToString(double aNumber)
Convert a double to string using scientific notation.
void Report(std::string aMsg, SEVERITY aSeverity=RPT_SEVERITY_INFO)
Print a message.
IBIS_ANY(IBIS_REPORTER *aReporter)
IBIS_REPORTER * m_reporter
IBIS_MATRIX_BANDED(IBIS_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.
std::vector< double > m_data
IBIS_MATRIX_FULL(IBIS_REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
std::vector< double > m_data
IBIS_MATRIX_SPARSE(IBIS_REPORTER *aReporter)
std::vector< double > m_data
IBIS_MATRIX(IBIS_REPORTER *aReporter)
IBIS_SECTION(IBIS_REPORTER *aReporter)
IVtableEntry(IBIS_REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
IVtable(IBIS_REPORTER *aReporter)
double InterpolatedI(double aV, IBIS_CORNER aCorner)
Interpolate the IV table.
std::vector< IVtableEntry > m_entries
std::string Spice(int aN, std::string aPort1, std::string aPort2, std::string aModelName, IBIS_CORNER aCorner)
Interpolate the IV table.
bool Check() override
Check if the data held by the object is valid.
IbisComponentPackage(IBIS_REPORTER *aReporter)
std::string m_GNDClampRef
virtual ~IbisComponentPinMapping()
std::string m_POWERClampRef
IbisComponentPinMapping(IBIS_REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
virtual ~IbisComponentPin()
IbisComponentPin(IBIS_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(IBIS_REPORTER *aReporter)
std::vector< IbisComponentPin > m_pins
virtual ~IbisDiffPinEntry()
IbisDiffPinEntry(IBIS_REPORTER *aReporter)
IbisDiffPin(IBIS_REPORTER *aReporter)
std::vector< IbisDiffPinEntry > m_entries
std::vector< IbisComponent > m_components
std::vector< IbisPackageModel > m_packageModels
IbisFile(IBIS_REPORTER *aReporter)
std::vector< IbisModel > m_models
std::vector< IbisModelSelector > m_modelSelectors
std::string m_modelDescription
virtual ~IbisModelSelector()
bool Check() override
Check if the data held by the object is valid.
IbisModelSelector(IBIS_REPORTER *aReporter)
std::vector< IbisModelSelectorEntry > m_models
TypMinMaxValue m_pullupReference
bool Check() override
Check if the data held by the object is valid.
std::vector< IbisWaveform * > m_risingWaveforms
TypMinMaxValue m_POWERClampReference
IBIS_MODEL_POLARITY m_polarity
IbisModel(IBIS_REPORTER *aReporter)
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
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
IbisPackageModel(IBIS_REPORTER *aReporter)
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)
std::string * m_continuingString
IbisModel * m_currentModel
bool readNumericSubparam(std::string aSubparam, double &aDest)
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 readMatrixBanded(std::string, IBIS_MATRIX_BANDED &aDest)
bool readMatrix(std::shared_ptr< IBIS_MATRIX > aDest)
bool readTypMinMaxValueSubparam(std::string aSubparam, TypMinMaxValue &aDest)
IbisParser(IBIS_REPORTER *aReporter)
IBIS_PARSER_CONTEXT m_context
IVtable * m_currentIVtable
bool readIVtableEntry(IVtable &aTable)
bool readVTtableEntry(VTtable &aTable)
bool ParseFile(std::string &aFileName)
Parse a file.
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
bool Check() override
Check if the data held by the object is valid.
IbisRamp(IBIS_REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
TypMinMaxValue(IBIS_REPORTER *aReporter)
VTtableEntry(IBIS_REPORTER *aReporter)
VTtable(IBIS_REPORTER *aReporter)
std::vector< VTtableEntry > m_entries
dvdtTypMinMax(IBIS_REPORTER *aReporter)
bool Check() override
Check if the data held by the object is valid.
@ COMPONENT_DIESUPPLYPADS