⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vbicload.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
📖 第 1 页 / 共 5 页
字号:
                        *(ckt->CKTrhsOp+here->VBICemitNode)-                        *(ckt->CKTrhsOp+here->VBICemitEINode));                    Vbcp = *(ckt->CKTstate1 + here->VBICvbcp);                    Vrs = model->VBICtype*(                        *(ckt->CKTrhsOp+here->VBICsubsNode)-                        *(ckt->CKTrhsOp+here->VBICsubsSINode));                }                else{                    Vbei = *(ckt->CKTstate0 + here->VBICvbei);                    Vbex = *(ckt->CKTstate0 + here->VBICvbex);                    Vbci = *(ckt->CKTstate0 + here->VBICvbci);                    Vbcx = *(ckt->CKTstate0 + here->VBICvbcx);                    Vbep = *(ckt->CKTstate0 + here->VBICvbep);                    Vrci = *(ckt->CKTstate0 + here->VBICvrci);                    Vrbi = *(ckt->CKTstate0 + here->VBICvrbi);                    Vrbp = *(ckt->CKTstate0 + here->VBICvrbp);                    Vbcp = *(ckt->CKTstate0 + here->VBICvbcp);                    if((ckt->CKTsenInfo->SENmode == DCSEN)||                        (ckt->CKTsenInfo->SENmode == TRANSEN)){                        Vbe = model->VBICtype*(                            *(ckt->CKTrhsOld+here->VBICbaseNode)-                            *(ckt->CKTrhsOld+here->VBICemitNode));                        Vbc = model->VBICtype*(                            *(ckt->CKTrhsOld+here->VBICbaseNode)-                            *(ckt->CKTrhsOld+here->VBICcollNode));                        Vrcx = model->VBICtype*(                            *(ckt->CKTrhsOld+here->VBICcollNode)-                            *(ckt->CKTrhsOld+here->VBICcollCXNode));                        Vrbx = model->VBICtype*(                            *(ckt->CKTrhsOld+here->VBICbaseNode)-                            *(ckt->CKTrhsOld+here->VBICbaseBXNode));                        Vre = model->VBICtype*(                            *(ckt->CKTrhsOld+here->VBICemitNode)-                            *(ckt->CKTrhsOld+here->VBICemitEINode));                        Vrs = model->VBICtype*(                            *(ckt->CKTrhsOld+here->VBICsubsNode)-                            *(ckt->CKTrhsOld+here->VBICsubsSINode));                    }                    if(ckt->CKTsenInfo->SENmode == ACSEN){                        Vbe = model->VBICtype*(                            *(ckt->CKTrhsOp+here->VBICbaseNode)-                            *(ckt->CKTrhsOp+here->VBICemitNode));                        Vbc = model->VBICtype*(                            *(ckt->CKTrhsOp+here->VBICbaseNode)-                            *(ckt->CKTrhsOp+here->VBICcollNode));                        Vrcx = model->VBICtype*(                            *(ckt->CKTrhsOp+here->VBICcollNode)-                            *(ckt->CKTrhsOp+here->VBICcollCXNode));                        Vrbx = model->VBICtype*(                            *(ckt->CKTrhsOp+here->VBICbaseNode)-                            *(ckt->CKTrhsOp+here->VBICbaseBXNode));                        Vre = model->VBICtype*(                            *(ckt->CKTrhsOp+here->VBICemitNode)-                            *(ckt->CKTrhsOp+here->VBICemitEINode));                        Vrs = model->VBICtype*(                            *(ckt->CKTrhsOp+here->VBICsubsNode)-                            *(ckt->CKTrhsOp+here->VBICsubsSINode));                    }                }                goto next1;            }            /*             *   initialization             */            icheck=1;            if(ckt->CKTmode & MODEINITSMSIG) {                Vbe = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICbaseNode)-                    *(ckt->CKTrhsOld+here->VBICemitNode));                Vbc = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICbaseNode)-                    *(ckt->CKTrhsOld+here->VBICcollNode));                Vbei = *(ckt->CKTstate0 + here->VBICvbei);                Vbex = *(ckt->CKTstate0 + here->VBICvbex);                Vbci = *(ckt->CKTstate0 + here->VBICvbci);                Vbcx = *(ckt->CKTstate0 + here->VBICvbcx);                Vbep = *(ckt->CKTstate0 + here->VBICvbep);                Vrci = *(ckt->CKTstate0 + here->VBICvrci);                Vrbi = *(ckt->CKTstate0 + here->VBICvrbi);                Vrbp = *(ckt->CKTstate0 + here->VBICvrbp);                Vrcx = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICcollNode)-                    *(ckt->CKTrhsOld+here->VBICcollCXNode));                Vrbx = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICbaseNode)-                    *(ckt->CKTrhsOld+here->VBICbaseBXNode));                Vre = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICemitNode)-                    *(ckt->CKTrhsOld+here->VBICemitEINode));                Vbcp = *(ckt->CKTstate0 + here->VBICvbcp);                Vrs = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICsubsNode)-                    *(ckt->CKTrhsOld+here->VBICsubsSINode));            } else if(ckt->CKTmode & MODEINITTRAN) {                Vbe = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICbaseNode)-                    *(ckt->CKTrhsOld+here->VBICemitNode));                Vbc = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICbaseNode)-                    *(ckt->CKTrhsOld+here->VBICcollNode));                Vbei = *(ckt->CKTstate1 + here->VBICvbei);                Vbex = *(ckt->CKTstate1 + here->VBICvbex);                Vbci = *(ckt->CKTstate1 + here->VBICvbci);                Vbcx = *(ckt->CKTstate1 + here->VBICvbcx);                Vbep = *(ckt->CKTstate1 + here->VBICvbep);                Vrci = *(ckt->CKTstate1 + here->VBICvrci);                Vrbi = *(ckt->CKTstate1 + here->VBICvrbi);                Vrbp = *(ckt->CKTstate1 + here->VBICvrbp);                Vrcx = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICcollNode)-                    *(ckt->CKTrhsOld+here->VBICcollCXNode));                Vrbx = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICbaseNode)-                    *(ckt->CKTrhsOld+here->VBICbaseBXNode));                Vre = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICemitNode)-                    *(ckt->CKTrhsOld+here->VBICemitEINode));                Vbcp = *(ckt->CKTstate1 + here->VBICvbcp);                Vrs = model->VBICtype*(                    *(ckt->CKTrhsOld+here->VBICsubsNode)-                    *(ckt->CKTrhsOld+here->VBICsubsSINode));                if( (ckt->CKTmode & MODETRAN) && (ckt->CKTmode & MODEUIC) ) {                    Vbc = model->VBICtype * (here->VBICicVBE-here->VBICicVCE);                }            } else if((ckt->CKTmode & MODEINITJCT) &&                     (ckt->CKTmode & MODETRANOP) && (ckt->CKTmode & MODEUIC)){                Vbe=model->VBICtype*here->VBICicVBE;                Vbei=Vbex=Vbe;                vce=model->VBICtype*here->VBICicVCE;                Vbc=Vbe-vce;                Vbci=Vbcx=Vbc;                Vbep=Vbcp=0.0;                Vrci=Vrbi=Vrbp=0.0;                Vrcx=Vrbx=Vre=Vrs=0.0;            } else if((ckt->CKTmode & MODEINITJCT) && (here->VBICoff==0)) {                Vbe=Vbei=Vbex=model->VBICtype*here->VBICtVcrit;                Vbc=Vbci=Vbcx=Vbep=0.0;                Vbcp=Vbc-Vbe;                Vrci=Vrbi=Vrbp=0.0;                Vrcx=Vrbx=Vre=Vrs=0.0;            } else if((ckt->CKTmode & MODEINITJCT) ||                    ( (ckt->CKTmode & MODEINITFIX) && (here->VBICoff!=0))) {                Vbe=0.0;                Vbei=Vbex=Vbe;                Vbc=0.0;                Vbci=Vbcx=Vbc;                Vbep=Vbcp=0.0;                Vrci=Vrbi=Vrbp=0.0;                Vrcx=Vrbx=Vre=Vrs=0.0;            } else {#ifndef PREDICTOR                if(ckt->CKTmode & MODEINITPRED) {                    xfact = ckt->CKTdelta/ckt->CKTdeltaOld[1];                    Vbei = (1+xfact) * *(ckt->CKTstate1 + here->VBICvbei)-                            xfact * *(ckt->CKTstate2 + here->VBICvbei);                    Vbex = (1+xfact) * *(ckt->CKTstate1 + here->VBICvbex)-                            xfact * *(ckt->CKTstate2 + here->VBICvbex);                    Vbci = (1+xfact) * *(ckt->CKTstate1 + here->VBICvbci)-                            xfact * *(ckt->CKTstate2 + here->VBICvbci);                    Vbcx = (1+xfact) * *(ckt->CKTstate1 + here->VBICvbcx)-                            xfact * *(ckt->CKTstate2 + here->VBICvbcx);                    Vbep = (1+xfact) * *(ckt->CKTstate1 + here->VBICvbep)-                            xfact * *(ckt->CKTstate2 + here->VBICvbep);                    Vrci = (1+xfact) * *(ckt->CKTstate1 + here->VBICvrci)-                            xfact * *(ckt->CKTstate2 + here->VBICvrci);                    Vrbi = (1+xfact) * *(ckt->CKTstate1 + here->VBICvrbi)-                            xfact * *(ckt->CKTstate2 + here->VBICvrbi);                    Vrbp = (1+xfact) * *(ckt->CKTstate1 + here->VBICvrbp)-                            xfact * *(ckt->CKTstate2 + here->VBICvrbp);                    Vbcp = (1+xfact) * *(ckt->CKTstate1 + here->VBICvbcp)-                            xfact * *(ckt->CKTstate2 + here->VBICvbcp);                    *(ckt->CKTstate0 + here->VBICvbei) =                             *(ckt->CKTstate1 + here->VBICvbei);                    *(ckt->CKTstate0 + here->VBICvbex) =                             *(ckt->CKTstate1 + here->VBICvbex);                    *(ckt->CKTstate0 + here->VBICvbci) =                             *(ckt->CKTstate1 + here->VBICvbci);                    *(ckt->CKTstate0 + here->VBICvbcx) =                             *(ckt->CKTstate1 + here->VBICvbcx);                    *(ckt->CKTstate0 + here->VBICvbep) =                             *(ckt->CKTstate1 + here->VBICvbep);                    *(ckt->CKTstate0 + here->VBICvrci) =                             *(ckt->CKTstate1 + here->VBICvrci);                    *(ckt->CKTstate0 + here->VBICvrbi) =                             *(ckt->CKTstate1 + here->VBICvrbi);                    *(ckt->CKTstate0 + here->VBICvrbp) =                             *(ckt->CKTstate1 + here->VBICvrbp);                    *(ckt->CKTstate0 + here->VBICvbcp) =                             *(ckt->CKTstate1 + here->VBICvbcp);                    *(ckt->CKTstate0 + here->VBICibe) =                             *(ckt->CKTstate1 + here->VBICibe);                    *(ckt->CKTstate0 + here->VBICibe_Vbei) =                             *(ckt->CKTstate1 + here->VBICibe_Vbei);                    *(ckt->CKTstate0 + here->VBICibex) =                             *(ckt->CKTstate1 + here->VBICibex);                    *(ckt->CKTstate0 + here->VBICibex_Vbex) =                             *(ckt->CKTstate1 + here->VBICibex_Vbex);                    *(ckt->CKTstate0 + here->VBICitzf) =                             *(ckt->CKTstate1 + here->VBICitzf);                    *(ckt->CKTstate0 + here->VBICitzf_Vbei) =                             *(ckt->CKTstate1 + here->VBICitzf_Vbei);                    *(ckt->CKTstate0 + here->VBICitzf_Vbci) =                             *(ckt->CKTstate1 + here->VBICitzf_Vbci);                    *(ckt->CKTstate0 + here->VBICitzr) =                             *(ckt->CKTstate1 + here->VBICitzr);                    *(ckt->CKTstate0 + here->VBICitzr_Vbei) =                             *(ckt->CKTstate1 + here->VBICitzf_Vbei);                    *(ckt->CKTstate0 + here->VBICitzr_Vbci) =                             *(ckt->CKTstate1 + here->VBICitzr_Vbci);                    *(ckt->CKTstate0 + here->VBICibc) =                             *(ckt->CKTstate1 + here->VBICibc);                    *(ckt->CKTstate0 + here->VBICibc_Vbci) =                             *(ckt->CKTstate1 + here->VBICibc_Vbci);                    *(ckt->CKTstate0 + here->VBICibc_Vbei) =                             *(ckt->CKTstate1 + here->VBICibc_Vbei);                    *(ckt->CKTstate0 + here->VBICibep) =                             *(ckt->CKTstate1 + here->VBICibep);                    *(ckt->CKTstate0 + here->VBICibep_Vbep) =                             *(ckt->CKTstate1 + here->VBICibep_Vbep);                    *(ckt->CKTstate0 + here->VBICirci) =                             *(ckt->CKTstate1 + here->VBICirci);                    *(ckt->CKTstate0 + here->VBICirci_Vrci) =                             *(ckt->CKTstate1 + here->VBICirci_Vrci);                    *(ckt->CKTstate0 + here->VBICirci_Vbci) =                             *(ckt->CKTstate1 + here->VBICirci_Vbci);                    *(ckt->CKTstate0 + here->VBICirci_Vbcx) =                             *(ckt->CKTstate1 + here->VBICirci_Vbcx);                    *(ckt->CKTstate0 + here->VBICirbi) =                             *(ckt->CKTstate1 + here->VBICirbi);                    *(ckt->CKTstate0 + here->VBICirbi_Vrbi) =                             *(ckt->CKTstate1 + here->VBICirbi_Vrbi);                    *(ckt->CKTstate0 + here->VBICirbi_Vbei) =                             *(ckt->CKTstate1 + here->VBICirbi_Vbei);                    *(ckt->CKTstate0 + here->VBICirbi_Vbci) =                             *(ckt->CKTstate1 + here->VBICirbi_Vbci);                    *(ckt->CKTstate0 + here->VBICirbp) =                             *(ckt->CKTstate1 + here->VBICirbp);                    *(ckt->CKTstate0 + here->VBICirbp_Vrbp) =                             *(ckt->CKTstate1 + here->VBICirbp_Vrbp);                    *(ckt->CKTstate0 + here->VBICirbp_Vbep) =                             *(ckt->CKTstate1 + here->VBICirbp_Vbep);                    *(ckt->CKTstate0 + here->VBICirbp_Vbci) =                             *(ckt->CKTstate1 + here->VBICirbp_Vbci);                    *(ckt->CKTstate0 + here->VBICibcp) =                             *(ckt->CKTstate1 + here->VBICibcp);                    *(ckt->CKTstate0 + here->VBICibcp_Vbcp) =                             *(ckt->CKTstate1 + here->VBICibcp_Vbcp);                    *(ckt->CKTstate0 + here->VBICiccp) =                             *(ckt->CKTstate1 + here->VBICiccp);                    *(ckt->CKTstate0 + here->VBICiccp_Vbep) = 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -