37#define NAN_INVALID "0" 
   39#define IBIS_MAX_VERSION 7.0       
   40#define IBIS_MAX_LINE_LENGTH 2048  
   97    bool virtual Check() { 
return false; };
 
 
  146    bool Check() 
override;
 
 
  161    bool Check() 
override;
 
 
  176    bool Check() 
override;
 
 
  205    bool Check() 
override;
 
 
  218    bool Check() 
override;
 
 
  236    bool Check() 
override;
 
 
  261    bool Check() 
override;
 
 
  336    bool Check() 
override;
 
 
  361    bool Check() 
override;
 
 
  390    bool Check() 
override;
 
  414    std::string 
Spice( 
int aN, 
const std::string& aPort1, 
const std::string& aPort2,
 
  415                       const std::string& aModelName, 
IBIS_CORNER aCorner ) 
const;
 
 
  497    bool Check() 
override;
 
 
  514    bool Check() 
override;
 
 
  614    bool Check() 
override;
 
 
  639    bool Check() 
override;
 
 
  731    bool ParseFile( 
const std::string& aFileName );
 
  795    bool parseDouble( 
double& aDest, std::string& aStr, 
bool aAllowModifiers = 
false );
 
  819    bool readWord( std::string& aDest );
 
  821    bool readMatrix( std::shared_ptr<IBIS_MATRIX> aDest );
 
  830    bool storeString( std::string& aDest, 
bool aMultiline );
 
 
Store all of the related component information found in a netlist.
 
void Report(const std::string &aMsg, SEVERITY aSeverity=RPT_SEVERITY_INFO) const
Print a message.
 
IBIS_BASE(REPORTER *aReporter)
 
static std::string doubleToString(double aNumber)
Convert a double to string using scientific notation.
 
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.
 
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