Browse Source

Added fixes from Hitoshi Tanaka and Dietmar Warning over original code.

pre-master-46
pnenzi 21 years ago
parent
commit
99c1f901e3
  1. 19
      ChangeLog
  2. 8
      src/spicelib/devices/bsim4/b4ld.c
  3. 1
      src/spicelib/devices/bsim4/b4set.c
  4. 2
      src/spicelib/devices/bsim4/b4temp.c

19
ChangeLog

@ -7,6 +7,25 @@
- Added NodeSet for internal nodes. - Added NodeSet for internal nodes.
- Removed #ifdef STDC and non STDC function prototypes - Removed #ifdef STDC and non STDC function prototypes
- Added missing "pParam->BSIM4ku0we" to fprintf in b4temp.c. - Added missing "pParam->BSIM4ku0we" to fprintf in b4temp.c.
* src/spicelib/devices/bsim4/b4temp.c: fixed the following bug (Dietmar
Warning):
- Freed old node adding FREE(model->pSizeDependParamKnot); near line 146.
* src/spicelib/devices/bsim4/b4set.c: fixed the following bug (Dietmar
Warning):
- Removed double testing for model->BSIM4prtGiven.
* src/spicelib/devices/bsim4/b4ld.c: fixed the following bugs:
- In the computation of ggts and ggtd near line 4014 here->BSIM4gcrgd
and here->BSIM4gcrgs were exchanged. (Dietmar Warning).
- In the computation of gcqdb and gcqsb near line 4019 here->BSIM4cqsb
and here->BSIM4cqdb were exchanged (Hitoshi Tanaka).
2005-11-07 Paolo Nenzi <p.nenzi@ieee.org> 2005-11-07 Paolo Nenzi <p.nenzi@ieee.org>

8
src/spicelib/devices/bsim4/b4ld.c

@ -4011,14 +4011,14 @@ line755:
* pParam->BSIM4leffCV; * pParam->BSIM4leffCV;
T0 = qdef * ScalingFactor / CoxWL; T0 = qdef * ScalingFactor / CoxWL;
ggtg = here->BSIM4gtg = T0 * here->BSIM4gcrgg; ggtg = here->BSIM4gtg = T0 * here->BSIM4gcrgg;
ggts = here->BSIM4gts = T0 * here->BSIM4gcrgd;
ggtd = here->BSIM4gtd = T0 * here->BSIM4gcrgs;
ggts = here->BSIM4gts = T0 * here->BSIM4gcrgs;
ggtd = here->BSIM4gtd = T0 * here->BSIM4gcrgd;
ggtb = here->BSIM4gtb = T0 * here->BSIM4gcrgb; ggtb = here->BSIM4gtb = T0 * here->BSIM4gcrgb;
gqdef = ScalingFactor * ag0; gqdef = ScalingFactor * ag0;
gcqgb = here->BSIM4cqgb * ag0; gcqgb = here->BSIM4cqgb * ag0;
gcqdb = here->BSIM4cqsb * ag0;
gcqsb = here->BSIM4cqdb * ag0;
gcqdb = here->BSIM4cqdb * ag0;
gcqsb = here->BSIM4cqsb * ag0;
gcqbb = here->BSIM4cqbb * ag0; gcqbb = here->BSIM4cqbb * ag0;
if (fabs(qcheq) <= 1.0e-5 * CoxWL) if (fabs(qcheq) <= 1.0e-5 * CoxWL)

1
src/spicelib/devices/bsim4/b4set.c

@ -326,7 +326,6 @@ JOB *job;
model->BSIM4prwg = 1.0; /* in 1/V */ model->BSIM4prwg = 1.0; /* in 1/V */
if (!model->BSIM4prwbGiven) if (!model->BSIM4prwbGiven)
model->BSIM4prwb = 0.0; model->BSIM4prwb = 0.0;
if (!model->BSIM4prtGiven)
if (!model->BSIM4prtGiven) if (!model->BSIM4prtGiven)
model->BSIM4prt = 0.0; model->BSIM4prt = 0.0;
if (!model->BSIM4eta0Given) if (!model->BSIM4eta0Given)

2
src/spicelib/devices/bsim4/b4temp.c

@ -142,6 +142,8 @@ int Size_Not_Found, i;
} }
if (!model->BSIM4cgboGiven) if (!model->BSIM4cgboGiven)
model->BSIM4cgbo = 2.0 * model->BSIM4dwc * model->BSIM4coxe; model->BSIM4cgbo = 2.0 * model->BSIM4dwc * model->BSIM4coxe;
/* va: was memory leakage - free old node, (or better use again?) */
FREE(model->pSizeDependParamKnot);
model->pSizeDependParamKnot = NULL; model->pSizeDependParamKnot = NULL;
pLastKnot = NULL; pLastKnot = NULL;

Loading…
Cancel
Save