|
|
|
@ -122,7 +122,7 @@ SIM_MODEL::DEVICE_INFO SIM_MODEL::DeviceTypeInfo( DEVICE_TYPE_ aDeviceType ) |
|
|
|
SIM_MODEL::INFO SIM_MODEL::TypeInfo( TYPE aType ) |
|
|
|
{ |
|
|
|
switch( aType ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case TYPE::NONE: return { DEVICE_TYPE_::NONE, "", "" }; |
|
|
|
|
|
|
|
case TYPE::R: return { DEVICE_TYPE_::R, "", "Ideal" }; |
|
|
|
@ -132,7 +132,7 @@ SIM_MODEL::INFO SIM_MODEL::TypeInfo( TYPE aType ) |
|
|
|
case TYPE::C_BEHAVIORAL: return { DEVICE_TYPE_::C, "=", "Behavioral" }; |
|
|
|
|
|
|
|
case TYPE::L: return { DEVICE_TYPE_::L, "", "Ideal" }; |
|
|
|
case TYPE::L_MUTUAL: return { DEVICE_TYPE_::L, "MUTUAL", "Mutual" }; |
|
|
|
case TYPE::L_MUTUAL: return { DEVICE_TYPE_::L, "MUTUAL", "Mutual" }; |
|
|
|
case TYPE::L_BEHAVIORAL: return { DEVICE_TYPE_::L, "=", "Behavioral" }; |
|
|
|
|
|
|
|
case TYPE::TLINE_Z0: return { DEVICE_TYPE_::TLINE, "Z0", "Characteristic impedance" }; |
|
|
|
@ -142,7 +142,7 @@ SIM_MODEL::INFO SIM_MODEL::TypeInfo( TYPE aType ) |
|
|
|
case TYPE::SW_I: return { DEVICE_TYPE_::SW, "I", "Current-controlled" }; |
|
|
|
|
|
|
|
case TYPE::D: return { DEVICE_TYPE_::D, "", "" }; |
|
|
|
|
|
|
|
|
|
|
|
case TYPE::NPN_GUMMELPOON: return { DEVICE_TYPE_::NPN, "GUMMELPOON", "Gummel-Poon" }; |
|
|
|
case TYPE::PNP_GUMMELPOON: return { DEVICE_TYPE_::PNP, "GUMMELPOON", "Gummel-Poon" }; |
|
|
|
case TYPE::NPN_VBIC: return { DEVICE_TYPE_::NPN, "VBIC", "VBIC" }; |
|
|
|
@ -262,7 +262,7 @@ SIM_MODEL::SPICE_INFO SIM_MODEL::SpiceInfo( TYPE aType ) |
|
|
|
case TYPE::L: return { "L", "" }; |
|
|
|
case TYPE::L_MUTUAL: return { "K", "" }; |
|
|
|
case TYPE::L_BEHAVIORAL: return { "L", "", "", "0", false, true }; |
|
|
|
|
|
|
|
|
|
|
|
//case TYPE::TLINE_Z0: return { "T" };
|
|
|
|
case TYPE::TLINE_Z0: return { "O", "LTRA" }; |
|
|
|
case TYPE::TLINE_RLGC: return { "O", "LTRA" }; |
|
|
|
@ -606,7 +606,7 @@ TYPE SIM_MODEL::InferTypeFromRefAndValue( const wxString& aRef, const wxString& |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
catch( const tao::pegtl::parse_error& e ) |
|
|
|
catch( const tao::pegtl::parse_error& ) |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
@ -1021,7 +1021,7 @@ bool SIM_MODEL::SetParamValue( const wxString& aParamName, const wxString& aValu |
|
|
|
{ |
|
|
|
return param.info.name == aParamName.Lower(); |
|
|
|
} ); |
|
|
|
|
|
|
|
|
|
|
|
if( it == params.end() ) |
|
|
|
return false; |
|
|
|
|
|
|
|
@ -1071,7 +1071,7 @@ SIM_MODEL::SIM_MODEL( TYPE aType ) : |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
SIM_MODEL::SIM_MODEL( TYPE aType, std::unique_ptr<SPICE_GENERATOR> aSpiceGenerator ) : |
|
|
|
SIM_MODEL::SIM_MODEL( TYPE aType, std::unique_ptr<SPICE_GENERATOR> aSpiceGenerator ) : |
|
|
|
m_spiceGenerator( std::move( aSpiceGenerator ) ), |
|
|
|
m_baseModel( nullptr ), |
|
|
|
m_type( aType ), |
|
|
|
@ -1174,7 +1174,7 @@ void SIM_MODEL::ParseParamsField( const wxString& aParamsField ) |
|
|
|
try |
|
|
|
{ |
|
|
|
// Using parse tree instead of actions because we don't care about performance that much,
|
|
|
|
// and having a tree greatly simplifies some things.
|
|
|
|
// and having a tree greatly simplifies some things.
|
|
|
|
root = tao::pegtl::parse_tree::parse< |
|
|
|
SIM_MODEL_PARSER::fieldParamValuePairsGrammar, |
|
|
|
SIM_MODEL_PARSER::fieldParamValuePairsSelector> |
|
|
|
@ -1193,7 +1193,7 @@ void SIM_MODEL::ParseParamsField( const wxString& aParamsField ) |
|
|
|
paramName = node->string(); |
|
|
|
// TODO: Do something with number<SIM_VALUE::TYPE_INT, ...>.
|
|
|
|
// It doesn't seem too useful?
|
|
|
|
else if( node->is_type<SIM_MODEL_PARSER::quotedStringContent>() |
|
|
|
else if( node->is_type<SIM_MODEL_PARSER::quotedStringContent>() |
|
|
|
|| node->is_type<SIM_MODEL_PARSER::unquotedString>() ) |
|
|
|
{ |
|
|
|
wxASSERT( paramName != "" ); |
|
|
|
@ -1295,7 +1295,7 @@ std::unique_ptr<SIM_MODEL> SIM_MODEL::create( TYPE aType ) |
|
|
|
case TYPE::V_BEHAVIORAL: |
|
|
|
case TYPE::I_BEHAVIORAL: |
|
|
|
return std::make_unique<SIM_MODEL_BEHAVIORAL>( aType ); |
|
|
|
|
|
|
|
|
|
|
|
case TYPE::TLINE_Z0: |
|
|
|
case TYPE::TLINE_RLGC: |
|
|
|
return std::make_unique<SIM_MODEL_TLINE>( aType ); |
|
|
|
|