Cleanup.
This commit is contained in:
parent
a02cb75656
commit
4e133ae83b
|
@ -205,7 +205,7 @@ set( EESCHEMA_SIM_SRCS
|
|||
|
||||
sim/sim_library.cpp
|
||||
sim/sim_library_spice.cpp
|
||||
sim/sim_library_kibis.cpp
|
||||
sim/sim_library_ibis.cpp
|
||||
sim/sim_lib_mgr.cpp
|
||||
|
||||
sim/sim_model_serializer.cpp
|
||||
|
@ -213,7 +213,7 @@ set( EESCHEMA_SIM_SRCS
|
|||
sim/sim_model_behavioral.cpp
|
||||
sim/sim_model_ideal.cpp
|
||||
sim/sim_model_l_mutual.cpp
|
||||
sim/sim_model_kibis.cpp
|
||||
sim/sim_model_ibis.cpp
|
||||
sim/sim_model_ngspice.cpp
|
||||
sim/sim_model_ngspice_data_bjt.cpp
|
||||
sim/sim_model_ngspice_data_bsim1.cpp
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
#include <dialog_ibis_parser_reporter.h>
|
||||
#include <dialog_sim_model.h>
|
||||
#include <sim/sim_property.h>
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
#include <sim/sim_model.h>
|
||||
#include <sim/sim_model_kibis.h>
|
||||
#include <sim/sim_model_ibis.h>
|
||||
#include <sim/sim_model_raw_spice.h>
|
||||
#include <sim/sim_model_spice_fallback.h>
|
||||
#include <sim/sim_model_subckt.h>
|
||||
|
@ -251,43 +251,43 @@ bool DIALOG_SIM_MODEL<T>::TransferDataToWindow()
|
|||
if( isIbisLoaded() && ( m_modelNameChoice->GetSelection() >= 0 ) )
|
||||
{
|
||||
int idx = m_modelNameChoice->GetSelection();
|
||||
auto kibismodel = dynamic_cast<SIM_MODEL_KIBIS*>( &m_libraryModelsMgr.GetModels()[idx].get() );
|
||||
auto ibismodel = dynamic_cast<SIM_MODEL_IBIS*>( &m_libraryModelsMgr.GetModels()[idx].get() );
|
||||
|
||||
if( kibismodel )
|
||||
if( ibismodel )
|
||||
{
|
||||
onModelNameChoice( dummyEvent ); // refresh list of pins
|
||||
|
||||
int i = 0;
|
||||
|
||||
for( const std::pair<std::string, std::string>& strs : kibismodel->GetIbisPins() )
|
||||
for( const std::pair<std::string, std::string>& strs : ibismodel->GetIbisPins() )
|
||||
{
|
||||
if( strs.first == SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_KIBIS::PIN_FIELD ) )
|
||||
if( strs.first == SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_IBIS::PIN_FIELD ) )
|
||||
{
|
||||
auto kibisLibrary = static_cast<const SIM_LIBRARY_KIBIS*>( library() );
|
||||
auto ibisLibrary = static_cast<const SIM_LIBRARY_IBIS*>( library() );
|
||||
|
||||
kibismodel->ChangePin( *kibisLibrary, strs.first );
|
||||
ibismodel->ChangePin( *ibisLibrary, strs.first );
|
||||
m_pinCombobox->SetSelection( static_cast<int>( i ) );
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
if( i < static_cast<int>( kibismodel->GetIbisPins().size() ) )
|
||||
if( i < static_cast<int>( ibismodel->GetIbisPins().size() ) )
|
||||
{
|
||||
onPinCombobox( dummyEvent ); // refresh list of models
|
||||
|
||||
m_pinModelCombobox->SetStringSelection(
|
||||
SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_KIBIS::MODEL_FIELD ) );
|
||||
SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_IBIS::MODEL_FIELD ) );
|
||||
}
|
||||
|
||||
if( SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_KIBIS::DIFF_FIELD ) == "1" )
|
||||
if( SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_IBIS::DIFF_FIELD ) == "1" )
|
||||
{
|
||||
kibismodel->SwitchSingleEndedDiff( true );
|
||||
ibismodel->SwitchSingleEndedDiff( true );
|
||||
m_differentialCheckbox->SetValue( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
kibismodel->SwitchSingleEndedDiff( false );
|
||||
ibismodel->SwitchSingleEndedDiff( false );
|
||||
m_differentialCheckbox->SetValue( false );
|
||||
}
|
||||
}
|
||||
|
@ -372,7 +372,7 @@ bool DIALOG_SIM_MODEL<T>::TransferDataFromWindow()
|
|||
|
||||
if( isIbisLoaded() )
|
||||
{
|
||||
SIM_MODEL_KIBIS* ibismodel = static_cast<SIM_MODEL_KIBIS*>(
|
||||
SIM_MODEL_IBIS* ibismodel = static_cast<SIM_MODEL_IBIS*>(
|
||||
&m_libraryModelsMgr.GetModels().at( m_modelNameChoice->GetSelection() ).get() );
|
||||
|
||||
if( ibismodel )
|
||||
|
@ -387,9 +387,9 @@ bool DIALOG_SIM_MODEL<T>::TransferDataFromWindow()
|
|||
if( ibismodel->CanDifferential() && m_differentialCheckbox->GetValue() )
|
||||
differential = "1";
|
||||
|
||||
SIM_MODEL::SetFieldValue( m_fields, SIM_LIBRARY_KIBIS::PIN_FIELD, pins );
|
||||
SIM_MODEL::SetFieldValue( m_fields, SIM_LIBRARY_KIBIS::MODEL_FIELD, modelName );
|
||||
SIM_MODEL::SetFieldValue( m_fields, SIM_LIBRARY_KIBIS::DIFF_FIELD, differential );
|
||||
SIM_MODEL::SetFieldValue( m_fields, SIM_LIBRARY_IBIS::PIN_FIELD, pins );
|
||||
SIM_MODEL::SetFieldValue( m_fields, SIM_LIBRARY_IBIS::MODEL_FIELD, modelName );
|
||||
SIM_MODEL::SetFieldValue( m_fields, SIM_LIBRARY_IBIS::DIFF_FIELD, differential );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -474,8 +474,8 @@ void DIALOG_SIM_MODEL<T>::updateWidgets()
|
|||
template <typename T>
|
||||
void DIALOG_SIM_MODEL<T>::updateIbisWidgets( SIM_MODEL* aModel )
|
||||
{
|
||||
SIM_MODEL_KIBIS* modelkibis = isIbisLoaded() ? dynamic_cast<SIM_MODEL_KIBIS*>( aModel )
|
||||
: nullptr;
|
||||
SIM_MODEL_IBIS* modelibis = isIbisLoaded() ? dynamic_cast<SIM_MODEL_IBIS*>( aModel )
|
||||
: nullptr;
|
||||
|
||||
m_pinLabel->Show( isIbisLoaded() );
|
||||
m_pinCombobox->Show( isIbisLoaded() );
|
||||
|
@ -510,7 +510,7 @@ void DIALOG_SIM_MODEL<T>::updateIbisWidgets( SIM_MODEL* aModel )
|
|||
}
|
||||
}
|
||||
|
||||
m_differentialCheckbox->Show( isIbisLoaded() && modelkibis && modelkibis->CanDifferential() );
|
||||
m_differentialCheckbox->Show( isIbisLoaded() && modelibis && modelibis->CanDifferential() );
|
||||
m_modelNameLabel->SetLabel( isIbisLoaded() ? _( "Component:" ) : _( "Model:" ) );
|
||||
}
|
||||
|
||||
|
@ -1244,7 +1244,7 @@ void DIALOG_SIM_MODEL<T>::onModelNameChoice( wxCommandEvent& aEvent )
|
|||
if( isIbisLoaded() )
|
||||
{
|
||||
wxArrayString pinLabels;
|
||||
SIM_MODEL_KIBIS* modelkibis = dynamic_cast<SIM_MODEL_KIBIS*>( &curModel() );
|
||||
SIM_MODEL_IBIS* modelkibis = dynamic_cast<SIM_MODEL_IBIS*>( &curModel() );
|
||||
|
||||
wxCHECK2( modelkibis, return );
|
||||
|
||||
|
@ -1267,12 +1267,12 @@ void DIALOG_SIM_MODEL<T>::onPinCombobox( wxCommandEvent& aEvent )
|
|||
{
|
||||
wxArrayString modelLabels;
|
||||
|
||||
SIM_MODEL_KIBIS& ibisModel = static_cast<SIM_MODEL_KIBIS&>( curModel() );
|
||||
SIM_MODEL_IBIS& ibisModel = static_cast<SIM_MODEL_IBIS&>( curModel() );
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> strs = ibisModel.GetIbisPins();
|
||||
std::string pinNumber = strs.at( m_pinCombobox->GetSelection() ).first;
|
||||
|
||||
const SIM_LIBRARY_KIBIS* ibisLibrary = dynamic_cast<const SIM_LIBRARY_KIBIS*>( library() );
|
||||
const SIM_LIBRARY_IBIS* ibisLibrary = dynamic_cast<const SIM_LIBRARY_IBIS*>( library() );
|
||||
|
||||
ibisModel.ChangePin( *ibisLibrary, pinNumber );
|
||||
|
||||
|
@ -1317,12 +1317,12 @@ void DIALOG_SIM_MODEL<T>::onPinModelComboboxTextEnter( wxCommandEvent& aEvent )
|
|||
template <typename T>
|
||||
void DIALOG_SIM_MODEL<T>::onDifferentialCheckbox( wxCommandEvent& aEvent )
|
||||
{
|
||||
SIM_MODEL_KIBIS* modelkibis = dynamic_cast<SIM_MODEL_KIBIS*>( &curModel() );
|
||||
SIM_MODEL_IBIS* modelibis = dynamic_cast<SIM_MODEL_IBIS*>( &curModel() );
|
||||
|
||||
wxCHECK( modelkibis, /* void */ );
|
||||
wxCHECK( modelibis, /* void */ );
|
||||
|
||||
bool diff = m_differentialCheckbox->GetValue() && modelkibis->CanDifferential();
|
||||
modelkibis->SwitchSingleEndedDiff( diff );
|
||||
bool diff = m_differentialCheckbox->GetValue() && modelibis->CanDifferential();
|
||||
modelibis->SwitchSingleEndedDiff( diff );
|
||||
|
||||
updateWidgets();
|
||||
}
|
||||
|
@ -1362,9 +1362,9 @@ void DIALOG_SIM_MODEL<T>::onWaveformChoice( wxCommandEvent& aEvent )
|
|||
{
|
||||
int idx = m_modelNameChoice->GetSelection();
|
||||
|
||||
auto& baseModel = static_cast<SIM_MODEL_KIBIS&>( m_libraryModelsMgr.GetModels()[idx].get() );
|
||||
auto& baseModel = static_cast<SIM_MODEL_IBIS&>( m_libraryModelsMgr.GetModels()[idx].get() );
|
||||
|
||||
m_libraryModelsMgr.SetModel( idx, std::make_unique<SIM_MODEL_KIBIS>( type, baseModel ) );
|
||||
m_libraryModelsMgr.SetModel( idx, std::make_unique<SIM_MODEL_IBIS>( type, baseModel ) );
|
||||
|
||||
try
|
||||
{
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#include <sim/sim_model.h>
|
||||
#include <sim/sim_library.h>
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
#include <sch_symbol.h>
|
||||
|
||||
|
||||
|
@ -118,7 +118,7 @@ private:
|
|||
|
||||
void adjustParamGridColumns( int aWidth, bool aForce );
|
||||
|
||||
bool isIbisLoaded() { return dynamic_cast<const SIM_LIBRARY_KIBIS*>( library() ); }
|
||||
bool isIbisLoaded() { return dynamic_cast<const SIM_LIBRARY_IBIS*>( library() ); }
|
||||
|
||||
private:
|
||||
EDA_BASE_FRAME* m_frame;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include <confirm.h>
|
||||
#include <pgm_base.h>
|
||||
#include <env_paths.h>
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
#include <sim/sim_xspice_parser.h>
|
||||
#include <sch_screen.h>
|
||||
#include <sch_textbox.h>
|
||||
|
@ -428,7 +428,7 @@ void NETLIST_EXPORTER_SPICE::readModel( SCH_SHEET_PATH& aSheet, SCH_SYMBOL& aSym
|
|||
if( !path.IsEmpty() )
|
||||
m_rawIncludes.insert( path );
|
||||
}
|
||||
else if( auto kibisModel = dynamic_cast<const SIM_MODEL_KIBIS*>( aItem.model ) )
|
||||
else if( auto ibisModel = dynamic_cast<const SIM_MODEL_IBIS*>( aItem.model ) )
|
||||
{
|
||||
wxFileName cacheFn;
|
||||
cacheFn.AssignDir( PATHS::GetUserCachePath() );
|
||||
|
@ -443,10 +443,11 @@ void NETLIST_EXPORTER_SPICE::readModel( SCH_SHEET_PATH& aSheet, SCH_SYMBOL& aSym
|
|||
cacheFn.GetFullPath() );
|
||||
}
|
||||
|
||||
auto spiceGenerator = static_cast<const SPICE_GENERATOR_KIBIS&>( kibisModel->SpiceGenerator() );
|
||||
std::string modelData = spiceGenerator.IbisDevice(
|
||||
aItem, m_schematic->Prj(),
|
||||
cacheFn.GetPath( wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR ), aReporter );
|
||||
auto spiceGenerator = static_cast<const SPICE_GENERATOR_IBIS&>( ibisModel->SpiceGenerator() );
|
||||
|
||||
wxString cacheFilepath = cacheFn.GetPath( wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR );
|
||||
std::string modelData = spiceGenerator.IbisDevice( aItem, m_schematic->Prj(),
|
||||
cacheFilepath, aReporter );
|
||||
|
||||
cacheFile.Write( wxString( modelData ) );
|
||||
m_rawIncludes.insert( cacheFn.GetFullPath() );
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
#include <sim/sim_library.h>
|
||||
#include <sim/sim_library_spice.h>
|
||||
#include <boost/algorithm/string/case_conv.hpp>
|
||||
|
@ -36,7 +36,7 @@ SIM_LIBRARY::Create( const wxString& aFilePath, bool aForceFullParse, REPORTER&
|
|||
std::unique_ptr<SIM_LIBRARY> library;
|
||||
|
||||
if( aFilePath.EndsWith( ".ibs" ) )
|
||||
library = std::make_unique<SIM_LIBRARY_KIBIS>();
|
||||
library = std::make_unique<SIM_LIBRARY_IBIS>();
|
||||
else
|
||||
library = std::make_unique<SIM_LIBRARY_SPICE>( aForceFullParse );
|
||||
|
||||
|
|
|
@ -21,15 +21,15 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_model_kibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
#include <sim/sim_model_ibis.h>
|
||||
#include <ki_exception.h>
|
||||
#include <locale_io.h>
|
||||
#include <pegtl/contrib/parse_tree.hpp>
|
||||
#include <sch_pin.h>
|
||||
|
||||
|
||||
void SIM_LIBRARY_KIBIS::ReadFile( const wxString& aFilePath, REPORTER& aReporter )
|
||||
void SIM_LIBRARY_IBIS::ReadFile( const wxString& aFilePath, REPORTER& aReporter )
|
||||
{
|
||||
SIM_LIBRARY::ReadFile( aFilePath, aReporter );
|
||||
m_kibis = KIBIS( aFilePath.ToStdString(), &aReporter );
|
||||
|
@ -52,7 +52,7 @@ void SIM_LIBRARY_KIBIS::ReadFile( const wxString& aFilePath, REPORTER& aReporter
|
|||
m_models.push_back( SIM_MODEL::Create( SIM_MODEL::TYPE::KIBIS_DEVICE, pins, aReporter ) );
|
||||
m_modelNames.emplace_back( kcomp.m_name );
|
||||
|
||||
SIM_MODEL_KIBIS* libcomp = dynamic_cast<SIM_MODEL_KIBIS*>( m_models.back().get() );
|
||||
SIM_MODEL_IBIS* libcomp = dynamic_cast<SIM_MODEL_IBIS*>( m_models.back().get() );
|
||||
|
||||
if ( libcomp )
|
||||
InitModel( *libcomp, kcomp.m_name );
|
||||
|
@ -60,7 +60,7 @@ void SIM_LIBRARY_KIBIS::ReadFile( const wxString& aFilePath, REPORTER& aReporter
|
|||
}
|
||||
|
||||
|
||||
bool SIM_LIBRARY_KIBIS::InitModel( SIM_MODEL_KIBIS& aModel, wxString aCompName )
|
||||
bool SIM_LIBRARY_IBIS::InitModel( SIM_MODEL_IBIS& aModel, wxString aCompName )
|
||||
{
|
||||
for( KIBIS_COMPONENT& kcomp : m_kibis.m_components )
|
||||
{
|
||||
|
@ -83,7 +83,7 @@ bool SIM_LIBRARY_KIBIS::InitModel( SIM_MODEL_KIBIS& aModel, wxString aCompName )
|
|||
}
|
||||
|
||||
|
||||
bool SIM_LIBRARY_KIBIS::isPinDiff( const std::string& aComp, const std::string& aPinNumber ) const
|
||||
bool SIM_LIBRARY_IBIS::isPinDiff( const std::string& aComp, const std::string& aPinNumber ) const
|
||||
{
|
||||
for( std::pair<std::string, std::string> aInfo : m_diffPins )
|
||||
{
|
|
@ -21,16 +21,16 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef SIM_LIBRARY_KIBIS_H
|
||||
#define SIM_LIBRARY_KIBIS_H
|
||||
#ifndef SIM_LIBRARY_IBIS_H
|
||||
#define SIM_LIBRARY_IBIS_H
|
||||
|
||||
#include <sim/kibis/kibis.h>
|
||||
#include <sim/sim_library.h>
|
||||
#include <sim/sim_model_kibis.h>
|
||||
#include <sim/sim_model_ibis.h>
|
||||
|
||||
class SIM_LIBRARY_KIBIS : public SIM_LIBRARY
|
||||
class SIM_LIBRARY_IBIS : public SIM_LIBRARY
|
||||
{
|
||||
friend class SIM_MODEL_KIBIS;
|
||||
friend class SIM_MODEL_IBIS;
|
||||
|
||||
public:
|
||||
static constexpr auto PIN_FIELD = "Sim.Ibis.Pin";
|
||||
|
@ -40,7 +40,7 @@ public:
|
|||
// @copydoc SIM_LIBRARY::ReadFile()
|
||||
void ReadFile( const wxString& aFilePath, REPORTER& aReporter ) override;
|
||||
|
||||
bool InitModel( SIM_MODEL_KIBIS& aModel, wxString aCompName );
|
||||
bool InitModel( SIM_MODEL_IBIS& aModel, wxString aCompName );
|
||||
bool isPinDiff( const std::string& aComp, const std::string& aPinNumber ) const;
|
||||
|
||||
protected:
|
||||
|
@ -48,4 +48,4 @@ protected:
|
|||
std::vector<std::pair<std::string, std::string>> m_diffPins;
|
||||
};
|
||||
|
||||
#endif // SIM_LIBRARY_SPICE_H
|
||||
#endif // SIM_LIBRARY_IBIS_H
|
|
@ -33,7 +33,7 @@
|
|||
#include <sim/sim_model_l_mutual.h>
|
||||
#include <sim/sim_model_ngspice.h>
|
||||
#include <sim/sim_model_r_pot.h>
|
||||
#include <sim/sim_model_kibis.h>
|
||||
#include <sim/sim_model_ibis.h>
|
||||
#include <sim/sim_model_source.h>
|
||||
#include <sim/sim_model_raw_spice.h>
|
||||
#include <sim/sim_model_subckt.h>
|
||||
|
@ -41,7 +41,7 @@
|
|||
#include <sim/sim_model_tline.h>
|
||||
#include <sim/sim_model_xspice.h>
|
||||
#include <sim/sim_lib_mgr.h>
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <fmt/core.h>
|
||||
|
@ -423,7 +423,7 @@ TYPE SIM_MODEL::ReadTypeFromFields( const std::vector<SCH_FIELD>& aFields, REPOR
|
|||
void SIM_MODEL::ReadDataFields( const std::vector<SCH_FIELD>* aFields,
|
||||
const std::vector<SCH_PIN*>& aPins )
|
||||
{
|
||||
bool diffMode = GetFieldValue( aFields, SIM_LIBRARY_KIBIS::DIFF_FIELD ) == "1";
|
||||
bool diffMode = GetFieldValue( aFields, SIM_LIBRARY_IBIS::DIFF_FIELD ) == "1";
|
||||
SwitchSingleEndedDiff( diffMode );
|
||||
|
||||
m_serializer->ParseEnable( GetFieldValue( aFields, SIM_LEGACY_ENABLE_FIELD_V7 ) );
|
||||
|
@ -944,7 +944,7 @@ std::unique_ptr<SIM_MODEL> SIM_MODEL::Create( TYPE aType )
|
|||
case TYPE::KIBIS_DRIVER_DC:
|
||||
case TYPE::KIBIS_DRIVER_RECT:
|
||||
case TYPE::KIBIS_DRIVER_PRBS:
|
||||
return std::make_unique<SIM_MODEL_KIBIS>( aType );
|
||||
return std::make_unique<SIM_MODEL_IBIS>( aType );
|
||||
|
||||
case TYPE::RAWSPICE:
|
||||
return std::make_unique<SIM_MODEL_RAW_SPICE>();
|
||||
|
|
|
@ -22,32 +22,32 @@
|
|||
*/
|
||||
|
||||
#include <sim/kibis/kibis.h>
|
||||
#include <sim/sim_model_kibis.h>
|
||||
#include <sim/sim_library_kibis.h>
|
||||
#include <sim/sim_model_ibis.h>
|
||||
#include <sim/sim_library_ibis.h>
|
||||
#include <fmt/core.h>
|
||||
#include <wx/filename.h>
|
||||
#include <kiway.h>
|
||||
#include "sim_lib_mgr.h"
|
||||
|
||||
std::string SPICE_GENERATOR_KIBIS::ModelName( const SPICE_ITEM& aItem ) const
|
||||
std::string SPICE_GENERATOR_IBIS::ModelName( const SPICE_ITEM& aItem ) const
|
||||
{
|
||||
return fmt::format( "{}.{}", aItem.refName, aItem.baseModelName );
|
||||
}
|
||||
|
||||
|
||||
std::string SPICE_GENERATOR_KIBIS::ModelLine( const SPICE_ITEM& aItem ) const
|
||||
std::string SPICE_GENERATOR_IBIS::ModelLine( const SPICE_ITEM& aItem ) const
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
std::vector<std::reference_wrapper<const SIM_MODEL::PARAM>> SPICE_GENERATOR_KIBIS::GetInstanceParams() const
|
||||
std::vector<std::reference_wrapper<const SIM_MODEL::PARAM>> SPICE_GENERATOR_IBIS::GetInstanceParams() const
|
||||
{
|
||||
std::vector<std::reference_wrapper<const SIM_MODEL::PARAM>> vec;
|
||||
return vec;
|
||||
}
|
||||
|
||||
|
||||
std::vector<std::string> SPICE_GENERATOR_KIBIS::CurrentNames( const SPICE_ITEM& aItem ) const
|
||||
std::vector<std::string> SPICE_GENERATOR_IBIS::CurrentNames( const SPICE_ITEM& aItem ) const
|
||||
{
|
||||
std::vector<std::string> currentNames;
|
||||
|
||||
|
@ -58,15 +58,15 @@ std::vector<std::string> SPICE_GENERATOR_KIBIS::CurrentNames( const SPICE_ITEM&
|
|||
}
|
||||
|
||||
|
||||
std::string SPICE_GENERATOR_KIBIS::IbisDevice( const SPICE_ITEM& aItem, const PROJECT& aProject,
|
||||
const wxString& aCacheDir,
|
||||
REPORTER& aReporter ) const
|
||||
std::string SPICE_GENERATOR_IBIS::IbisDevice( const SPICE_ITEM& aItem, const PROJECT& aProject,
|
||||
const wxString& aCacheDir,
|
||||
REPORTER& aReporter ) const
|
||||
{
|
||||
std::string ibisLibFilename = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY::LIBRARY_FIELD );
|
||||
std::string ibisCompName = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY::NAME_FIELD );
|
||||
std::string ibisPinName = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY_KIBIS::PIN_FIELD );
|
||||
std::string ibisModelName = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY_KIBIS::MODEL_FIELD );
|
||||
bool diffMode = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY_KIBIS::DIFF_FIELD ) == "1";
|
||||
std::string ibisPinName = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY_IBIS::PIN_FIELD );
|
||||
std::string ibisModelName = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY_IBIS::MODEL_FIELD );
|
||||
bool diffMode = SIM_MODEL::GetFieldValue( &aItem.fields, SIM_LIBRARY_IBIS::DIFF_FIELD ) == "1";
|
||||
|
||||
wxString path = SIM_LIB_MGR::ResolveLibraryPath( ibisLibFilename, &aProject );
|
||||
|
||||
|
@ -220,8 +220,8 @@ std::string SPICE_GENERATOR_KIBIS::IbisDevice( const SPICE_ITEM& aItem, const PR
|
|||
}
|
||||
|
||||
|
||||
SIM_MODEL_KIBIS::SIM_MODEL_KIBIS( TYPE aType ) :
|
||||
SIM_MODEL( aType, std::make_unique<SPICE_GENERATOR_KIBIS>( *this ) ),
|
||||
SIM_MODEL_IBIS::SIM_MODEL_IBIS( TYPE aType ) :
|
||||
SIM_MODEL( aType, std::make_unique<SPICE_GENERATOR_IBIS>( *this ) ),
|
||||
m_enableDiff( false ),
|
||||
m_sourceModel( nullptr )
|
||||
{
|
||||
|
@ -251,7 +251,7 @@ SIM_MODEL_KIBIS::SIM_MODEL_KIBIS( TYPE aType ) :
|
|||
}
|
||||
|
||||
|
||||
void SIM_MODEL_KIBIS::SwitchSingleEndedDiff( bool aDiff )
|
||||
void SIM_MODEL_IBIS::SwitchSingleEndedDiff( bool aDiff )
|
||||
{
|
||||
ClearPins();
|
||||
|
||||
|
@ -268,8 +268,8 @@ void SIM_MODEL_KIBIS::SwitchSingleEndedDiff( bool aDiff )
|
|||
}
|
||||
}
|
||||
|
||||
SIM_MODEL_KIBIS::SIM_MODEL_KIBIS( TYPE aType, const SIM_MODEL_KIBIS& aSource ) :
|
||||
SIM_MODEL_KIBIS( aType )
|
||||
SIM_MODEL_IBIS::SIM_MODEL_IBIS( TYPE aType, const SIM_MODEL_IBIS& aSource ) :
|
||||
SIM_MODEL_IBIS( aType )
|
||||
{
|
||||
for( PARAM& param1 : m_params )
|
||||
{
|
||||
|
@ -291,7 +291,7 @@ SIM_MODEL_KIBIS::SIM_MODEL_KIBIS( TYPE aType, const SIM_MODEL_KIBIS& aSource ) :
|
|||
}
|
||||
|
||||
|
||||
bool SIM_MODEL_KIBIS::ChangePin( const SIM_LIBRARY_KIBIS& aLib, std::string aPinNumber )
|
||||
bool SIM_MODEL_IBIS::ChangePin( const SIM_LIBRARY_IBIS& aLib, std::string aPinNumber )
|
||||
{
|
||||
KIBIS_COMPONENT* kcomp = aLib.m_kibis.GetComponent( std::string( GetComponentName() ) );
|
||||
|
||||
|
@ -312,17 +312,17 @@ bool SIM_MODEL_KIBIS::ChangePin( const SIM_LIBRARY_KIBIS& aLib, std::string aPin
|
|||
}
|
||||
|
||||
|
||||
void SIM_MODEL_KIBIS::SetBaseModel( const SIM_MODEL& aBaseModel )
|
||||
void SIM_MODEL_IBIS::SetBaseModel( const SIM_MODEL& aBaseModel )
|
||||
{
|
||||
// Actual base models can only be of the same type, which is not the case here, as in addition
|
||||
// to IBIS device model type we have multiple types of drivers available for the same sourced
|
||||
// model. And we don't want to inherit the default values anyway. So we just store these models
|
||||
// and use the only for Spice code generation.
|
||||
m_sourceModel = dynamic_cast<const SIM_MODEL_KIBIS*>( &aBaseModel );
|
||||
m_sourceModel = dynamic_cast<const SIM_MODEL_IBIS*>( &aBaseModel );
|
||||
}
|
||||
|
||||
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makeParamInfos( TYPE aType )
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_IBIS::makeParamInfos( TYPE aType )
|
||||
{
|
||||
std::vector<PARAM::INFO> paramInfos;
|
||||
PARAM::INFO paramInfo;
|
||||
|
@ -396,7 +396,7 @@ std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makeParamInfos( TYPE aType
|
|||
}
|
||||
|
||||
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makeDcWaveformParamInfos()
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_IBIS::makeDcWaveformParamInfos()
|
||||
{
|
||||
std::vector<PARAM::INFO> paramInfos;
|
||||
PARAM::INFO paramInfo;
|
||||
|
@ -414,7 +414,7 @@ std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makeDcWaveformParamInfos()
|
|||
}
|
||||
|
||||
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makeRectWaveformParamInfos()
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_IBIS::makeRectWaveformParamInfos()
|
||||
{
|
||||
std::vector<PARAM::INFO> paramInfos;
|
||||
PARAM::INFO paramInfo;
|
||||
|
@ -455,7 +455,7 @@ std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makeRectWaveformParamInfos(
|
|||
}
|
||||
|
||||
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_KIBIS::makePrbsWaveformParamInfos()
|
||||
std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_IBIS::makePrbsWaveformParamInfos()
|
||||
{
|
||||
std::vector<PARAM::INFO> paramInfos;
|
||||
PARAM::INFO paramInfo;
|
|
@ -21,19 +21,19 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef SIM_MODEL_KIBIS_H
|
||||
#define SIM_MODEL_KIBIS_H
|
||||
#ifndef SIM_MODEL_IBIS_H
|
||||
#define SIM_MODEL_IBIS_H
|
||||
|
||||
#include <sim/kibis/kibis.h>
|
||||
#include <sim/sim_model.h>
|
||||
#include <sim/spice_generator.h>
|
||||
#include <project.h>
|
||||
|
||||
class SIM_LIBRARY_KIBIS;
|
||||
class SIM_LIBRARY_IBIS;
|
||||
class REPORTER;
|
||||
|
||||
|
||||
class SPICE_GENERATOR_KIBIS : public SPICE_GENERATOR
|
||||
class SPICE_GENERATOR_IBIS : public SPICE_GENERATOR
|
||||
{
|
||||
public:
|
||||
using SPICE_GENERATOR::SPICE_GENERATOR;
|
||||
|
@ -49,16 +49,16 @@ protected:
|
|||
std::vector<std::reference_wrapper<const SIM_MODEL::PARAM>> GetInstanceParams() const override;
|
||||
};
|
||||
|
||||
class SIM_MODEL_KIBIS : public SIM_MODEL
|
||||
class SIM_MODEL_IBIS : public SIM_MODEL
|
||||
{
|
||||
friend class SIM_LIBRARY_KIBIS;
|
||||
friend class SIM_LIBRARY_IBIS;
|
||||
|
||||
public:
|
||||
SIM_MODEL_KIBIS( TYPE aType );
|
||||
SIM_MODEL_IBIS( TYPE aType );
|
||||
|
||||
// @brief Special copy constructor
|
||||
// creates a a model with aType, but tries to match parameters from aSource.
|
||||
SIM_MODEL_KIBIS( TYPE aType, const SIM_MODEL_KIBIS& aSource );
|
||||
SIM_MODEL_IBIS( TYPE aType, const SIM_MODEL_IBIS& aSource );
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> GetIbisPins() const
|
||||
{
|
||||
|
@ -81,7 +81,7 @@ public:
|
|||
/**
|
||||
* @brief update the list of available models based on the pin number.
|
||||
*/
|
||||
bool ChangePin( const SIM_LIBRARY_KIBIS& aLib, std::string aPinNumber );
|
||||
bool ChangePin( const SIM_LIBRARY_IBIS& aLib, std::string aPinNumber );
|
||||
|
||||
void SetBaseModel( const SIM_MODEL& aBaseModel ) override;
|
||||
|
||||
|
@ -97,7 +97,7 @@ private:
|
|||
static std::vector<PARAM::INFO> makeRectWaveformParamInfos();
|
||||
static std::vector<PARAM::INFO> makePrbsWaveformParamInfos();
|
||||
|
||||
const SIM_MODEL_KIBIS* m_sourceModel;
|
||||
const SIM_MODEL_IBIS* m_sourceModel;
|
||||
std::vector<std::string> m_ibisModels;
|
||||
std::vector<std::pair<std::string, std::string>> m_ibisPins;
|
||||
std::string m_componentName;
|
Loading…
Reference in New Issue