|
|
|
@ -106,12 +106,17 @@ public: |
|
|
|
|
|
|
|
BOOST_TEST_CONTEXT( "Param name: " << paramName ) |
|
|
|
{ |
|
|
|
if( i == 0 ) |
|
|
|
if( i % 10 == 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 |
|
|
|
{ |
|
|
|
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: |
|
|
|
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; |
|
|
|
|
|
|
|
case 1: |
|
|
|
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; |
|
|
|
|
|
|
|
case 2: |
|
|
|
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; |
|
|
|
|
|
|
|
case 3: |
|
|
|
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; |
|
|
|
|
|
|
|
case 4: |
|
|
|
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; |
|
|
|
|
|
|
|
case 5: |
|
|
|
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; |
|
|
|
|
|
|
|
case 6: |
|
|
|
|