tmp node to gnd in HICUM if no SH
This commit is contained in:
parent
4e6deec579
commit
a46cb231a0
|
|
@ -512,9 +512,7 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
//Qcth from 0 to T f_0=- f_T=+
|
//Qcth from 0 to T f_0=- f_T=+
|
||||||
*(here->HICUMtempTempPtr + 1) += -XQcth_Vrth;
|
*(here->HICUMtempTempPtr + 1) += -XQcth_Vrth;
|
||||||
|
|
||||||
} else {
|
}
|
||||||
*(here->HICUMtempTempPtr) += ckt->CKTgmin;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ typedef struct sHICUMinstance {
|
||||||
const int HICUMbaseNode; /* number of base node of hicum */
|
const int HICUMbaseNode; /* number of base node of hicum */
|
||||||
const int HICUMemitNode; /* number of emitter node of hicum */
|
const int HICUMemitNode; /* number of emitter node of hicum */
|
||||||
const int HICUMsubsNode; /* number of substrate node of hicum */
|
const int HICUMsubsNode; /* number of substrate node of hicum */
|
||||||
const int HICUMtempNode; /* number of the temperature node of the hicum */
|
int HICUMtempNode; /* number of the temperature node of the hicum */
|
||||||
int HICUMcollCINode; /* number of internal collector node of hicum */
|
int HICUMcollCINode; /* number of internal collector node of hicum */
|
||||||
int HICUMbaseBINode; /* number of internal base node of hicum */
|
int HICUMbaseBINode; /* number of internal base node of hicum */
|
||||||
int HICUMemitEINode; /* number of internal emitter node of hicum */
|
int HICUMemitEINode; /* number of internal emitter node of hicum */
|
||||||
|
|
|
||||||
|
|
@ -565,6 +565,19 @@ HICUMsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
|
||||||
here->HICUMbaseBINode = tmp->number;
|
here->HICUMbaseBINode = tmp->number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//VDMOS COPY
|
||||||
|
if (!(model->HICUMflsh == 0 || model->HICUMrth < MIN_R )) {
|
||||||
|
if (here->HICUMtempNode == -1) {
|
||||||
|
error = CKTmkVolt(ckt,&tmp,here->HICUMname,"dT");
|
||||||
|
if (error) return(error);
|
||||||
|
here->HICUMtempNode = tmp->number;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
here->HICUMtempNode = 0;
|
||||||
|
}
|
||||||
|
//END VDMOS COPY
|
||||||
|
|
||||||
|
|
||||||
// if(here->HICUMxfNode == 0) {
|
// if(here->HICUMxfNode == 0) {
|
||||||
// error = CKTmkVolt(ckt, &tmp, here->HICUMname, "xf");
|
// error = CKTmkVolt(ckt, &tmp, here->HICUMname, "xf");
|
||||||
// if(error) return(error);
|
// if(error) return(error);
|
||||||
|
|
@ -672,10 +685,7 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\
|
||||||
TSTALLOC(HICUMtempSubsSIPtr,HICUMtempNode,HICUMsubsSINode);
|
TSTALLOC(HICUMtempSubsSIPtr,HICUMtempNode,HICUMsubsSINode);
|
||||||
|
|
||||||
TSTALLOC(HICUMtempTempPtr,HICUMtempNode,HICUMtempNode);
|
TSTALLOC(HICUMtempTempPtr,HICUMtempNode,HICUMtempNode);
|
||||||
} else { //need this element so that one can still use the node, even though it is not connected
|
}
|
||||||
TSTALLOC(HICUMtempTempPtr,HICUMtempNode,HICUMtempNode);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -3699,11 +3699,6 @@ c Branch: xf-ground, Stamp element: Rxf
|
||||||
// finish
|
// finish
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
// force node to 0 volt
|
|
||||||
*(ckt->CKTrhs + here->HICUMtempNode) += 0;
|
|
||||||
*(here->HICUMtempTempPtr) += 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ if [ -z "$testProgramFlags" ] ; then
|
||||||
testProgramFlags="-nw"
|
testProgramFlags="-nw"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#testProgramFlags="-d -V"
|
testProgramFlags="-d -V"
|
||||||
|
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,43 +0,0 @@
|
||||||
//
|
|
||||||
// Example test specification for HICUM L2V2p32
|
|
||||||
//
|
|
||||||
|
|
||||||
//
|
|
||||||
// Simulator specific information
|
|
||||||
// These arguments are added to the model card
|
|
||||||
// specification to invoke the desired model in
|
|
||||||
// different simulators (which can have different
|
|
||||||
// names or levels for the same model) and to switch
|
|
||||||
// between nType and pType polarities.
|
|
||||||
// It is assumed that there are no polarity specific
|
|
||||||
// parameters.
|
|
||||||
//
|
|
||||||
|
|
||||||
`ifdef spice
|
|
||||||
// hicum not supported
|
|
||||||
`endif
|
|
||||||
`ifdef ngspice
|
|
||||||
nTypeSelectionArguments npn level=8 version=2.34
|
|
||||||
//pTypeSelectionArguments pnp level=8 version=2.34
|
|
||||||
`endif
|
|
||||||
|
|
||||||
//
|
|
||||||
// General test-independent information
|
|
||||||
//
|
|
||||||
|
|
||||||
keyLetter q
|
|
||||||
pins coll base emit subs therm
|
|
||||||
//verilogaFile vacode/hicumL2V2p34.va
|
|
||||||
float therm
|
|
||||||
checkPolarity n
|
|
||||||
|
|
||||||
test ypara_npn_full_sh_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_sh
|
|
||||||
|
|
||||||
`ifdef NOT_USED
|
|
||||||
`endif
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue