diff --git a/src/spicelib/devices/hicum2/hicum2acld.c b/src/spicelib/devices/hicum2/hicum2acld.c index 429cd6b3d..6bcdf5872 100644 --- a/src/spicelib/devices/hicum2/hicum2acld.c +++ b/src/spicelib/devices/hicum2/hicum2acld.c @@ -68,9 +68,9 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt) double XQjci_Vrth; double XQjep_Vbpei; double XQjep_Vrth; - double Xqjcx0_t_i_Vbci; + double volatile Xqjcx0_t_i_Vbci; double Xqjcx0_t_i_Vrth; - double Xqjcx0_t_ii_Vbpci; + double volatile Xqjcx0_t_ii_Vbpci; double Xqjcx0_t_ii_Vrth; double XQdsu_Vbpci; double XQdsu_Vsici; @@ -378,19 +378,19 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt) *(here->HICUMcollCollPtr + 1) += -XQscp_Vsc; //Qbepar1 *(here->HICUMbaseBasePtr + 1) += XQbepar1_Vbe; + *(here->HICUMemitEmitPtr + 1) += XQbepar1_Vbe; *(here->HICUMbaseEmitPtr + 1) += -XQbepar1_Vbe; *(here->HICUMemitBasePtr + 1) += -XQbepar1_Vbe; - *(here->HICUMemitEmitPtr + 1) += XQbepar1_Vbe; //Qbepar2 *(here->HICUMbaseBPBaseBPPtr + 1) += XQbepar2_Vbpe; + *(here->HICUMemitEmitPtr + 1) += XQbepar2_Vbpe; *(here->HICUMemitBaseBPPtr + 1) += -XQbepar2_Vbpe; - *(here->HICUMemitEmitPtr + 1) += -XQbepar2_Vbpe; - *(here->HICUMbaseBPEmitPtr + 1) += XQbepar2_Vbpe; + *(here->HICUMbaseBPEmitPtr + 1) += -XQbepar2_Vbpe; //Qbcpar1 *(here->HICUMbaseBasePtr + 1) += XQbcpar1_Vbci; + *(here->HICUMcollCICollCIPtr + 1) += XQbcpar1_Vbci; *(here->HICUMbaseCollCIPtr + 1) += -XQbcpar1_Vbci; *(here->HICUMcollCIBasePtr + 1) += -XQbcpar1_Vbci; - *(here->HICUMcollCICollCIPtr + 1) += XQbcpar1_Vbci; //Qbcpar2 *(here->HICUMbaseBPBaseBPPtr +1) += XQbepar2_Vbpe; *(here->HICUMcollCICollCIPtr +1) += XQbepar2_Vbpe; @@ -398,9 +398,9 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt) *(here->HICUMcollCIBaseBPPtr +1) += -XQbepar2_Vbpe; //Qsu *(here->HICUMsubsSubsPtr + 1) += XQsu_Vsis; + *(here->HICUMsubsSISubsSIPtr + 1) += XQsu_Vsis; *(here->HICUMsubsSISubsPtr + 1) += -XQsu_Vsis; *(here->HICUMsubsSubsSIPtr + 1) += -XQsu_Vsis; - *(here->HICUMsubsSISubsSIPtr + 1) += XQsu_Vsis; // Stamps with SH if (model->HICUMflsh && model->HICUMrth >= 0.001) { //dirty: hardcoded MIN_R @@ -512,6 +512,8 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt) //Qcth from 0 to T f_0=- f_T=+ *(here->HICUMtempTempPtr + 1) += -XQcth_Vrth; + } else { + *(here->HICUMtempTempPtr) += ckt->CKTgmin; } } diff --git a/src/spicelib/devices/hicum2/hicumL2.cpp b/src/spicelib/devices/hicum2/hicumL2.cpp index 9d096b14e..3eb339742 100644 --- a/src/spicelib/devices/hicum2/hicumL2.cpp +++ b/src/spicelib/devices/hicum2/hicumL2.cpp @@ -2701,8 +2701,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Ith_Vbbp = 2*Vbbp/here->HICUMrbx_t.rpart; } } - Ith += ckt->CKTgmin*Vrth; - Ith_Vrth += ckt->CKTgmin; + } // ******************************************** @@ -2720,6 +2719,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) //S from Isis //all derivatives with gmin + Ibbp_Vbbp += ckt->CKTgmin; + Icic_Vcic += ckt->CKTgmin; + Ieie_Veie += ckt->CKTgmin; + Isis_Vsis += ckt->CKTgmin; //Ibiei Ibiei_Vbiei += ckt->CKTgmin; Ibiei_Vbici += ckt->CKTgmin; @@ -2752,6 +2755,11 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) //SHE derivatives if (!(model->HICUMflsh == 0 || model->HICUMrth < MIN_R )) { + // T node + Ith += ckt->CKTgmin*Vrth; + Ibbp_Vrth += ckt->CKTgmin; + Icic_Vrth += ckt->CKTgmin; + Ieie_Vrth += ckt->CKTgmin; //Ibiei Ibiei_Vrth += ckt->CKTgmin; //Ibici diff --git a/src/spicelib/devices/hicum2/overview_files.md b/src/spicelib/devices/hicum2/overview_files.md index 3773a4e23..3e917201c 100644 --- a/src/spicelib/devices/hicum2/overview_files.md +++ b/src/spicelib/devices/hicum2/overview_files.md @@ -110,4 +110,93 @@ Ableitungen des Stromes gmin als Zusatz. Praktisch heißt das, daß die Beaufschlagung von Iciei überflüssig ist, da schon mit den Zweigen biei und bici erfolgt ist. Es fehlen aber noch Beaufschlagungen, -z.B. Ibiei_Vbici, weil die Ableitung später hinzugekommen ist. \ No newline at end of file +z.B. Ibiei_Vbici, weil die Ableitung später hinzugekommen ist. + +# CMC Failing Tests +****** Checking test (ngspice): fgum_ac_npn_1D_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): fgum_ac_npn_internal_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): fgum_ac_npn_full_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_bias_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_con_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_bias_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_cond_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): fgum_ac_npn_vert_nqs_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +***** Checking test (ngspice): fgum_ac_npn_lat_nqs_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): fgum_ac_npn_cornoise_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +***** Checking test (ngspice): CBE_npn_1D_dc + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): CBE_npn_1D_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): CBE_npn_internal_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +***** Checking test (ngspice): CBE_npn_full_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +***** Checking test (ngspice): ypara_npn_1D_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +***** Checking test (ngspice): ypara_npn_internal_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +***** Checking test (ngspice): ypara_npn_full_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +***** Checking test (ngspice): ypara_npn_full_sh_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): ypara_npn_full_subtran_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): ypara_npn_full_subcoupl_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): ypara_npn_full_subcoupl_peri_bias_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): ypara_npn_full_subcoupl_peri_con_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +***** Checking test (ngspice): ypara_npn_full_subcoupl_peri_bias_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +****** Checking test (ngspice): ypara_npn_full_subcoupl_peri_con_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + +***** Checking test (ngspice): ypara_npn_vert_nqs_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): ypara_npn_lat_nqs_ac + variant: standard (compared to: reference) FAIL (probably from some simulation failure) + +****** Checking test (ngspice): ypara_npn_cornoise_ac + variant: standard (compared to: reference) DIFFER (max rel error is 100%) + diff --git a/tests/hicum2/npn/qaSpec b/tests/hicum2/npn/qaSpec index 421334464..3ec5ff47a 100644 --- a/tests/hicum2/npn/qaSpec +++ b/tests/hicum2/npn/qaSpec @@ -39,13 +39,5 @@ freq dec 5 1e+008 1e+011 outputs G(base,base) G(base,coll) G(coll,base) G(coll,coll) C(base,base) C(base,coll) C(coll,base) C(coll,coll) modelParameters parameters/npn_full_sh -test ypara_npn_full_ac -temperature 27 -biases V(emit)=0 V(subs)=0 V(coll)=1.000000 -biasSweep V(base)=0.800000,0.950000,0.050000 -freq dec 5 1e+008 1e+011 -outputs G(base,base) G(base,coll) G(coll,base) G(coll,coll) C(base,base) C(base,coll) C(coll,base) C(coll,coll) -modelParameters parameters/npn_full - `ifdef NOT_USED `endif