Browse Source

Added support for bsim3soi fd devices (fully depleted).

pre-master-46
pnenzi 26 years ago
parent
commit
97e77a523e
  1. 12
      DEVICES
  2. 3
      configure.in
  3. 1
      src/Makefile.am
  4. 2
      src/frontend/subckt.c
  5. 4
      src/frontend/variable.c
  6. 2
      src/include/cktdefs.h
  7. 1
      src/spicelib/devices/Makefile.am
  8. 8
      src/spicelib/devices/bsim3soi_pd/b3soipdacld.c
  9. 4
      src/spicelib/devices/bsim3soi_pd/b3soipdcheck.c
  10. 6
      src/spicelib/devices/bsim3soi_pd/b3soipdcvtest.c
  11. 8
      src/spicelib/devices/bsim3soi_pd/b3soipdld.c
  12. 6
      src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c
  13. 8
      src/spicelib/devices/bsim3soi_pd/b3soipdpzld.c
  14. 10
      src/spicelib/devices/bsim3soi_pd/b3soipdset.c
  15. 4
      src/spicelib/devices/bsim3soi_pd/b3soipdtemp.c
  16. 6
      src/spicelib/devices/bsim3soi_pd/b3soipdtrunc.c
  17. 52
      src/spicelib/devices/dev.c
  18. 8
      src/spicelib/parser/inpdomod.c
  19. 2
      tests/Makefile.am
  20. 5
      tests/bsim3soipd/RampVg2.cir
  21. 4
      tests/bsim3soipd/inv2.cir
  22. 7
      tests/bsim3soipd/ring51.cir
  23. 4
      tests/bsim3soipd/t3.cir
  24. 7
      tests/bsim3soipd/t4.cir
  25. 6
      tests/bsim3soipd/t5.cir

12
DEVICES

@ -165,12 +165,18 @@ BSIM3SOI_DD - SOI model (dynamic depletion)
NOT YET IMPLEMENTED. NOT YET IMPLEMENTED.
BSIM3SOI_FD - SOI model (fully depleted devices) BSIM3SOI_FD - SOI model (fully depleted devices)
NOT YET IMPLEMENTED.
Initial Release Ver: 2.1. TO BE TESTED.
FD model has been integrated as Level = 10
There is a bsim3soifd directory under the test
hierarchy. Test circuits come from the bsim3soi
web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi
BSIM3SOI_PD - SOI model (partially depleted devices) BSIM3SOI_PD - SOI model (partially depleted devices)
Initial Release Ver: 2.2.1. TO BE TESTED
Initial Release Ver: 2.2.1. TO BE TESTED.
PD model has been integrated as Level = 9
There is a bsim3soipd directory under the test There is a bsim3soipd directory under the test
hierarchy. The tests come from the bsim3soi
hierarchy. Test circuits come from the bsim3soi
web site at: web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi http://www-device.eecs.berkeley.edu/~bsimsoi

3
configure.in

@ -215,6 +215,7 @@ src/spicelib/devices/bsim3/Makefile \
src/spicelib/devices/bsim4/Makefile \ src/spicelib/devices/bsim4/Makefile \
src/spicelib/devices/bsim3v2/Makefile \ src/spicelib/devices/bsim3v2/Makefile \
src/spicelib/devices/bsim3soi_pd/Makefile \ src/spicelib/devices/bsim3soi_pd/Makefile \
src/spicelib/devices/bsim3soi_fd/Makefile \
src/spicelib/devices/cap/Makefile \ src/spicelib/devices/cap/Makefile \
src/spicelib/devices/cccs/Makefile \ src/spicelib/devices/cccs/Makefile \
src/spicelib/devices/ccvs/Makefile \ src/spicelib/devices/ccvs/Makefile \
@ -254,4 +255,6 @@ tests/Makefile \
tests/filters/Makefile \ tests/filters/Makefile \
tests/polezero/Makefile \ tests/polezero/Makefile \
tests/resistance/Makefile \ tests/resistance/Makefile \
tests/bsim3soipd/Makefile \
tests/bsim3soifd/Makefile
) )

1
src/Makefile.am

@ -23,6 +23,7 @@ DYNAMIC_DEVICELIBS = \
spicelib/devices/bsim4/libbsim4.la \ spicelib/devices/bsim4/libbsim4.la \
spicelib/devices/cap/libcap.la \ spicelib/devices/cap/libcap.la \
spicelib/devices/bsim3soi_pd/libbsim3soipd.la \ spicelib/devices/bsim3soi_pd/libbsim3soipd.la \
spicelib/devices/bsim3soi_fd/libbsim3soifd.la \
spicelib/devices/cccs/libcccs.la \ spicelib/devices/cccs/libcccs.la \
spicelib/devices/ccvs/libccvs.la \ spicelib/devices/ccvs/libccvs.la \
spicelib/devices/ccvs/libccvs.la \ spicelib/devices/ccvs/libccvs.la \

2
src/frontend/subckt.c

@ -931,7 +931,7 @@ inp_numnodes(char c)
case 'j': return (3); case 'j': return (3);
case 'k': return (0); case 'k': return (0);
case 'l': return (2); case 'l': return (2);
case 'm': return (4);
case 'm': return (7);
case 'o': return (4); case 'o': return (4);
case 'q': return (4); case 'q': return (4);
case 'r': return (2); case 'r': return (2);

4
src/frontend/variable.c

@ -307,7 +307,7 @@ cp_setparse(wordlist *wl)
} }
vv = alloc(struct variable); vv = alloc(struct variable);
vv->va_next = NULL; vv->va_next = NULL;
ss = cp_unquote(wl->wl_word);
copyval = ss = cp_unquote(wl->wl_word);
td = ft_numparse(&ss, FALSE); td = ft_numparse(&ss, FALSE);
if (td) { if (td) {
vv->va_type = VT_REAL; vv->va_type = VT_REAL;
@ -316,7 +316,7 @@ cp_setparse(wordlist *wl)
vv->va_type = VT_STRING; vv->va_type = VT_STRING;
vv->va_string = copy(ss); vv->va_string = copy(ss);
} }
tfree(ss);/*DG: must free ss any way to avoid cp_unquote memory leak*/
tfree(copyval);/*DG: must free ss any way to avoid cp_unquote memory leak*/
if (listv) { if (listv) {
lv->va_next = vv; lv->va_next = vv;
lv = vv; lv = vv;

2
src/include/cktdefs.h

@ -6,7 +6,7 @@
#ifndef CKT #ifndef CKT
#define CKT "CKTdefs.h $Revision$ on $Date$ " #define CKT "CKTdefs.h $Revision$ on $Date$ "
#define MAXNUMDEVS 32 /* Max number of possible devices; */
#define MAXNUMDEVS 33 /* Max number of possible devices; */
extern int DEVmaxnum; /* Not sure if still used */ extern int DEVmaxnum; /* Not sure if still used */
#define MAXNUMDEVNODES 4 /* Max No. of nodes per device */ #define MAXNUMDEVNODES 4 /* Max No. of nodes per device */
/* Need to change for SOI devs ? */ /* Need to change for SOI devs ? */

1
src/spicelib/devices/Makefile.am

@ -10,6 +10,7 @@ SUBDIRS = \
bsim3v1 \ bsim3v1 \
bsim3v2 \ bsim3v2 \
bsim3soi_pd \ bsim3soi_pd \
bsim3soi_fd \
cap \ cap \
cccs \ cccs \
ccvs \ ccvs \

8
src/spicelib/devices/bsim3soi_pd/b3soipdacld.c

@ -17,11 +17,11 @@ Modified by Pin Su 99/9/27
int int
B3SOIPDacLoad (inModel, ckt) B3SOIPDacLoad (inModel, ckt)
GENmodel *inModel; GENmodel *inModel;
register CKTcircuit *ckt;
CKTcircuit *ckt;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
register int selfheat;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
int selfheat;
double xcggb, xcgdb, xcgsb, xcgeb, xcgT; double xcggb, xcgdb, xcgsb, xcgeb, xcgT;
double xcdgb, xcddb, xcdsb, xcdeb, xcdT; double xcdgb, xcddb, xcdsb, xcdeb, xcdT;
double xcsgb, xcsdb, xcssb, xcseb, xcsT; double xcsgb, xcsdb, xcssb, xcseb, xcsT;

4
src/spicelib/devices/bsim3soi_pd/b3soipdcheck.c

@ -21,8 +21,8 @@ Modified by Pin Su 00/3/1
int int
B3SOIPDcheckModel (model, here, ckt) B3SOIPDcheckModel (model, here, ckt)
register B3SOIPDmodel *model;
register B3SOIPDinstance *here;
B3SOIPDmodel *model;
B3SOIPDinstance *here;
CKTcircuit *ckt; CKTcircuit *ckt;
{ {
struct b3soipdSizeDependParam *pParam; struct b3soipdSizeDependParam *pParam;

6
src/spicelib/devices/bsim3soi_pd/b3soipdcvtest.c

@ -20,10 +20,10 @@ File: b3soipdcvtest.c 98/5/01
int int
B3SOIPDconvTest (inModel, ckt) B3SOIPDconvTest (inModel, ckt)
GENmodel *inModel; GENmodel *inModel;
register CKTcircuit *ckt;
CKTcircuit *ckt;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
double delvbd, delvbs, delvds, delvgd, delvgs, vbd, vbs, vds; double delvbd, delvbs, delvds, delvgd, delvgs, vbd, vbs, vds;
double cbd, cbhat, cbs, cd, cdhat, tol, vgd, vgdo, vgs; double cbd, cbhat, cbs, cd, cdhat, tol, vgd, vgdo, vgs;

8
src/spicelib/devices/bsim3soi_pd/b3soipdld.c

@ -94,11 +94,11 @@ B3SOIPDlimit (vnew, vold, limit, check)
int int
B3SOIPDload (inModel, ckt) B3SOIPDload (inModel, ckt)
GENmodel *inModel; GENmodel *inModel;
register CKTcircuit *ckt;
CKTcircuit *ckt;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
register int selfheat;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
int selfheat;
double SourceSatCurrent, DrainSatCurrent, Gmin; double SourceSatCurrent, DrainSatCurrent, Gmin;
double ag0, qgd, qgs, qgb, von, cbhat, VgstNVt, ExpVgst; double ag0, qgd, qgs, qgb, von, cbhat, VgstNVt, ExpVgst;

6
src/spicelib/devices/bsim3soi_pd/b3soipdnoi.c

@ -101,11 +101,11 @@ B3SOIPDnoise (mode, operation, inModel, ckt, data, OnDens)
int mode, operation; int mode, operation;
GENmodel *inModel; GENmodel *inModel;
CKTcircuit *ckt; CKTcircuit *ckt;
register Ndata *data;
Ndata *data;
double *OnDens; double *OnDens;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
struct b3soipdSizeDependParam *pParam; struct b3soipdSizeDependParam *pParam;
char name[N_MXVLNTH]; char name[N_MXVLNTH];
double tempOnoise; double tempOnoise;

8
src/spicelib/devices/bsim3soi_pd/b3soipdpzld.c

@ -16,11 +16,11 @@ File: b3soipzld.c 98/5/01
int int
B3SOIPDpzLoad (inModel, ckt, s) B3SOIPDpzLoad (inModel, ckt, s)
GENmodel *inModel; GENmodel *inModel;
register CKTcircuit *ckt;
register SPcomplex *s;
CKTcircuit *ckt;
SPcomplex *s;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
double xcggb, xcgdb, xcgsb, xcbgb, xcbdb, xcbsb, xcddb, xcssb, xcdgb; double xcggb, xcgdb, xcgsb, xcbgb, xcbdb, xcbsb, xcddb, xcssb, xcdgb;
double gdpr, gspr, gds, gbd, gbs, capbd, capbs, xcsgb, xcdsb, xcsdb; double gdpr, gspr, gds, gbd, gbs, capbd, capbs, xcsgb, xcdsb, xcsdb;
double cggb, cgdb, cgsb, cbgb, cbdb, cbsb, cddb, cdgb, cdsb; double cggb, cgdb, cgsb, cbgb, cbdb, cbsb, cddb, cdgb, cdsb;

10
src/spicelib/devices/bsim3soi_pd/b3soipdset.c

@ -28,13 +28,13 @@ Modified by Pin Su 00/3/1
int int
B3SOIPDsetup (matrix, inModel, ckt, states) B3SOIPDsetup (matrix, inModel, ckt, states)
register SMPmatrix *matrix;
register GENmodel *inModel;
register CKTcircuit *ckt;
SMPmatrix *matrix;
GENmodel *inModel;
CKTcircuit *ckt;
int *states; int *states;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
int error; int error;
CKTnode *tmp; CKTnode *tmp;

4
src/spicelib/devices/bsim3soi_pd/b3soipdtemp.c

@ -47,8 +47,8 @@ B3SOIPDtemp (inModel, ckt)
GENmodel *inModel; GENmodel *inModel;
CKTcircuit *ckt; CKTcircuit *ckt;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
struct b3soipdSizeDependParam *pSizeDependParamKnot, *pLastKnot, *pParam; struct b3soipdSizeDependParam *pSizeDependParamKnot, *pLastKnot, *pParam;
double tmp, tmp1, tmp2, Eg, Eg0, ni, T0, T1, T2, T3, T4, T5, T6, Ldrn, Wdrn; double tmp, tmp1, tmp2, Eg, Eg0, ni, T0, T1, T2, T3, T4, T5, T6, Ldrn, Wdrn;
double Temp, TempRatio, Inv_L, Inv_W, Inv_LW, Dw, Dl, Vtm0, Tnom; double Temp, TempRatio, Inv_L, Inv_W, Inv_LW, Dw, Dl, Vtm0, Tnom;

6
src/spicelib/devices/bsim3soi_pd/b3soipdtrunc.c

@ -17,11 +17,11 @@ File: b3soipdtrunc.c 98/5/01
int int
B3SOIPDtrunc (inModel, ckt, timeStep) B3SOIPDtrunc (inModel, ckt, timeStep)
GENmodel *inModel; GENmodel *inModel;
register CKTcircuit *ckt;
CKTcircuit *ckt;
double *timeStep; double *timeStep;
{ {
register B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
register B3SOIPDinstance *here;
B3SOIPDmodel *model = (B3SOIPDmodel *) inModel;
B3SOIPDinstance *here;
#ifdef STEPDEBUG #ifdef STEPDEBUG
double debugtemp; double debugtemp;

52
src/spicelib/devices/dev.c

@ -35,7 +35,7 @@
#include "dev.h" #include "dev.h"
#define DEVICES_USED "asrc bjt bsim1 bsim2 bsim3 bsim3v2 bsim3v1 bsim4 bsim3soipd cap cccs ccvs csw dio ind isrc jfet ltra mes mos1 mos2 mos3 mos6 res sw tra urc vccs vcvs vsrc"
#define DEVICES_USED "asrc bjt bsim1 bsim2 bsim3 bsim3v2 bsim3v1 bsim4 bsim3soipd bsim3soifd cap cccs ccvs csw dio ind isrc jfet ltra mes mos1 mos2 mos3 mos6 res sw tra urc vccs vcvs vsrc"
/* /*
* Analyses * Analyses
@ -62,6 +62,7 @@
#include "bsim3v2/bsim3v2itf.h" #include "bsim3v2/bsim3v2itf.h"
#include "bsim4/bsim4itf.h" #include "bsim4/bsim4itf.h"
#include "bsim3soi_pd/b3soipditf.h" #include "bsim3soi_pd/b3soipditf.h"
#include "bsim3soi_fd/b3soifditf.h"
#include "cap/capitf.h" #include "cap/capitf.h"
#include "cccs/cccsitf.h" #include "cccs/cccsitf.h"
#include "ccvs/ccvsitf.h" #include "ccvs/ccvsitf.h"
@ -86,7 +87,7 @@
#include "vsrc/vsrcitf.h" #include "vsrc/vsrcitf.h"
#define DEVNUM 32
#define DEVNUM 33
SPICEdev *DEVices[DEVNUM]; SPICEdev *DEVices[DEVNUM];
@ -105,29 +106,30 @@ spice_init_devices(void)
DEVices[ 7] = get_bsim3v2_info(); DEVices[ 7] = get_bsim3v2_info();
DEVices[ 8] = get_bsim4_info(); DEVices[ 8] = get_bsim4_info();
DEVices[ 9] = get_b3soipd_info(); DEVices[ 9] = get_b3soipd_info();
DEVices[10] = get_cap_info();
DEVices[11] = get_cccs_info();
DEVices[12] = get_ccvs_info();
DEVices[13] = get_csw_info();
DEVices[14] = get_dio_info();
DEVices[15] = get_ind_info();
DEVices[16] = get_mut_info();
DEVices[17] = get_isrc_info();
DEVices[18] = get_jfet_info();
DEVices[19] = get_jfet2_info();
DEVices[20] = get_ltra_info();
DEVices[21] = get_mes_info();
DEVices[22] = get_mos1_info();
DEVices[23] = get_mos2_info();
DEVices[24] = get_mos3_info();
DEVices[25] = get_mos6_info();
DEVices[26] = get_res_info();
DEVices[27] = get_sw_info();
DEVices[28] = get_tra_info();
DEVices[29] = get_vccs_info();
DEVices[30] = get_vcvs_info();
DEVices[31] = get_vsrc_info();
assert(32 == DEVNUM);
DEVices[10] = get_b3soifd_info();
DEVices[11] = get_cap_info();
DEVices[12] = get_cccs_info();
DEVices[13] = get_ccvs_info();
DEVices[14] = get_csw_info();
DEVices[15] = get_dio_info();
DEVices[16] = get_ind_info();
DEVices[17] = get_mut_info();
DEVices[18] = get_isrc_info();
DEVices[19] = get_jfet_info();
DEVices[20] = get_jfet2_info();
DEVices[21] = get_ltra_info();
DEVices[22] = get_mes_info();
DEVices[23] = get_mos1_info();
DEVices[24] = get_mos2_info();
DEVices[25] = get_mos3_info();
DEVices[26] = get_mos6_info();
DEVices[27] = get_res_info();
DEVices[28] = get_sw_info();
DEVices[29] = get_tra_info();
DEVices[30] = get_vccs_info();
DEVices[31] = get_vcvs_info();
DEVices[32] = get_vsrc_info();
assert(33 == DEVNUM);
} }

8
src/spicelib/parser/inpdomod.c

@ -163,6 +163,14 @@ char *INPdomodel(void *ckt, card * image, INPtables * tab)
("Device type B3SOIPD not available in this binary\n"); ("Device type B3SOIPD not available in this binary\n");
} }
break; break;
case 10:
type = INPtypelook("B3SOIFD");
if (type < 0) {
err =
INPmkTemp
("Device type B3SOIFD not available in this binary\n");
}
break;
case 14: case 14:
type = INPtypelook("BSIM4"); type = INPtypelook("BSIM4");
if (type < 0) { if (type < 0) {

2
tests/Makefile.am

@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
SUBDIRS = resistance filters polezero bsim3soipd
SUBDIRS = resistance filters polezero bsim3soipd bsim3soifd
TESTS = \ TESTS = \
diffpair.cir \ diffpair.cir \

5
tests/bsim3soipd/RampVg2.cir

@ -1,4 +1,4 @@
* BSIMSOI example
* BSIMSOI (PD) example
* *
* SOI, Ramp Vg * SOI, Ramp Vg
@ -12,7 +12,8 @@ m1 d g s e n1 w=10u l=0.25u debug=-1
.option gmin=1e-20 itl1=200 itl2=200 abstol=1e-9 .option gmin=1e-20 itl1=200 itl2=200 abstol=1e-9
.tran 1p 1.0ns .tran 1p 1.0ns
.print m1#Vbs, V(g)/10
.save @m1[Vbs], V(g)/10
.print tran v(g)/10
.include nmospd.mod .include nmospd.mod
.end .end

4
tests/bsim3soipd/inv2.cir

@ -1,4 +1,4 @@
* model = BSIMSOI
* model = BSIMSOI (PD)
* *
* *
* SOI Inverter - floating body * SOI Inverter - floating body
@ -12,6 +12,6 @@ m2 out in ss e n1 w=10u l=0.25u
.option itl1=500 gmin=1e-25 .option itl1=500 gmin=1e-25
.dc vin 0 2.5 0.01 .dc vin 0 2.5 0.01
.print v(in), v(out)
.print dc v(in), v(out)
.include nmospd.mod .include nmospd.mod
.include pmospd.mod .include pmospd.mod

7
tests/bsim3soipd/ring51.cir

@ -1,4 +1,4 @@
* 51 stage Ring-Osc.
* 51 stage Ring-Osc. (PD)
vin in out 2 pulse 2 0 0.1n 5n 1 1 1 vin in out 2 pulse 2 0 0.1n 5n 1 1 1
vdd dd 0 dc 0 pulse 0 2 0 1n 1 1 1 vdd dd 0 dc 0 pulse 0 2 0 1n 1 1 1
@ -14,9 +14,12 @@ cout buf ss 1pF
xdum ss dum xdum ss dum
.option itl1=500 gmin=1e-15 itl4=10 .option itl1=500 gmin=1e-15 itl4=10
*.dc vdd 0 2 0.01
.dc vdd 0 2 0.01
.tran 0.2n 50n .tran 0.2n 50n
.print dc v(out)
.print tran v(out)
.include nmospd.mod .include nmospd.mod
.include pmospd.mod .include pmospd.mod
.include lib.h .include lib.h

4
tests/bsim3soipd/t3.cir

@ -1,4 +1,4 @@
*model = BSIMSOI
*model = BSIMSOI (PD)
*Berkeley Spice Compatibility *Berkeley Spice Compatibility
* *
* SOI NMOSFET, floating body simulation * SOI NMOSFET, floating body simulation
@ -13,6 +13,6 @@ m1 d g s e n1 w=10u l=0.25u
.option gmin=1e-25 itl1=500 .option gmin=1e-25 itl1=500
.dc vd 0 3 0.01 vg 0.5 3 0.5 .dc vd 0 3 0.01 vg 0.5 3 0.5
.print v(g), i(vs)
.print dc v(g), i(vs)
.include nmospd.mod .include nmospd.mod

7
tests/bsim3soipd/t4.cir

@ -1,4 +1,4 @@
*model = BSIMSOI
*model = BSIMSOI (PD)
*Berkeley Spice Compatibility *Berkeley Spice Compatibility
* *
* SOI NMOSFET, tied body simulation * SOI NMOSFET, tied body simulation
@ -13,7 +13,6 @@ m1 d g s e b n1 w=10u l=0.25u
.option gmin=1e-25 itl1=500 .option gmin=1e-25 itl1=500
.dc vg 0 1.5 0.01 vb -0.3 0.5 0.1 .dc vg 0 1.5 0.01 vb -0.3 0.5 0.1
.include nmosfd.mod
.print dc i(vs)
.include nmospd.mod
* For PD, the command '.include nmosfd.mod ' should
* be replaced with '.include nmospd.mod'.

6
tests/bsim3soipd/t5.cir

@ -1,4 +1,4 @@
*model = BSIMSOI
*model = BSIMSOI (PD)
*Berkeley Spice Compatibility *Berkeley Spice Compatibility
* *
* SOI NMOSFET, floating body simulation * SOI NMOSFET, floating body simulation
@ -12,7 +12,5 @@ m1 d g s e n1 w=10u l=0.25u
.option gmin=1e-25 itl1=500 .option gmin=1e-25 itl1=500
.dc vg 0 1.5 0.01 ve -4 4 1 .dc vg 0 1.5 0.01 ve -4 4 1
.print dc i(vs)
.include nmospd.mod .include nmospd.mod
* For PD, the command '.include nmosfd.mod ' should
* be replaced with '.include nmospd.mod'.
Loading…
Cancel
Save