Sim QA: Test all BJT parameters in each model
This commit is contained in:
parent
26644952a4
commit
5fb191e4d6
File diff suppressed because it is too large
Load Diff
|
@ -106,12 +106,17 @@ public:
|
||||||
|
|
||||||
BOOST_TEST_CONTEXT( "Param name: " << paramName )
|
BOOST_TEST_CONTEXT( "Param name: " << paramName )
|
||||||
{
|
{
|
||||||
if( i == 0 )
|
if( i % 10 == 0 )
|
||||||
BOOST_CHECK_EQUAL( aModel.FindParam( paramName )->value->ToString(), "0" );
|
BOOST_CHECK_EQUAL( aModel.FindParam( paramName )->value->ToString(), "0" );
|
||||||
|
else if( aModel.FindParam( paramName )->info.type == SIM_VALUE::TYPE_INT )
|
||||||
|
{
|
||||||
|
BOOST_CHECK_EQUAL( aModel.FindParam( paramName )->value->ToString(),
|
||||||
|
fmt::format( "{:d}", i % 10 ) );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BOOST_CHECK_EQUAL( aModel.FindParam( paramName )->value->ToString(),
|
BOOST_CHECK_EQUAL( aModel.FindParam( paramName )->value->ToString(),
|
||||||
fmt::format( "{}.0000{}G", i, i ) );
|
fmt::format( "{}.0000{}G", i % 10, i % 10 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -454,36 +459,625 @@ BOOST_AUTO_TEST_CASE( Bjts )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_GUMMELPOON,
|
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_GUMMELPOON,
|
||||||
{ "is", "nf", "ise", "ne", "bf", "ikf", "vaf", "nr", "isc", "nc" } );
|
{
|
||||||
|
"is",
|
||||||
|
"nf",
|
||||||
|
"ise",
|
||||||
|
"ne",
|
||||||
|
"bf",
|
||||||
|
"ikf",
|
||||||
|
"vaf",
|
||||||
|
"nr",
|
||||||
|
"isc",
|
||||||
|
"nc",
|
||||||
|
"br",
|
||||||
|
"ikr",
|
||||||
|
"var",
|
||||||
|
"rb",
|
||||||
|
"irb",
|
||||||
|
"rbm",
|
||||||
|
"re",
|
||||||
|
"rc",
|
||||||
|
"xtb",
|
||||||
|
"eg",
|
||||||
|
"xti",
|
||||||
|
"cje",
|
||||||
|
"vje",
|
||||||
|
"mje",
|
||||||
|
"tf",
|
||||||
|
"xtf",
|
||||||
|
"vtf",
|
||||||
|
"itf",
|
||||||
|
"ptf",
|
||||||
|
"cjc",
|
||||||
|
"vjc",
|
||||||
|
"mjc",
|
||||||
|
"xcjc",
|
||||||
|
"tr",
|
||||||
|
"cjs",
|
||||||
|
"vjs",
|
||||||
|
"mjs",
|
||||||
|
"fc"
|
||||||
|
} );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_GUMMELPOON,
|
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_GUMMELPOON,
|
||||||
{ "is", "nf", "ise", "ne", "bf", "ikf", "vaf", "nr", "isc", "nc" } );
|
{
|
||||||
|
"is",
|
||||||
|
"nf",
|
||||||
|
"ise",
|
||||||
|
"ne",
|
||||||
|
"bf",
|
||||||
|
"ikf",
|
||||||
|
"vaf",
|
||||||
|
"nr",
|
||||||
|
"isc",
|
||||||
|
"nc",
|
||||||
|
"br",
|
||||||
|
"ikr",
|
||||||
|
"var",
|
||||||
|
"rb",
|
||||||
|
"irb",
|
||||||
|
"rbm",
|
||||||
|
"re",
|
||||||
|
"rc",
|
||||||
|
"xtb",
|
||||||
|
"eg",
|
||||||
|
"xti",
|
||||||
|
"cje",
|
||||||
|
"vje",
|
||||||
|
"mje",
|
||||||
|
"tf",
|
||||||
|
"xtf",
|
||||||
|
"vtf",
|
||||||
|
"itf",
|
||||||
|
"ptf",
|
||||||
|
"cjc",
|
||||||
|
"vjc",
|
||||||
|
"mjc",
|
||||||
|
"xcjc",
|
||||||
|
"tr",
|
||||||
|
"cjs",
|
||||||
|
"vjs",
|
||||||
|
"mjs",
|
||||||
|
"fc"
|
||||||
|
} );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_VBIC,
|
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_VBIC,
|
||||||
{ "rcx", "rci", "vo", "gamm", "hrcf", "rbx", "rbi", "re", "rs",
|
{
|
||||||
"rbp" } );
|
"rcx",
|
||||||
|
"rci",
|
||||||
|
"vo",
|
||||||
|
"gamm",
|
||||||
|
"hrcf",
|
||||||
|
"rbx",
|
||||||
|
"rbi",
|
||||||
|
"re",
|
||||||
|
"rs",
|
||||||
|
"rbp",
|
||||||
|
"is",
|
||||||
|
"nf",
|
||||||
|
"nr",
|
||||||
|
"fc",
|
||||||
|
"cbeo",
|
||||||
|
"cje",
|
||||||
|
"pe",
|
||||||
|
"me",
|
||||||
|
"aje",
|
||||||
|
"cbco",
|
||||||
|
"cjc",
|
||||||
|
"qco",
|
||||||
|
"cjep",
|
||||||
|
"pc",
|
||||||
|
"mc",
|
||||||
|
"ajc",
|
||||||
|
"cjcp",
|
||||||
|
"ps",
|
||||||
|
"ms",
|
||||||
|
"ajs",
|
||||||
|
"ibei",
|
||||||
|
"wbe",
|
||||||
|
"nei",
|
||||||
|
"iben",
|
||||||
|
"nen",
|
||||||
|
"ibci",
|
||||||
|
"nci",
|
||||||
|
"ibcn",
|
||||||
|
"ncn",
|
||||||
|
"avc1",
|
||||||
|
"avc2",
|
||||||
|
"isp",
|
||||||
|
"wsp",
|
||||||
|
"nfp",
|
||||||
|
"ibeip",
|
||||||
|
"ibenp",
|
||||||
|
"ibcip",
|
||||||
|
"ncip",
|
||||||
|
"ibcnp",
|
||||||
|
"ncnp",
|
||||||
|
"vef",
|
||||||
|
"ver",
|
||||||
|
"ikf",
|
||||||
|
"ikr",
|
||||||
|
"ikp",
|
||||||
|
"tf",
|
||||||
|
"qtf",
|
||||||
|
"xtf",
|
||||||
|
"vtf",
|
||||||
|
"itf",
|
||||||
|
"tr",
|
||||||
|
"td",
|
||||||
|
"kfn",
|
||||||
|
"afn",
|
||||||
|
"bfn",
|
||||||
|
"xre",
|
||||||
|
"xrb",
|
||||||
|
"xrbi",
|
||||||
|
"xrc",
|
||||||
|
"xrci",
|
||||||
|
"xrs",
|
||||||
|
"xvo",
|
||||||
|
"ea",
|
||||||
|
"eaie",
|
||||||
|
"eaic",
|
||||||
|
"eais",
|
||||||
|
"eane",
|
||||||
|
"eanc",
|
||||||
|
"eans",
|
||||||
|
"xis",
|
||||||
|
"xii",
|
||||||
|
"xin",
|
||||||
|
"tnf",
|
||||||
|
"tavc",
|
||||||
|
"rth",
|
||||||
|
"cth",
|
||||||
|
"vrt",
|
||||||
|
"art",
|
||||||
|
"ccso",
|
||||||
|
"qbm",
|
||||||
|
"nkf",
|
||||||
|
"xikf",
|
||||||
|
"xrcx",
|
||||||
|
"xrbx",
|
||||||
|
"xrbp",
|
||||||
|
"isrr",
|
||||||
|
"xisr",
|
||||||
|
"dear",
|
||||||
|
"eap",
|
||||||
|
"vbbe",
|
||||||
|
"nbbe",
|
||||||
|
"ibbe",
|
||||||
|
"tvbbe1",
|
||||||
|
"tvbbe2",
|
||||||
|
"tnbbe",
|
||||||
|
"ebbe",
|
||||||
|
"dtemp",
|
||||||
|
"vers",
|
||||||
|
"vref",
|
||||||
|
"vbe_max",
|
||||||
|
"vbc_max",
|
||||||
|
"vce_max"
|
||||||
|
} );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_VBIC,
|
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_VBIC,
|
||||||
{ "rcx", "rci", "vo", "gamm", "hrcf", "rbx", "rbi", "re", "rs",
|
{
|
||||||
"rbp" } );
|
"rcx",
|
||||||
|
"rci",
|
||||||
|
"vo",
|
||||||
|
"gamm",
|
||||||
|
"hrcf",
|
||||||
|
"rbx",
|
||||||
|
"rbi",
|
||||||
|
"re",
|
||||||
|
"rs",
|
||||||
|
"rbp",
|
||||||
|
"is",
|
||||||
|
"nf",
|
||||||
|
"nr",
|
||||||
|
"fc",
|
||||||
|
"cbeo",
|
||||||
|
"cje",
|
||||||
|
"pe",
|
||||||
|
"me",
|
||||||
|
"aje",
|
||||||
|
"cbco",
|
||||||
|
"cjc",
|
||||||
|
"qco",
|
||||||
|
"cjep",
|
||||||
|
"pc",
|
||||||
|
"mc",
|
||||||
|
"ajc",
|
||||||
|
"cjcp",
|
||||||
|
"ps",
|
||||||
|
"ms",
|
||||||
|
"ajs",
|
||||||
|
"ibei",
|
||||||
|
"wbe",
|
||||||
|
"nei",
|
||||||
|
"iben",
|
||||||
|
"nen",
|
||||||
|
"ibci",
|
||||||
|
"nci",
|
||||||
|
"ibcn",
|
||||||
|
"ncn",
|
||||||
|
"avc1",
|
||||||
|
"avc2",
|
||||||
|
"isp",
|
||||||
|
"wsp",
|
||||||
|
"nfp",
|
||||||
|
"ibeip",
|
||||||
|
"ibenp",
|
||||||
|
"ibcip",
|
||||||
|
"ncip",
|
||||||
|
"ibcnp",
|
||||||
|
"ncnp",
|
||||||
|
"vef",
|
||||||
|
"ver",
|
||||||
|
"ikf",
|
||||||
|
"ikr",
|
||||||
|
"ikp",
|
||||||
|
"tf",
|
||||||
|
"qtf",
|
||||||
|
"xtf",
|
||||||
|
"vtf",
|
||||||
|
"itf",
|
||||||
|
"tr",
|
||||||
|
"td",
|
||||||
|
"kfn",
|
||||||
|
"afn",
|
||||||
|
"bfn",
|
||||||
|
"xre",
|
||||||
|
"xrb",
|
||||||
|
"xrbi",
|
||||||
|
"xrc",
|
||||||
|
"xrci",
|
||||||
|
"xrs",
|
||||||
|
"xvo",
|
||||||
|
"ea",
|
||||||
|
"eaie",
|
||||||
|
"eaic",
|
||||||
|
"eais",
|
||||||
|
"eane",
|
||||||
|
"eanc",
|
||||||
|
"eans",
|
||||||
|
"xis",
|
||||||
|
"xii",
|
||||||
|
"xin",
|
||||||
|
"tnf",
|
||||||
|
"tavc",
|
||||||
|
"rth",
|
||||||
|
"cth",
|
||||||
|
"vrt",
|
||||||
|
"art",
|
||||||
|
"ccso",
|
||||||
|
"qbm",
|
||||||
|
"nkf",
|
||||||
|
"xikf",
|
||||||
|
"xrcx",
|
||||||
|
"xrbx",
|
||||||
|
"xrbp",
|
||||||
|
"isrr",
|
||||||
|
"xisr",
|
||||||
|
"dear",
|
||||||
|
"eap",
|
||||||
|
"vbbe",
|
||||||
|
"nbbe",
|
||||||
|
"ibbe",
|
||||||
|
"tvbbe1",
|
||||||
|
"tvbbe2",
|
||||||
|
"tnbbe",
|
||||||
|
"ebbe",
|
||||||
|
"dtemp",
|
||||||
|
"vers",
|
||||||
|
"vref",
|
||||||
|
"vbe_max",
|
||||||
|
"vbc_max",
|
||||||
|
"vce_max"
|
||||||
|
} );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_HICUM2,
|
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_HICUM2,
|
||||||
{ "c10", "qp0", "ich", "hf0", "hfe", "hfc", "hjei", "ahjei", "rhjei",
|
{
|
||||||
"hjci" } );
|
"c10",
|
||||||
|
"qp0",
|
||||||
|
"ich",
|
||||||
|
"hf0",
|
||||||
|
"hfe",
|
||||||
|
"hfc",
|
||||||
|
"hjei",
|
||||||
|
"ahjei",
|
||||||
|
"rhjei",
|
||||||
|
"hjci",
|
||||||
|
"ibeis",
|
||||||
|
"mbei",
|
||||||
|
"ireis",
|
||||||
|
"mrei",
|
||||||
|
"ibeps",
|
||||||
|
"mbep",
|
||||||
|
"ireps",
|
||||||
|
"mrep",
|
||||||
|
"mcf",
|
||||||
|
"tbhrec",
|
||||||
|
"ibcis",
|
||||||
|
"mbci",
|
||||||
|
"ibcxs",
|
||||||
|
"mbcx",
|
||||||
|
"ibets",
|
||||||
|
"abet",
|
||||||
|
"tunode",
|
||||||
|
"favl",
|
||||||
|
"qavl",
|
||||||
|
"kavl",
|
||||||
|
"alfav",
|
||||||
|
"alqav",
|
||||||
|
"alkav",
|
||||||
|
"rbi0",
|
||||||
|
"rbx",
|
||||||
|
"fgeo",
|
||||||
|
"fdqr0",
|
||||||
|
"fcrbi",
|
||||||
|
"fqi",
|
||||||
|
"re",
|
||||||
|
"rcx",
|
||||||
|
"itss",
|
||||||
|
"msf",
|
||||||
|
"iscs",
|
||||||
|
"msc",
|
||||||
|
"tsf",
|
||||||
|
"rsu",
|
||||||
|
"csu",
|
||||||
|
"cjei0",
|
||||||
|
"vdei",
|
||||||
|
"zei",
|
||||||
|
"ajei",
|
||||||
|
//"aljei", Alias.
|
||||||
|
"cjep0",
|
||||||
|
"vdep",
|
||||||
|
"zep",
|
||||||
|
"ajep",
|
||||||
|
//"aljep", Alias.
|
||||||
|
"cjci0",
|
||||||
|
"vdci",
|
||||||
|
"zci",
|
||||||
|
"vptci",
|
||||||
|
"cjcx0",
|
||||||
|
"vdcx",
|
||||||
|
"zcx",
|
||||||
|
"vptcx",
|
||||||
|
"fbcpar",
|
||||||
|
//"fbc", Alias.
|
||||||
|
"fbepar",
|
||||||
|
//"fbe", Alias.
|
||||||
|
"cjs0",
|
||||||
|
"vds",
|
||||||
|
"zs",
|
||||||
|
"vpts",
|
||||||
|
"cscp0",
|
||||||
|
"vdsp",
|
||||||
|
"zsp",
|
||||||
|
"vptsp",
|
||||||
|
"t0",
|
||||||
|
"dt0h",
|
||||||
|
"tbvl",
|
||||||
|
"tef0",
|
||||||
|
"gtfe",
|
||||||
|
"thcs",
|
||||||
|
"ahc",
|
||||||
|
//"alhc", Alias.
|
||||||
|
"fthc",
|
||||||
|
"rci0",
|
||||||
|
"vlim",
|
||||||
|
"vces",
|
||||||
|
"vpt",
|
||||||
|
"aick",
|
||||||
|
"delck",
|
||||||
|
"tr",
|
||||||
|
"vcbar",
|
||||||
|
"icbar",
|
||||||
|
"acbar",
|
||||||
|
"cbepar",
|
||||||
|
//"ceox", Alias.
|
||||||
|
"cbcpar",
|
||||||
|
//"ccox", Alias.
|
||||||
|
"alqf",
|
||||||
|
"alit",
|
||||||
|
"flnqs",
|
||||||
|
"kf",
|
||||||
|
"af",
|
||||||
|
"cfbe",
|
||||||
|
"flcono",
|
||||||
|
"kfre",
|
||||||
|
"afre",
|
||||||
|
"latb",
|
||||||
|
"latl",
|
||||||
|
"vgb",
|
||||||
|
"alt0",
|
||||||
|
"kt0",
|
||||||
|
"zetaci",
|
||||||
|
"alvs",
|
||||||
|
"alces",
|
||||||
|
"zetarbi",
|
||||||
|
"zetarbx",
|
||||||
|
"zetarcx",
|
||||||
|
"zetare",
|
||||||
|
"zetacx",
|
||||||
|
"vge",
|
||||||
|
"vgc",
|
||||||
|
"vgs",
|
||||||
|
"f1vg",
|
||||||
|
"f2vg",
|
||||||
|
"zetact",
|
||||||
|
"zetabet",
|
||||||
|
"alb",
|
||||||
|
"dvgbe",
|
||||||
|
"zetahjei",
|
||||||
|
"zetavgbe",
|
||||||
|
"flsh",
|
||||||
|
"rth",
|
||||||
|
"zetarth",
|
||||||
|
"alrth",
|
||||||
|
"cth",
|
||||||
|
"flcomp",
|
||||||
|
"vbe_max",
|
||||||
|
"vbc_max",
|
||||||
|
"vce_max"
|
||||||
|
} );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_HICUM2,
|
TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_HICUM2,
|
||||||
{ "c10", "qp0", "ich", "hf0", "hfe", "hfc", "hjei", "ahjei", "rhjei",
|
{
|
||||||
"hjci" } );
|
"c10",
|
||||||
|
"qp0",
|
||||||
|
"ich",
|
||||||
|
"hf0",
|
||||||
|
"hfe",
|
||||||
|
"hfc",
|
||||||
|
"hjei",
|
||||||
|
"ahjei",
|
||||||
|
"rhjei",
|
||||||
|
"hjci",
|
||||||
|
"ibeis",
|
||||||
|
"mbei",
|
||||||
|
"ireis",
|
||||||
|
"mrei",
|
||||||
|
"ibeps",
|
||||||
|
"mbep",
|
||||||
|
"ireps",
|
||||||
|
"mrep",
|
||||||
|
"mcf",
|
||||||
|
"tbhrec",
|
||||||
|
"ibcis",
|
||||||
|
"mbci",
|
||||||
|
"ibcxs",
|
||||||
|
"mbcx",
|
||||||
|
"ibets",
|
||||||
|
"abet",
|
||||||
|
"tunode",
|
||||||
|
"favl",
|
||||||
|
"qavl",
|
||||||
|
"kavl",
|
||||||
|
"alfav",
|
||||||
|
"alqav",
|
||||||
|
"alkav",
|
||||||
|
"rbi0",
|
||||||
|
"rbx",
|
||||||
|
"fgeo",
|
||||||
|
"fdqr0",
|
||||||
|
"fcrbi",
|
||||||
|
"fqi",
|
||||||
|
"re",
|
||||||
|
"rcx",
|
||||||
|
"itss",
|
||||||
|
"msf",
|
||||||
|
"iscs",
|
||||||
|
"msc",
|
||||||
|
"tsf",
|
||||||
|
"rsu",
|
||||||
|
"csu",
|
||||||
|
"cjei0",
|
||||||
|
"vdei",
|
||||||
|
"zei",
|
||||||
|
"ajei",
|
||||||
|
//"aljei", Alias.
|
||||||
|
"cjep0",
|
||||||
|
"vdep",
|
||||||
|
"zep",
|
||||||
|
"ajep",
|
||||||
|
//"aljep", Alias.
|
||||||
|
"cjci0",
|
||||||
|
"vdci",
|
||||||
|
"zci",
|
||||||
|
"vptci",
|
||||||
|
"cjcx0",
|
||||||
|
"vdcx",
|
||||||
|
"zcx",
|
||||||
|
"vptcx",
|
||||||
|
"fbcpar",
|
||||||
|
//"fbc", Alias.
|
||||||
|
"fbepar",
|
||||||
|
//"fbe", Alias.
|
||||||
|
"cjs0",
|
||||||
|
"vds",
|
||||||
|
"zs",
|
||||||
|
"vpts",
|
||||||
|
"cscp0",
|
||||||
|
"vdsp",
|
||||||
|
"zsp",
|
||||||
|
"vptsp",
|
||||||
|
"t0",
|
||||||
|
"dt0h",
|
||||||
|
"tbvl",
|
||||||
|
"tef0",
|
||||||
|
"gtfe",
|
||||||
|
"thcs",
|
||||||
|
"ahc",
|
||||||
|
//"alhc", Alias.
|
||||||
|
"fthc",
|
||||||
|
"rci0",
|
||||||
|
"vlim",
|
||||||
|
"vces",
|
||||||
|
"vpt",
|
||||||
|
"aick",
|
||||||
|
"delck",
|
||||||
|
"tr",
|
||||||
|
"vcbar",
|
||||||
|
"icbar",
|
||||||
|
"acbar",
|
||||||
|
"cbepar",
|
||||||
|
//"ceox", Alias.
|
||||||
|
"cbcpar",
|
||||||
|
//"ccox", Alias.
|
||||||
|
"alqf",
|
||||||
|
"alit",
|
||||||
|
"flnqs",
|
||||||
|
"kf",
|
||||||
|
"af",
|
||||||
|
"cfbe",
|
||||||
|
"flcono",
|
||||||
|
"kfre",
|
||||||
|
"afre",
|
||||||
|
"latb",
|
||||||
|
"latl",
|
||||||
|
"vgb",
|
||||||
|
"alt0",
|
||||||
|
"kt0",
|
||||||
|
"zetaci",
|
||||||
|
"alvs",
|
||||||
|
"alces",
|
||||||
|
"zetarbi",
|
||||||
|
"zetarbx",
|
||||||
|
"zetarcx",
|
||||||
|
"zetare",
|
||||||
|
"zetacx",
|
||||||
|
"vge",
|
||||||
|
"vgc",
|
||||||
|
"vgs",
|
||||||
|
"f1vg",
|
||||||
|
"f2vg",
|
||||||
|
"zetact",
|
||||||
|
"zetabet",
|
||||||
|
"alb",
|
||||||
|
"dvgbe",
|
||||||
|
"zetahjei",
|
||||||
|
"zetavgbe",
|
||||||
|
"flsh",
|
||||||
|
"rth",
|
||||||
|
"zetarth",
|
||||||
|
"alrth",
|
||||||
|
"cth",
|
||||||
|
"flcomp",
|
||||||
|
"vbe_max",
|
||||||
|
"vbc_max",
|
||||||
|
"vce_max"
|
||||||
|
} );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
|
|
Loading…
Reference in New Issue