if ADMS hardwired, adms3 ohne autogen, spearate compiled
siehe /s/larice/ngspice.work/build-adms3/do.el das u device ist highjacked man braucht LD_LIBRARY_PATH
This commit is contained in:
parent
8a2fa89af3
commit
5b326d9050
|
|
@ -1592,7 +1592,7 @@ comment_out_unused_subckt_models( struct line *start_card , int no_of_lines)
|
|||
if ( strcmp( used_model_names[i], model_name ) == 0 || model_bin_match( used_model_names[i], model_name ) ) found_model = TRUE;
|
||||
}
|
||||
if (model_type) tfree(model_type);
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
/* ngspice strategy to detect unused models fails with dynamic models - reason: # of terms unknown during parsing */
|
||||
#else
|
||||
if ( !found_model ) *line = '*';
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ com_version(wordlist *wl)
|
|||
#ifdef NGDEBUG
|
||||
fprintf(cp_out,"** Debugging option (-g) enabled\n");
|
||||
#endif
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
fprintf(cp_out,"** Adms interface enabled\n");
|
||||
#endif
|
||||
#ifdef USE_OMP
|
||||
|
|
|
|||
|
|
@ -1902,7 +1902,7 @@ devmodtranslate(struct line *deck, char *subname, wordlist * const submod)
|
|||
tfree(s->li_line);
|
||||
s->li_line = buffer;
|
||||
break;
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
case 'u': /* urc transmissionline */ /* hijacked for adms */
|
||||
name = gettok_node(&t); /* this can be either a model name or a node name. */
|
||||
for (wlsub = submod; wlsub; wlsub = wlsub->wl_next)
|
||||
|
|
@ -2048,7 +2048,7 @@ devmodtranslate(struct line *deck, char *subname, wordlist * const submod)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
if (!wlsub) {
|
||||
if (*t) { /* There is another token - perhaps a model */
|
||||
(void) sprintf(buffer + strlen(buffer), "%s ", name);
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ typedef struct SPICEdev {
|
|||
|
||||
} SPICEdev; /* instance of structure for each possible type of device */
|
||||
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
typedef struct SPICEadmsdev {
|
||||
SPICEdev spicedev;
|
||||
int (*DEVunsetup)(GENmodel*,CKTcircuit*);
|
||||
|
|
|
|||
|
|
@ -233,7 +233,7 @@ extern char *Inp_Path;
|
|||
extern int ARCHme; /* My logical process number */
|
||||
extern int ARCHsize; /* Total number of processes */
|
||||
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
int load_vadev(CKTcircuit *ckt, char *name);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ int add_udn(int,Evt_Udn_Info_t **);
|
|||
#include "vccs/vccsitf.h"
|
||||
#include "vcvs/vcvsitf.h"
|
||||
#include "vsrc/vsrcitf.h"
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) && 0
|
||||
#include "adms/hicum0/hicum0itf.h"
|
||||
#include "adms/hicum2/hicum2itf.h"
|
||||
#include "adms/mextram/bjt504titf.h"
|
||||
|
|
@ -142,7 +142,7 @@ int add_udn(int,Evt_Udn_Info_t **);
|
|||
#endif
|
||||
|
||||
/*saj in xspice the DEVices size can be varied so DEVNUM is an int*/
|
||||
#if defined XSPICE || ADMS >= 3
|
||||
#if defined(XSPICE) || ADMS >= 3 || 1
|
||||
static int DEVNUM = 63;
|
||||
#else
|
||||
#define DEVNUM 63
|
||||
|
|
@ -165,7 +165,7 @@ int DEVflag(int type){
|
|||
}
|
||||
#endif
|
||||
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
#include "ngspice/fteext.h" /* for ft_sim */
|
||||
#include "ngspice/cktdefs.h" /* for DEVmaxnum */
|
||||
#include <dlfcn.h>
|
||||
|
|
@ -311,7 +311,7 @@ spice_init_devices(void)
|
|||
DEVices[53] = NULL;
|
||||
#endif
|
||||
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) && 0
|
||||
DEVices[54] = (SPICEdev*)get_hicum0_info();
|
||||
DEVices[55] = (SPICEdev*)get_hicum2_info();
|
||||
DEVices[56] = (SPICEdev*)get_bjt504t_info();
|
||||
|
|
@ -356,7 +356,7 @@ SPICEdev ** devices(void)
|
|||
#ifdef DEVLIB
|
||||
/*not yet usable*/
|
||||
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) && 0
|
||||
#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v4", "bsim4v5", "bsim4v6", \
|
||||
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv", \
|
||||
"cap", "cccs", "ccvs", "csw", "dio", "hfet", "hfet2", "ind", "isrc", "jfet", "ltra", "mes", "mesa" ,"mos1", "mos2", "mos3", \
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ INP2M (CKTcircuit *ckt, INPtables * tab, card * current)
|
|||
#ifdef CIDER
|
||||
&& thismodel->INPmodType != INPtypelook ("NUMOS")
|
||||
#endif
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
&& thismodel->INPmodType != INPtypelook ("ekv")
|
||||
&& thismodel->INPmodType != INPtypelook ("psp102")
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Modified: 2001 Paolo Nenzi (Cider Integration)
|
|||
#include "ngspice/fteext.h"
|
||||
#include "inp.h"
|
||||
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
#include "error.h" /* controlled_exit() */
|
||||
#endif
|
||||
|
||||
|
|
@ -28,14 +28,14 @@ void INP2Q(CKTcircuit *ckt, INPtables * tab, card * current, CKTnode *gnode)
|
|||
char *nname2; /* the second node's name */
|
||||
char *nname3; /* the third node's name */
|
||||
char *nname4; /* the fourth node's name */
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
char *nname5; /* the fifth node's name */
|
||||
#endif
|
||||
CKTnode *node1; /* the first node's node pointer */
|
||||
CKTnode *node2; /* the second node's node pointer */
|
||||
CKTnode *node3; /* the third node's node pointer */
|
||||
CKTnode *node4; /* the fourth node's node pointer */
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
CKTnode *node5; /* the fifth node's node pointer */
|
||||
#endif
|
||||
int error; /* error code temporary */
|
||||
|
|
@ -87,7 +87,7 @@ void INP2Q(CKTcircuit *ckt, INPtables * tab, card * current, CKTnode *gnode)
|
|||
/* 4-terminal device - special case with tnodeout flag not handled */
|
||||
INPinsert(&model, tab);
|
||||
current->error = INPgetMod(ckt, model, &thismodel, tab);
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
if (thismodel == NULL) {
|
||||
fprintf(stderr, "%s\nPlease check model, level or number of terminals!\n", current->error);
|
||||
controlled_exit(EXIT_BAD);
|
||||
|
|
@ -126,7 +126,7 @@ void INP2Q(CKTcircuit *ckt, INPtables * tab, card * current, CKTnode *gnode)
|
|||
&& (thismodel->INPmodType != INPtypelook("NBJT"))
|
||||
&& (thismodel->INPmodType != INPtypelook("NBJT2"))
|
||||
#endif
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
&& (thismodel->INPmodType != INPtypelook("hicum0"))
|
||||
&& (thismodel->INPmodType != INPtypelook("hicum2"))
|
||||
&& (thismodel->INPmodType != INPtypelook("bjt504t"))
|
||||
|
|
@ -136,7 +136,7 @@ void INP2Q(CKTcircuit *ckt, INPtables * tab, card * current, CKTnode *gnode)
|
|||
LITERR("incorrect model type")
|
||||
return;
|
||||
}
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
if ((nodeflag && (thismodel->INPmodType != INPtypelook("hicum0")))
|
||||
&& (nodeflag && (thismodel->INPmodType != INPtypelook("hicum2")))
|
||||
&& (nodeflag && (thismodel->INPmodType != INPtypelook("bjt504t"))))
|
||||
|
|
@ -176,7 +176,7 @@ void INP2Q(CKTcircuit *ckt, INPtables * tab, card * current, CKTnode *gnode)
|
|||
IFC(bindNode, (ckt, fast, 3, node3));
|
||||
IFC(bindNode, (ckt, fast, 4, node4));
|
||||
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
if (nodeflag) { /* 5-node device */
|
||||
IFC(bindNode, (ckt, fast, 5, node5));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@ Author: 1988 Thomas L. Quarles
|
|||
#include "ngspice/inpmacs.h"
|
||||
#include "ngspice/fteext.h"
|
||||
#include "inp.h"
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
#include "error.h" /* controlled_exit() */
|
||||
#endif
|
||||
|
||||
void INP2U(CKTcircuit *ckt, INPtables * tab, card * current)
|
||||
{
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
|
||||
/* Uname <node> <node> ... <model> [param1=<val1>] [param1=<val2>] ... */
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Author: 1985 Thomas L. Quarles
|
|||
#include "ngspice/iferrmsg.h"
|
||||
#include "ngspice/inpdefs.h"
|
||||
#include "inp.h"
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
#include "error.h" /* controlled_exit() */
|
||||
#endif
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
|
|||
INPinsert(&modname, tab); /* stick model name into table */
|
||||
INPgetTok(&line, &type_name, 1); /* get model type */
|
||||
|
||||
#if ADMS >= 3
|
||||
#if ADMS >= 3 || 1
|
||||
if ((type=load_vadev(ckt,type_name)) && type>=0) {
|
||||
INPmodel *thismodel;
|
||||
char *error;
|
||||
|
|
@ -84,7 +84,7 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
|
|||
"Device type VBIC not available in this binary\n");
|
||||
}
|
||||
break;
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
case 6:
|
||||
type = INPtypelook("bjt504t");
|
||||
if(type < 0) {
|
||||
|
|
@ -357,7 +357,7 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
|
|||
INPmkTemp
|
||||
("Device type BSIM6 not available in this binary\n");}
|
||||
break;
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
case 44:
|
||||
type = INPtypelook("ekv");
|
||||
if (type < 0) {
|
||||
|
|
@ -435,7 +435,7 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
|
|||
default: /* placeholder; use level xxx for the next model */
|
||||
err =
|
||||
INPmkTemp
|
||||
#ifdef ADMS
|
||||
#if defined(ADMS) || 1
|
||||
("Only MOS device levels 1-6,8-10,14,44,45,49,54-58,60-62 are supported in this binary\n");
|
||||
#else
|
||||
("Only MOS device levels 1-6,8-10,14,49,54-58,60-62 are supported in this binary\n");
|
||||
|
|
|
|||
Loading…
Reference in New Issue