repair DEVICES file

This commit is contained in:
gdiso 2007-06-24 00:56:15 +00:00
parent 85a73411e6
commit a5e3ffcf7e
1 changed files with 776 additions and 198 deletions

974
DEVICES
View File

@ -1,198 +1,776 @@
src/frontend/device.c: ft_sim->devices[dg->dev_type_no]->name,
src/frontend/device.c: ft_sim->devices[dg->dev_type_no]->description);
src/frontend/device.c: if (ft_sim->devices[dg->dev_type_no]->numModelParms) {
src/frontend/device.c: } else if (ft_sim->devices[dg->dev_type_no]->numModelParms) {
src/frontend/device.c: ft_sim->devices[dg->dev_type_no]->name,
src/frontend/device.c: ft_sim->devices[dg->dev_type_no]->description);
src/frontend/device.c: xcount = *ft_sim->devices[dg->dev_type_no]->numInstanceParms;
src/frontend/device.c: plist = ft_sim->devices[dg->dev_type_no]->instanceParms;
src/frontend/device.c: xcount = *ft_sim->devices[dg->dev_type_no]->numModelParms;
src/frontend/device.c: plist = ft_sim->devices[dg->dev_type_no]->modelParms;
src/frontend/device.c: xcount = *ft_sim->devices[dg->dev_type_no]->numInstanceParms;
src/frontend/device.c: plist = ft_sim->devices[dg->dev_type_no]->instanceParms;
src/frontend/device.c: xcount = *ft_sim->devices[dg->dev_type_no]->numModelParms;
src/frontend/device.c: plist = ft_sim->devices[dg->dev_type_no]->modelParms;
src/frontend/device.c: (*ft_sim->askInstanceQuest)(ft_curckt->ci_ckt, dg->instance,
src/frontend/device.c: (*ft_sim->askModelQuest)(ft_curckt->ci_ckt, dg->model,
src/frontend/gens.c: && (ft_sim->devices[dg->dev_type_no]->flags
src/frontend/misccoms.c: (void) sprintf(buf, SYSTEM_MAIL, ft_sim->simulator,
src/frontend/misccoms.c: ft_sim->version, Bug_Addr);
src/frontend/misccoms.c: fprintf(cp_out, "** %s-%s : %s\n", ft_sim->simulator,
src/frontend/misccoms.c: ft_sim->version, ft_sim->description);
src/frontend/misccoms.c: fprintf(cp_out, "** %s-%s\n", ft_sim->simulator,
src/frontend/misccoms.c: ft_sim->version);
src/frontend/misccoms.c: fprintf(cp_out, "** %s-%s : %s\n", ft_sim->simulator,
src/frontend/misccoms.c: ft_sim->version, ft_sim->description);
src/frontend/misccoms.c: } else if (!eq(ft_sim->version, s)) {
src/frontend/misccoms.c: wl->wl_word, ft_sim->version);
src/frontend/misccoms.c: printf("%s-%s done\n", ft_sim->simulator, ft_sim->version);
src/frontend/outitf.c: fprintf(run->fp, "Command: version %s\n", ft_sim->version);
src/frontend/shyu.c: err=(*(ft_sim->deleteTask))(ft_curckt->ci_ckt,
src/frontend/shyu.c: err = (*(ft_sim->newTask))(ft_curckt->ci_ckt,
src/frontend/shyu.c: for(j=0;j<ft_sim->numAnalyses;j++) {
src/frontend/shyu.c: if(strcmp(ft_sim->analyses[j]->name,"options")==0) {
src/frontend/shyu.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"options",
src/frontend/shyu.c: for(j=0;j<ft_sim->numAnalyses;j++) {
src/frontend/shyu.c: if(strcmp(ft_sim->analyses[j]->name,"SEN")==0) {
src/frontend/shyu.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"sense",
src/frontend/shyu.c: for(j=0;j<ft_sim->numAnalyses;j++) {
src/frontend/shyu.c: if(strcmp(ft_sim->analyses[j]->name,"AC")==0) {
src/frontend/shyu.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"acan",
src/frontend/shyu.c: for(i=0;i<ft_sim->numAnalyses;i++) {
src/frontend/shyu.c: if(strcmp(ft_sim->analyses[i]->name,"DCOP")==0) {
src/frontend/shyu.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"dcop",
src/frontend/shyu.c: for(i=0;i<ft_sim->numAnalyses;i++) {
src/frontend/shyu.c: if(strcmp(ft_sim->analyses[i]->name,"DCTransfer")==0) {
src/frontend/shyu.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"DCtransfer",
src/frontend/shyu.c: for(j=0;j<ft_sim->numAnalyses;j++) {
src/frontend/shyu.c: if(strcmp(ft_sim->analyses[j]->name,"TRAN")==0) {
src/frontend/shyu.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"tranan",
src/frontend/shyu.c: for(i=0;i<ft_sim->analyses[save]->numParms;i++) {
src/frontend/shyu.c: ft_sim->analyses[save]->analysisParms[i].
src/frontend/shyu.c: if(ft_sim->analyses[save]->analysisParms[i].
src/frontend/shyu.c: error = (*(ft_sim->setAnalysisParm))(ckt,
src/frontend/shyu.c: senseJob, ft_sim->analyses[save]->
src/frontend/shyu.c: parm = INPgetValue(ckt,&line,ft_sim->
src/frontend/shyu.c: error = (*(ft_sim->setAnalysisParm))(ckt,
src/frontend/shyu.c: senseJob, ft_sim->analyses[save]->
src/frontend/shyu.c: if(i==ft_sim->analyses[save]->numParms) {
src/frontend/shyu.c: if((err = (*(ft_sim->doAnalyses))(ckt, 1, ft_curckt->ci_curTask))!=OK){
src/frontend/spiceif.c: err = (*(ft_sim->newCircuit))(&ckt);
src/frontend/spiceif.c: (*(ft_sim->newTask))(ckt,(void**)&(ft_curckt->ci_defTask),taskUid);
src/frontend/spiceif.c: (*(ft_sim->newTask))(ckt,(void**)&(ft_curckt->ci_defTask),taskUid,
src/frontend/spiceif.c: for(j=0;j<ft_sim->numAnalyses;j++) {
src/frontend/spiceif.c: if(strcmp(ft_sim->analyses[j]->name,"options")==0) {
src/frontend/spiceif.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,optUid,
src/frontend/spiceif.c: (INPtables *) *tab,ft_curckt->ci_defTask, ft_sim->nodeParms,
src/frontend/spiceif.c: ft_sim->numNodeParms);
src/frontend/spiceif.c: err=(*(ft_sim->deleteTask))(ft_curckt->ci_ckt,
src/frontend/spiceif.c: err = (*(ft_sim->newTask))(ft_curckt->ci_ckt,
src/frontend/spiceif.c: err = (*(ft_sim->newTask))(ft_curckt->ci_ckt,
src/frontend/spiceif.c: for(j=0;j<ft_sim->numAnalyses;j++) {
src/frontend/spiceif.c: if(strcmp(ft_sim->analyses[j]->name,"options")==0) {
src/frontend/spiceif.c: err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,optUid,
src/frontend/spiceif.c: if ((err = (*(ft_sim->doAnalyses))(ckt, 1, ft_curckt->ci_curTask))!=OK){
src/frontend/spiceif.c: if ((err = (*(ft_sim->doAnalyses))(ckt, 0, ft_curckt->ci_curTask))!=OK){
src/frontend/spiceif.c: for(i=0;i<ft_sim->numAnalyses;i++) {
src/frontend/spiceif.c: if(strcmp(ft_sim->analyses[i]->name,"options")==0) {
src/frontend/spiceif.c: for (i = 0; i < ft_sim->analyses[which]->numParms; i++)
src/frontend/spiceif.c: if (eq(ft_sim->analyses[which]->analysisParms[i].keyword, name) &&
src/frontend/spiceif.c: (ft_sim->analyses[which]->analysisParms[i].dataType & IF_SET))
src/frontend/spiceif.c: if (i == ft_sim->analyses[which]->numParms) {
src/frontend/spiceif.c: switch (ft_sim->analyses[which]->analysisParms[i].dataType & IF_VARTYPES) {
src/frontend/spiceif.c: ft_sim->analyses[which]->analysisParms[i].dataType);
src/frontend/spiceif.c: if ((err = (*(ft_sim->setAnalysisParm))(cc, (void *)ft_curckt->ci_curOpt,
src/frontend/spiceif.c: ft_sim->analyses[which]->analysisParms[i].id, &pval,
src/frontend/spiceif.c: if ((err = (*(ft_sim->setAnalysisParm))(cc, (void *)ft_curckt->ci_defOpt,
src/frontend/spiceif.c: ft_sim->analyses[which]->analysisParms[i].id, &pval,
src/frontend/spiceif.c: switch(ft_sim->analyses[which]->analysisParms[i].dataType & IF_VARTYPES) {
src/frontend/spiceif.c: (*(ft_sim->deleteCircuit))(cc);
src/frontend/spiceif.c: device = ft_sim->devices[typecode];
src/frontend/spiceif.c: device = ft_sim->devices[typecode];
src/frontend/spiceif.c: device = ft_sim->devices[typecode];
src/frontend/spiceif.c: err = (*(ft_sim->askInstanceQuest))((void *)ckt, (void *)dev,
src/frontend/spiceif.c: err = (*(ft_sim->askModelQuest))((void*)ckt, (void *) mod,
src/frontend/spiceif.c: err = (*(ft_sim->setInstanceParm))((void *)ckt, (void *)dev,
src/frontend/spiceif.c: err = (*(ft_sim->setModelParm))((void*)ckt, (void *) mod,
src/frontend/spiceif.c: err = (*(ft_sim->findInstance))((void *)ck,&type,devptr,name,NULL,NULL);
src/frontend/spiceif.c: err = (*(ft_sim->findModel))((void *)ck,&type,modptr,name);
src/frontend/spiceif.c: for(i=0;i<ft_sim->analyses[which]->numParms;i++) {
src/frontend/spiceif.c: if(strcmp(ft_sim->analyses[which]->analysisParms[i].keyword,name)==0) {
src/frontend/spiceif.c: return( (*(ft_sim->askAnalysisQuest))(ckt,anal,
src/frontend/spiceif.c: ft_sim->analyses[which]->analysisParms[i].id,parm,
src/frontend/spiceif.c: for(i=0;i<ft_sim->numAnalyses;i++) {
src/frontend/spiceif.c: if(strcmp(ft_sim->analyses[i]->name,"TRAN")==0){
src/frontend/spiceif.c: err =(*(ft_sim->findAnalysis))(ci->ci_ckt,&which, &anal,tranUid,
src/frontend/spiceif.c: for(i=0;i<ft_sim->numAnalyses;i++) {
src/frontend/spiceif.c: if(strcmp(ft_sim->analyses[i]->name,"options")==0) {
src/frontend/spiceif.c: for (i = 0; i < ft_sim->analyses[which]->numParms; i++)
src/frontend/spiceif.c: if (eq(ft_sim->analyses[which]->analysisParms[i].keyword, name))
src/frontend/spiceif.c: if (i == ft_sim->analyses[which]->numParms)
src/frontend/spiceif.c: if ((*(ft_sim->askAnalysisQuest))(ckt, ft_curckt->ci_curTask,
src/frontend/spiceif.c: ft_sim->analyses[which]->analysisParms[i].id, &parm,
src/frontend/spiceif.c: return (parmtovar(&parm, &(ft_sim->analyses[which]->analysisParms[i])));
src/frontend/spiceif.c: for (i = 0, vars = v = NULL; i<ft_sim->analyses[which]->numParms; i++) {
src/frontend/spiceif.c: if(!(ft_sim->analyses[which]->analysisParms[i].dataType&IF_ASK)) {
src/frontend/spiceif.c: if ((*(ft_sim->askAnalysisQuest))(ckt, ft_curckt->ci_curTask,
src/frontend/spiceif.c: ft_sim->analyses[which]->analysisParms[i].id,
src/frontend/spiceif.c: &(ft_sim->analyses[which]->analysisParms[i]));
src/frontend/spiceif.c: &(ft_sim->analyses[which]->analysisParms[i]));
src/frontend/where.c: msg = (*ft_sim->nonconvErr)((void *) (ft_curckt->ci_ckt), 0);
src/frontend/where.c: msg = (*ft_sim->nonconvErr)((void *) (ft_curckt->ci_ckt), 0);
src/include/inpmacs.h:error=(*(ft_sim->func))args;\
src/main.c: cp_program = ft_sim->simulator;
src/spicelib/devices/dev.c: * ft_sim->numDevices = num_devices();
src/spicelib/devices/dev.c: ft_sim->numDevices = DEVNUM;
src/spicelib/devices/dev.c: ft_sim->devices = devices_ptr();
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "NOISE") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "OP") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "DISTO") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "AC") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "PZ") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "DC") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "TF") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "TRAN") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "SENS") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->numAnalyses; i++) {
src/spicelib/parser/inp2dot.c: if (strcmp(ft_sim->analyses[i]->name, "SENS2") == 0) {
src/spicelib/parser/inp2dot.c: for (i = 0; i < ft_sim->analyses[which]->numParms; i++) {
src/spicelib/parser/inp2dot.c: ft_sim->analyses[which]->analysisParms[i].keyword)) {
src/spicelib/parser/inp2dot.c: if (ft_sim->analyses[which]->analysisParms[i].dataType & IF_FLAG) {
src/spicelib/parser/inp2dot.c: (*(ft_sim->setAnalysisParm)) (ckt, foo,
src/spicelib/parser/inp2dot.c: ft_sim->analyses[which]->analysisParms[i].id,
src/spicelib/parser/inp2dot.c: ft_sim->analyses[which]->analysisParms[i].dataType, tab);
src/spicelib/parser/inp2dot.c: (*(ft_sim->setAnalysisParm)) (ckt, foo,
src/spicelib/parser/inp2dot.c: ft_sim->
src/spicelib/parser/inp2dot.c: if (i == ft_sim->analyses[which]->numParms) {
src/spicelib/parser/inpapnam.c: if (parmname && ft_sim->analyses[type]) {
src/spicelib/parser/inpapnam.c: for (i = 0; i < ft_sim->analyses[type]->numParms; i++)
src/spicelib/parser/inpapnam.c: ft_sim->analyses[type]->analysisParms[i].keyword) ==
src/spicelib/parser/inpapnam.c: return (*(ft_sim->setAnalysisParm)) (ckt, analPtr,
src/spicelib/parser/inpapnam.c: ft_sim->
src/spicelib/parser/inpdoopt.c: for(i=0;i<ft_sim->numAnalyses;i++) {
src/spicelib/parser/inpdoopt.c: prm = ft_sim->analyses[i];
src/spicelib/parser/inpdoopt.c: error = (*(ft_sim->setAnalysisParm))(ckt,anal,
src/spicelib/parser/inpdpar.c: for (i = 0; i < (*(*(ft_sim->devices)[dev]).numInstanceParms); i++) {
src/spicelib/parser/inpdpar.c: ((*(ft_sim->devices)[dev]).instanceParms[i].
src/spicelib/parser/inpdpar.c: ((*(ft_sim->devices)[dev]).
src/spicelib/parser/inpdpar.c: error = (*(ft_sim->setInstanceParm)) (ckt, fast,
src/spicelib/parser/inpdpar.c: (*(ft_sim->devices)
src/spicelib/parser/inpdpar.c: if (i == (*(*(ft_sim->devices)[dev]).numInstanceParms)) {
src/spicelib/parser/inpgmod.c: error = (*(ft_sim->newModel)) (ckt, (modtmp)->INPmodType,
src/spicelib/parser/inpgmod.c: for (j = 0; j < (* (*(ft_sim->devices)[(modtmp)->INPmodType]).numModelParms); j++) {
src/spicelib/parser/inpgmod.c: if (strcmp("cpl", ((*(ft_sim->devices) [ (modtmp)->INPmodType ]).modelParms[j].keyword)) == 0) {
src/spicelib/parser/inpgmod.c: if (strcmp(parm,((*(ft_sim->devices)[(modtmp)->INPmodType]).modelParms[j].keyword)) == 0) {
src/spicelib/parser/inpgmod.c: val = INPgetValue(ckt, &line, ((* (ft_sim->devices)[(modtmp)->INPmodType]).modelParms[j].dataType), tab);
src/spicelib/parser/inpgmod.c: error = (*(ft_sim->setModelParm)) (ckt, ((modtmp)->INPmodfast),
src/spicelib/parser/inpgmod.c: (* (ft_sim->devices)[(modtmp)->INPmodType]).modelParms[j].id,
src/spicelib/parser/inpgmod.c: (*(ft_sim->devices)
src/spicelib/parser/inpgtitl.c: error = (*(ft_sim->newCircuit)) (ckt);
src/spicelib/parser/inppname.c: for (i = 0; i < (*(*(ft_sim->devices)[dev]).numInstanceParms); i++) {
src/spicelib/parser/inppname.c: ((*(ft_sim->devices)[dev]).instanceParms[i].keyword)) ==
src/spicelib/parser/inppname.c: (*(ft_sim->setInstanceParm)) (ckt, fast,
src/spicelib/parser/inppname.c: (*(ft_sim->devices)[dev]).
src/spicelib/parser/inppname.c: if (i == (*(*(ft_sim->devices)[dev]).numInstanceParms)) {
src/spicelib/parser/inpptree.c: for (i = 0; i < ft_sim->numSpecSigs; i++)
src/spicelib/parser/inpptree.c: if (!strcmp(ft_sim->specSigs[i], buf))
src/spicelib/parser/inpptree.c: if (i < ft_sim->numSpecSigs) {
src/spicelib/parser/inpsymt.c: error = (*(ft_sim->newNode)) (ckt, &t->t_node, *token);
src/spicelib/parser/inpsymt.c: error = (*(ft_sim->groundNode)) (ckt, &t->t_node, *token);
src/spicelib/parser/inptyplk.c: for (i = 0; i < ft_sim->numDevices; i++) {
src/spicelib/parser/inptyplk.c: printf("In INPtypelook, checking model type = %s against existing model = %s, . . .\n", type, (*(ft_sim->devices)[i]).name );
src/spicelib/parser/inptyplk.c: if ((ft_sim->devices)[i] && strcmp(type, (*(ft_sim->devices)[i]).name) == 0) {
src/xspice/mif/mifgetmod.c: error = (*(ft_sim->newModel))( ckt,(modtmp)->INPmodType,
src/xspice/mif/mifgetmod.c: for(j=0;j<*((*(ft_sim->devices)[(modtmp)->INPmodType]).numModelParms); j++) {
src/xspice/mif/mifgetmod.c: if (strcmp(parm,((*(ft_sim->devices) [ (modtmp)->
src/xspice/mif/mifgetmod.c: ((*(ft_sim->devices)[(modtmp)->
src/xspice/mif/mifgetmod.c: error = (*(ft_sim->setModelParm))(ckt,
src/xspice/mif/mifgetmod.c: (*(ft_sim->devices)[(modtmp)->INPmodType ]).
src/xspice/mif/mifgetmod.c: if(j >= *((*(ft_sim->devices)[(modtmp)->INPmodType]).numModelParms))
DEVICES
---------------------------------------------------------------------------
This file contains the status of devices available in ngspice. This file
will be updated every time the device specific code is altered or changed.
This file is useful in writing ngspice documentation.
***************************************************************************
************************* Linear devices ********************************
***************************************************************************
CAP - Capacitor
Initial Release.
Ver: N/A
Class: C
Level: 1 (and only)
Dir: devices/cap
Status:
Enhancements over the original model:
- Parallel Multiplier
- Temperature difference from circuit temperature
- Preliminary technology scaling support
- Model capacitance
- Cj calculation based on relative dielectric constant
and insulator thickness
IND - Inductor
Initial Release.
Ver: N/A
Class: L
Level: 1 (and only)
Dir: devices/ind
Status:
Enhancements over the original model:
- Parallel Multiplier
- Temperature difference from circuit temperature
- Preliminary technology scaling support
- Model inductance
- Inductance calculation for toroids or solenoids
on the model line.
RES - Simple linear resistor
Initial Release.
Ver: N/A
Class: R
Level: 1 (and only)
Dir: devices/res
Status:
Enhancements over the original model:
- Parallel Multiplier
- Different value for ac analysis
- Temperature difference from circuit temperature
- Noiseless resistor
- Flicker noise
- Preliminary technology scaling support
***************************************************************************
********************* Distributed elements ********************************
***************************************************************************
CPL - Simple Coupled Multiconductor Lines (Kspice)
Initial Release.
Ver: N/A
Class: P
Level: 1 (and only)
Dir: devices/cpl
Status:
This model comes from swec and kspice. It is not documented, if
you have kspice docs, can you write a short description
of its use ?
- Does not implement parallel code switches
- Probably a lot of memory leaks
Enhancements over the original model:
- Better integrated into ngspice adding CPLask, CPLmAsk and
CPLunsetup functions
LTRA - Lossy Transmission line
Initial Release.
Ver: N/A
Class: O
Level: 1 (and only)
Dir: devices/ltra
Status:
Original spice model.
- Does not implement parallel code switches
TRA - Transmission line
Initial Release.
Ver: N/A
Class: T
Level: 1 (and only)
Dir: devices/tra
Status:
Original spice model.
- Does not implement parallel code switches
TXL - Simple Lossy Transmission Line (Kspice)
Initial Release.
Ver: N/A
Class: Y
Level: 1 (and only)
Dir: devices/txl
Status:
This model comes from kspice. It is not documented, if
you have kspice docs, can you write a short description
of its use ?
There is some code left out from compilation:
TXLaccept and TXLfindBr. Any ideas ?
- Does not implement parallel code switches
URC - Uniform distributed RC line
Initial Release.
Ver: N/A
Class: U
Level: 1 (and only)
Dir: devices/urc
Status:
Original spice model.
- Does not implement parallel code switches
***************************************************************************
**************************** V/I Sources *****************************
***************************************************************************
ASRC - Arbitrary Source
Initial Release.
Ver: N/A
Class: B
Level: 1 (and only)
Dir: devices/asrc
Status:
The arbitrary source code has been corrected with the patch
available on the Internet. There is still an issue to fix, the
current of current-controlled generators.
CCCS - Current Controlled Current Source
Initial Release.
Ver: N/A
Class: F
Level: 1 (and only)
Dir: devices/cccs
Status:
Original spice model.
CCVS - Current Controlled Voltage Source
Initial Release.
Ver: N/A
Class: H
Level: 1 (and only)
Dir: devices/ccvs
Status:
Original spice model.
ISRC - Independent Current Source
Initial Release.
Ver: N/A
Class: I
Level: 1 (and only)
Dir: devices/isrc
Status:
This is the original spice device improved by Alan Gillespie
with the following features:
- Source ramping
- Check for non-monotonic series in PWL
VCCS - Voltage Controlled Current Source
Initial Release.
Ver: N/A
Class: G
Level: 1 (and only)
Dir: devices/vccs
Status:
Original spice model.
VCVS - Voltage Controlled Voltage Source
Initial Release.
Ver: N/A
Class: E
Level: 1 (and only)
Dir: devices/vcvs
Status:
Original spice model.
VSRC - Independent Voltage Source
Initial Release.
Ver: N/A
Class: V
Level: 1 (and only)
Dir: devices/vsrc
Status:
This is the original spice device improved by Alan Gillespie
with the following features:
- Source ramping
- Check for non-monotonic series in PWL
***************************************************************************
**************************** Switches ****************************
***************************************************************************
CSW - Current controlled switch
Initial Release.
Ver: N/A
Class: W
Level: 1 (and only)
Dir: devices/csw
Status:
This model comes from Jon Engelbert
SW - Voltage controlled switch
Initial release
Ver: N/A
Class: S
Level: 1 (and only)
Dir: devices/sw
Status:
This model comes from Jon Engelbert
***************************************************************************
**************************** Diodes ****************************
***************************************************************************
DIO - Junction Diode
Initial Release.
Ver: N/A
Class: D
Level: 1 (and only)
Dir: devices/dio
Status:
Enhancements over the original model:
- Parallel Multiplier
- Temperature difference from circuit temperature
- Forward and reverse knee currents
- Periphery (sidewall) effects
- Temperature correction of some parameters
***************************************************************************
************************* Bipolar Devices *************************
***************************************************************************
BJT - Bipolar Junction Transistor
Initial Release.
Ver: N/A
Class: Q
Level: 1
Dir: devices/bjt
Status:
Enhancements over the original model:
- Parallel Multiplier
- Temperature difference from circuit temperature
- Different area parameters for collector, base and emitter
BJT2 - Bipolar Junction Transistor
Initial Release.
Ver: N/A
Class: Q
Level: 2
Dir: devices/bjt2
Status:
This is the BJT model written by Alan Gillespie to support lateral
devices. The model has been hacked by Dietmar Warning fixing some bugs
and adding some features (temp. correction on resistors).
Enhancements over the original model:
- Temperature correction on rc,rb,re
- Parallel Multiplier
- Temperature difference from circuit temperature
- Different area parameters for collector, base and emitter
VBIC - Bipolar Junction Transistor
Initial Release.
Ver: N/A
Class: Q
Level: 4
Dir: devices/vbic
Status:
This is the Vertical Bipolar InterCompany model.
The author of VBIC is Colin McAndrew mcandrew@ieee.org
Spice3 Implementation: Dietmar Warning DAnalyse GmbH
warning@danalyse.de
Web Site:
http://www.designers-guide.com/VBIC/index.html
Notes: This is the 4 terminals model, without excess phase
and thermal network.
***************************************************************************
***************************** FET Devices ***************************
***************************************************************************
JFET - Junction Field Effect transistor
Initial Release.
Ver: N/A
Class: J
Level: 1
Dir: devices/jfet
Status:
This is the original spice JFET model.
Enhancements over the original model:
- Alan Gillespie's modified diode model
- Parallel multiplier
- Instance temperature as difference for circuit temperature
JFET2 - Junction Field Effect Transistor (PS model)
Initial Release.
Ver: N/A
Class: J
Level: 2
Dir: devices/jfet2
Status:
This is the Parker Skellern model for MESFETs.
Web Site:
http://www.elec.mq.edu.au/cnerf/models/psmodel/
Enhancements over the original model:
- Parallel multiplier
- Instance temperature as difference for circuit temperature
***************************************************************************
*************************** HFET devices ***************************
***************************************************************************
Added code from macspice3f4 HFET1&2 and MESA model
Original note:
Added device calls for Mesfet models and HFET models
provided by Trond Ytterdal as of Nov 98
HFET1 - Heterostructure Field Effect Transistor Level 1
Initial Release.
Ver: N/A
Class: Z
Level: 5
Dir: devices/hfet1
Status:
This is the Heterostructure Field Effect Transistor model from:
K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal
"Semiconductor Device Modeling in VLSI",
1993, Prentice Hall, New Jersey
Enhancements over the original model:
- Parallel multiplier
- Instance temperature as difference for circuit temperature
- Added pole-zero analysis
HFET2 - Heterostructure Field Effect Transistor Level 2
Initial Release.
Ver: N/A
Class: Z
Level: 6
Dir: devices/hfet2
Status:
Simplified version of hfet1
Enhancements over the original model:
- Parallel multiplier
- Instance temperature as difference for circuit temperature
- Added pole-zero analysis
***************************************************************************
*************************** MES devices ***************************
***************************************************************************
MES - MESFET model
Initial Release.
Ver: N/A
Class: Z
Level: 1
Dir: devices/mes
Status:
This is the original spice3 MESFET model (Statz).
Enhancements over the original model:
- Parallel multiplier
- Alan Gillespie junction diodes implementation
Added code from macspice3f4 HFET1&2 and MESA model
Original note:
Added device calls for Mesfet models and HFET models
provided by Trond Ytterdal as of Nov 98
MESA - MESFET model (MacSpice3f4)
Initial Release.
Ver: N/A
Class: Z
Level: 2,3,4
Dir: devices/mesa
Status:
This is a multilevel model. It contains code for mesa levels
2,3 and 4
Enhancements over the original model:
- Parallel multiplier
- Instance temperature as difference from circuit temperature
- Added pole-zero analysis
***************************************************************************
**************************** MOS devices ****************************
***************************************************************************
MOS1 - Level 1 MOS model
Initial Release.
Ver: N/A
Class: M
Level: 1
Dir: devices/mos1
Status:
This is the so-called Schichman-Hodges model.
Enhancements over the original model:
- Parallel multiplier
- Temperature difference from circuit temperature
MOS2 - Level 2 MOS model
Initial Release.
Ver: N/A
Class: M
Level: 2
Dir: devices/mos2
Status:
This is the so-called Grove-Frohman model.
Enhancements over the original model:
- Parallel multiplier
- Temperature difference from circuit temperature
MOS3 - Level 3 MOS model
Initial Release.
Ver: N/A
Class: M
Level: 3
Dir: devices/mos3
Status:
Enhancements over the original model:
- Parallel multiplier
- Temperature difference from circuit temperature
MOS6 - Level 6 MOS model
Initial Release.
Ver: N/A
Class: M
Level: 6
Dir: devices/mos6
Status:
Enhancements over the original model:
- Parallel multiplier
- Temperature difference from circuit temperature
MOS9 - Level 9 MOS model
Initial Release.
Ver: N/A
Class: M
Level: 9
Dir: devices/mos9
Status:
Enhancements over the original model:
- Temperature difference from circuit temperature
BSIM1 - BSIM model level 1
Initial Release.
Ver: N/A
Class: M
Level: 4
Dir: devices/bsim1
Status:
Enhancements over the original model:
- Parallel multiplier
- Noise analysis
BUGS:
Distortion analysis probably does not
work with "parallel" devices. Equations
are too intricate to deal with. Any one
has ideas on the subject ?
BSIM2 - BSIM model level 2
Initial Release.
Ver: N/A
Class: M
Level: 5
Dir: devices/bsim2
Status:
Enhancements over the original model:
- Parallel multiplier
- Noise analysis
BSIM3v0 - BSIM model level 3
Initial Release.
Ver: 3.0
Class: M
Level: 52
Dir: devices/bsim3v0
Status: TO BE TESTED AND IMPROVED
BSIM3v0 - BSIM model level 3
Initial Release.
Ver: 3.0
Class: M
Level: 51
Dir: devices/bsim3v1a
Status: TO BE TESTED AND IMPROVED
This is the BSIM3v3.0 model modified by Alan Gillespie.
BSIM3v1 - BSIM model level 3
Initial Release.
Ver: 3.1
Class: M
Level: 50
Dir: devices/bsim3v1
Status: TO BE TESTED
BSIM3v1 - BSIM model level 3
Initial Release.
Ver: 3.1
Class: M
Level: 49
Dir: devices/bsim3v1s
Status: TO BE TESTED AND IMPROVED
This is the BSIM3v3.1 model modified by Serban Popescu.
This is level 49 model. It is an implementation that supports
"HDIF" and "M" parameters.
BSIM3 - BSIM model level 3
Initial Release.
Ver: 3.2.4
Class: M
Level: 8
Dir: devices/bsim3
Status: TO BE TESTED
This is the BSIM3v3.2.4 model from Berkeley device group.
You can find some test netlists with results for this model
on its web site.
Web site:
http://www-device.eecs.berkeley.edu/~bsim3
Enhancements over the original model:
- Parallel Multiplier
- ACM Area Calculation Method
- Multirevision code (supports all 3v3.2 minor revisions)
- NodesetFix
BSIM4 - BSIM model level 4 (0.18 um)
Initial Release.
Ver: 4.5.0
Class: M
Level: 14
Dir: devices/bsim4
Status: TO BE TESTED
This is the BSIM4 device model from Berkeley Device Group.
Test are available on its web site.
Web site:
http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html
Updated to 4.5.0 YET UNTESTED.
HiSIM - Hiroshima-university STARC IGFET Model
Initial Release.
Ver: 1.2.0
Class: M
Level: 64
Dir: devices/hisim
Status:
This is the HiSIM model available from Hiroshima University
(Ultra-Small Device Engineering Laboratory)
Web site:
http://home.hiroshima-u.ac.jp/usdl/HiSIM.shtml
http://www.starc.or.jp/kaihatu/pdgr/hisim/index.html
Enhancements over the original model:
- Parallel Multiplier
- NodesetFix
***************************************************************************
***************************** SOI Devices ****************************
***************************************************************************
BSIM3SOI_FD - SOI model (fully depleted devices)
Initial Release.
Ver: 2.1
Class: M
Level: 55
Dir: devices/bsim3soi_fd
Status: TO BE TESTED.
FD model has been integrated.
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
*) rework-14: removed #ifndef NEWCONV code.
BSIM3SOI_DD - SOI Model (dynamic depletion model)
Initial Release.
Ver: 2.1
Class: M
Level: 56
Dir: devices/bsim3soi_dd
Status: TO BE TESTED.
There is a bsim3soidd directory under the
test hierarchy. Test circuits come from bsim3soi
Web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi
*) rework-14: removed #ifndef NEWCONV code.
BSIM3SOI_PD - SOI model (partially depleted devices)
Initial Release.
Ver: 2.2.1
Class: M
Level: 57
Dir: devices/bsim3soi_pd
Status: TO BE TESTED.
PD model has been integrated.
There is a bsim3soipd directory under the test
hierarchy. Test circuits come from the bsim3soi
Web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi
*) rework-14: removed #ifndef NEWCONV code.
BSIMSOI - SOI model (partially/full depleted devices)
Initial Release.
Ver: 3.0
Class: M
Level: 58
Dir: devices/bsim3soi
Status: TO BE TESTED.
This is the newer version from Berkeley.
Usable for partially/full depleted devices.
Web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi
SOI3 - STAG SOI3 Model
Initial Release.
Ver: 2.6
Class: M
Level: 62
Dir: devices/soi3
Status: TO BE TESTED
Web site at:
http://www.micro.ecs.soton.ac.uk/stag/
***************************************************************************
**************** Other devices not released as source code ****************
***************************************************************************
EKV - EKV model
Initial Release.
Ver: 2.6
Class: M
Level: 44
Dir: devices/ekv
Status: TO BE TESTED
Note: This model is not released in source code.
You have to obtain the source code from the address below.
Web site at:
http://legwww.epfl.ch/ekv/