📄 b2set.c
字号:
} if( ! model->B2nDLGiven) { model->B2nDL = 0.0; } if( ! model->B2nDWGiven) { model->B2nDW = 0.0; } if( ! model->B2vof00Given) { model->B2vof00 = 1.8; } if( ! model->B2vof0LGiven) { model->B2vof0L = 0.0; } if( ! model->B2vof0WGiven) { model->B2vof0W = 0.0; } if( ! model->B2vofB0Given) { model->B2vofB0 = 0.0; } if( ! model->B2vofBLGiven) { model->B2vofBL = 0.0; } if( ! model->B2vofBWGiven) { model->B2vofBW = 0.0; } if( ! model->B2vofD0Given) { model->B2vofD0 = 0.0; } if( ! model->B2vofDLGiven) { model->B2vofDL = 0.0; } if( ! model->B2vofDWGiven) { model->B2vofDW = 0.0; } if( ! model->B2ai00Given) { model->B2ai00 = 0.0; } if( ! model->B2ai0LGiven) { model->B2ai0L = 0.0; } if( ! model->B2ai0WGiven) { model->B2ai0W = 0.0; } if( ! model->B2aiB0Given) { model->B2aiB0 = 0.0; } if( ! model->B2aiBLGiven) { model->B2aiBL = 0.0; } if( ! model->B2aiBWGiven) { model->B2aiBW = 0.0; } if( ! model->B2bi00Given) { model->B2bi00 = 0.0; } if( ! model->B2bi0LGiven) { model->B2bi0L = 0.0; } if( ! model->B2bi0WGiven) { model->B2bi0W = 0.0; } if( ! model->B2biB0Given) { model->B2biB0 = 0.0; } if( ! model->B2biBLGiven) { model->B2biBL = 0.0; } if( ! model->B2biBWGiven) { model->B2biBW = 0.0; } if( ! model->B2vghigh0Given) { model->B2vghigh0 = 0.2; } if( ! model->B2vghighLGiven) { model->B2vghighL = 0.0; } if( ! model->B2vghighWGiven) { model->B2vghighW = 0.0; } if( ! model->B2vglow0Given) { model->B2vglow0 = -0.15; } if( ! model->B2vglowLGiven) { model->B2vglowL = 0.0; } if( ! model->B2vglowWGiven) { model->B2vglowW = 0.0; } if( ! model->B2toxGiven) { model->B2tox = 0.03; /* um */ } if( ! model->B2tempGiven) { model->B2temp = 27.0; } if( ! model->B2vddGiven) { model->B2vdd = 5.0; } if( ! model->B2vggGiven) { model->B2vgg = 5.0; } if( ! model->B2vbbGiven) { model->B2vbb = 5.0; } if( ! model->B2gateDrainOverlapCapGiven) { model->B2gateDrainOverlapCap = 0.0; } if( ! model->B2gateSourceOverlapCapGiven) { model->B2gateSourceOverlapCap = 0.0; } if( ! model->B2gateBulkOverlapCapGiven) { model->B2gateBulkOverlapCap = 0.0; } if( ! model->B2channelChargePartitionFlagGiven) { model->B2channelChargePartitionFlag = 0.0; } if( ! model->B2sheetResistanceGiven) { model->B2sheetResistance = 0.0; } if( ! model->B2unitAreaJctCapGiven) { model->B2unitAreaJctCap = 0.0; } if( ! model->B2unitLengthSidewallJctCapGiven) { model->B2unitLengthSidewallJctCap = 0.0; } if( ! model->B2jctSatCurDensityGiven) { model->B2jctSatCurDensity = 0.0; } if( ! model->B2bulkJctPotentialGiven) { model->B2bulkJctPotential = 0.0; } if( ! model->B2sidewallJctPotentialGiven) { model->B2sidewallJctPotential = 0.0; } if( ! model->B2bulkJctBotGradingCoeffGiven) { model->B2bulkJctBotGradingCoeff = 0.0; } if( ! model->B2bulkJctSideGradingCoeffGiven) { model->B2bulkJctSideGradingCoeff = 0.0; } if( ! model->B2defaultWidthGiven) { model->B2defaultWidth = 10.0; } if( ! model->B2deltaLengthGiven) { model->B2deltaLength = 0.0; } /* loop through all the instances of the model */ for (here = model->B2instances; here != NULL ; here=here->B2nextInstance) { if (here->B2owner == ARCHme) { /* allocate a chunk of the state vector */ here->B2states = *states; *states += B2numStates; } /* perform the parameter defaulting */ if(!here->B2drainAreaGiven) { here->B2drainArea = 0; } if(!here->B2drainPerimeterGiven) { here->B2drainPerimeter = 0; } if(!here->B2drainSquaresGiven) { here->B2drainSquares = 1; } if(!here->B2icVBSGiven) { here->B2icVBS = 0; } if(!here->B2icVDSGiven) { here->B2icVDS = 0; } if(!here->B2icVGSGiven) { here->B2icVGS = 0; } if(!here->B2lGiven) { here->B2l = 5e-6; } if(!here->B2sourceAreaGiven) { here->B2sourceArea = 0; } if(!here->B2sourcePerimeterGiven) { here->B2sourcePerimeter = 0; } if(!here->B2sourceSquaresGiven) { here->B2sourceSquares = 1; } if(!here->B2vdsatGiven) { here->B2vdsat = 0; } if(!here->B2vonGiven) { here->B2von = 0; } if(!here->B2wGiven) { here->B2w = 5e-6; } /* process drain series resistance */ if( (model->B2sheetResistance != 0) && (here->B2drainSquares != 0.0 ) && (here->B2dNodePrime == 0) ) { error = CKTmkVolt(ckt,&tmp,here->B2name,"drain"); if(error) return(error); here->B2dNodePrime = tmp->number; } else { here->B2dNodePrime = here->B2dNode; } /* process source series resistance */ if( (model->B2sheetResistance != 0) && (here->B2sourceSquares != 0.0 ) && (here->B2sNodePrime == 0) ) { if(here->B2sNodePrime == 0) { error = CKTmkVolt(ckt,&tmp,here->B2name,"source"); if(error) return(error); here->B2sNodePrime = tmp->number; } } else { here->B2sNodePrime = here->B2sNode; } /* set Sparse Matrix Pointers *//* macro to make elements with built in test for out of memory */#define TSTALLOC(ptr,first,second) \if((here->ptr = SMPmakeElt(matrix,here->first,here->second))==(double *)NULL){\ return(E_NOMEM);\} TSTALLOC(B2DdPtr, B2dNode, B2dNode) TSTALLOC(B2GgPtr, B2gNode, B2gNode) TSTALLOC(B2SsPtr, B2sNode, B2sNode) TSTALLOC(B2BbPtr, B2bNode, B2bNode) TSTALLOC(B2DPdpPtr, B2dNodePrime, B2dNodePrime) TSTALLOC(B2SPspPtr, B2sNodePrime, B2sNodePrime) TSTALLOC(B2DdpPtr, B2dNode, B2dNodePrime) TSTALLOC(B2GbPtr, B2gNode, B2bNode) TSTALLOC(B2GdpPtr, B2gNode, B2dNodePrime) TSTALLOC(B2GspPtr, B2gNode, B2sNodePrime) TSTALLOC(B2SspPtr, B2sNode, B2sNodePrime) TSTALLOC(B2BdpPtr, B2bNode, B2dNodePrime) TSTALLOC(B2BspPtr, B2bNode, B2sNodePrime) TSTALLOC(B2DPspPtr, B2dNodePrime, B2sNodePrime) TSTALLOC(B2DPdPtr, B2dNodePrime, B2dNode) TSTALLOC(B2BgPtr, B2bNode, B2gNode) TSTALLOC(B2DPgPtr, B2dNodePrime, B2gNode) TSTALLOC(B2SPgPtr, B2sNodePrime, B2gNode) TSTALLOC(B2SPsPtr, B2sNodePrime, B2sNode) TSTALLOC(B2DPbPtr, B2dNodePrime, B2bNode) TSTALLOC(B2SPbPtr, B2sNodePrime, B2bNode) TSTALLOC(B2SPdpPtr, B2sNodePrime, B2dNodePrime) } } return(OK);} intB2unsetup(inModel,ckt) GENmodel *inModel; CKTcircuit *ckt;{#ifndef HAS_BATCHSIM B2model *model; B2instance *here; for (model = (B2model *)inModel; model != NULL; model = model->B2nextModel) { for (here = model->B2instances; here != NULL; here=here->B2nextInstance) { if (here->B2dNodePrime && here->B2dNodePrime != here->B2dNode) { CKTdltNNum(ckt, here->B2dNodePrime); here->B2dNodePrime = 0; } if (here->B2sNodePrime && here->B2sNodePrime != here->B2sNode) { CKTdltNNum(ckt, here->B2sNodePrime); here->B2sNodePrime = 0; } } }#endif return OK;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -