From d1d4832b6531209d505975a689eeb642cd5a6b63 Mon Sep 17 00:00:00 2001 From: pnenzi Date: Sun, 21 Jan 2001 17:24:23 +0000 Subject: [PATCH] odification to parsing function for new device model (BSIM3SOIDD). Prepended ng to binaries and manpages. Online help works again (at least!). Corrected a bug in cktsgen. --- ChangeLog | 15 +++++ DEVICES | 9 ++- configure.in | 8 ++- man/man1/Makefile.am | 2 +- man/man1/{nutmeg.1 => ngnutmeg.1} | 0 man/man1/{sconvert.1 => ngsconvert.1} | 0 man/man1/{spice.1 => ngspice.1} | 0 src/Makefile.am | 28 +++++---- src/include/cktdefs.h | 2 +- src/{help.c => nghelp.c} | 0 src/{multidec.c => ngmultidec.c} | 0 src/{nutmeg.c => ngnutmeg.c} | 0 src/{proc2mod.c => ngproc2mod.c} | 0 src/{sconvert.c => ngsconvert.c} | 0 src/setplot | 64 +++++++++++++++++++++ src/spectrum | 83 +++++++++++++++++++++++++++ src/spicelib/analysis/ChangeLog | 5 ++ src/spicelib/analysis/cktsgen.c | 2 +- src/spicelib/devices/Makefile.am | 1 + src/spicelib/devices/dev.c | 52 +++++++++-------- src/spicelib/parser/inp2m.c | 31 +++++----- src/spicelib/parser/inpdomod.c | 10 +++- src/spinit | 4 ++ 23 files changed, 258 insertions(+), 58 deletions(-) rename man/man1/{nutmeg.1 => ngnutmeg.1} (100%) rename man/man1/{sconvert.1 => ngsconvert.1} (100%) rename man/man1/{spice.1 => ngspice.1} (100%) rename src/{help.c => nghelp.c} (100%) rename src/{multidec.c => ngmultidec.c} (100%) rename src/{nutmeg.c => ngnutmeg.c} (100%) rename src/{proc2mod.c => ngproc2mod.c} (100%) rename src/{sconvert.c => ngsconvert.c} (100%) create mode 100644 src/setplot create mode 100644 src/spectrum create mode 100644 src/spinit diff --git a/ChangeLog b/ChangeLog index 0b5994e9d..1401fb6fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2001-01-21 Paolo Nenzi + + * bsim3soi_dd/*: BSIM3SOI (DD) support added as level 11. Added tests in + tests directory (tests/bsim3soidd/*). + + * ???: Integrated patch form Alan Gillespie + to revert the spice raw format to the spice3 original. + + * configure.in: corrected a bug that broke the on line help system. + Help system now works again but its text is a little bit outdated. + + * ???: all binaries now have ng prependend, so ngspice can be installed + with other spice flavours. + + 2000-10-18 Arno W. Peters * Makefile.am: Changes for notes dir -> NOTES file conversion. diff --git a/DEVICES b/DEVICES index c39f4090c..ce9a41487 100644 --- a/DEVICES +++ b/DEVICES @@ -179,4 +179,11 @@ BSIM3SOI_PD - SOI model (partially depleted devices) hierarchy. Test circuits come from the bsim3soi web site at: http://www-device.eecs.berkeley.edu/~bsimsoi - + +BSIM3SOI_DD - SOI Model (dynamic depletion model) + Initial Release Ver: 2.1. TO BE TESTED. + DD model has been integrated as level= 11 + There is a bsim3soidd directory under the + test hierarchy. Test circuits come from bsim3soi + web site at: + http://www-device.eecs.berkeley.edu/~bsimsoi diff --git a/configure.in b/configure.in index 58bb761c7..980236a6c 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ dnl Create a configuration header AM_CONFIG_HEADER(config.h) dnl Initialize automake stuff -AM_INIT_AUTOMAKE(ng-spice-rework,13) +AM_INIT_AUTOMAKE(ng-spice-rework,14) dnl --enable-ansi : try to force --ansi option to the compiler @@ -173,7 +173,7 @@ else fi AC_DEFINE_UNQUOTED(NGSPICEBINDIR, "`echo $dprefix/bin`" ) -AC_DEFINE_UNQUOTED(NGSPICEDATADIR, "`echo $dprefix/share/ng-spice`" ) +AC_DEFINE_UNQUOTED(NGSPICEDATADIR, "`echo $dprefix/share/ng-spice-rework`" ) AC_DEFINE_UNQUOTED(NGSPICEBUILDDATE, "`date`" ) @@ -216,6 +216,7 @@ src/spicelib/devices/bsim4/Makefile \ src/spicelib/devices/bsim3v2/Makefile \ src/spicelib/devices/bsim3soi_pd/Makefile \ src/spicelib/devices/bsim3soi_fd/Makefile \ +src/spicelib/devices/bsim3soi_dd/Makefile \ src/spicelib/devices/cap/Makefile \ src/spicelib/devices/cccs/Makefile \ src/spicelib/devices/ccvs/Makefile \ @@ -256,5 +257,6 @@ tests/filters/Makefile \ tests/polezero/Makefile \ tests/resistance/Makefile \ tests/bsim3soipd/Makefile \ -tests/bsim3soifd/Makefile +tests/bsim3soifd/Makefile \ +tests/bsim3soidd/Makefile ) diff --git a/man/man1/Makefile.am b/man/man1/Makefile.am index 1818ad812..832669a65 100644 --- a/man/man1/Makefile.am +++ b/man/man1/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -man_MANS = spice.1 nutmeg.1 sconvert.1 +man_MANS = ngspice.1 ngnutmeg.1 ngsconvert.1 EXTRA_DIST = $(man_MANS) diff --git a/man/man1/nutmeg.1 b/man/man1/ngnutmeg.1 similarity index 100% rename from man/man1/nutmeg.1 rename to man/man1/ngnutmeg.1 diff --git a/man/man1/sconvert.1 b/man/man1/ngsconvert.1 similarity index 100% rename from man/man1/sconvert.1 rename to man/man1/ngsconvert.1 diff --git a/man/man1/spice.1 b/man/man1/ngspice.1 similarity index 100% rename from man/man1/spice.1 rename to man/man1/ngspice.1 diff --git a/src/Makefile.am b/src/Makefile.am index c3d5f46e7..fa686573c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,7 +2,7 @@ SUBDIRS = misc maths frontend spicelib include -bin_PROGRAMS = ngspice nutmeg help sconvert proc2mod multidec makeidx +bin_PROGRAMS = ngspice ngnutmeg nghelp ngsconvert ngproc2mod ngmultidec makeidx EXTRA_DIST = ngspice.txt ngspice.idx @@ -10,6 +10,9 @@ helpdatadir = $(pkgdatadir)/helpdir helpdata_DATA = ngspice.idx ngspice.txt +initdatadir = $(pkgdatadir)/scripts + +initdata_DATA = spinit setplot spectrum DYNAMIC_DEVICELIBS = \ @@ -24,6 +27,7 @@ DYNAMIC_DEVICELIBS = \ spicelib/devices/cap/libcap.la \ spicelib/devices/bsim3soi_pd/libbsim3soipd.la \ spicelib/devices/bsim3soi_fd/libbsim3soifd.la \ + spicelib/devices/bsim3soi_dd/libbsim3soidd.la \ spicelib/devices/cccs/libcccs.la \ spicelib/devices/ccvs/libccvs.la \ spicelib/devices/ccvs/libccvs.la \ @@ -77,13 +81,13 @@ spice.o: main.c ## nutmeg: -nutmeg_SOURCES = \ +ngnutmeg_SOURCES = \ main.c \ conf.c \ conf.h \ - nutmeg.c + ngnutmeg.c -nutmeg_LDADD = \ +ngnutmeg_LDADD = \ frontend/libfte.a \ frontend/plotting/libplotting.a \ frontend/parser/libparser.a \ @@ -96,9 +100,9 @@ nutmeg_LDADD = \ ## help: -help_SOURCES = help.c +nghelp_SOURCES = nghelp.c -help_LDADD = \ +nghelp_LDADD = \ frontend/help/libhlp.a \ frontend/parser/libparser.a \ frontend/libfte.a \ @@ -107,11 +111,11 @@ help_LDADD = \ ## sconvert: -sconvert_SOURCES = sconvert.c +ngsconvert_SOURCES = ngsconvert.c -sconvert_LDADD = \ +ngsconvert_LDADD = \ frontend/libfte.a \ frontend/parser/libparser.a \ misc/libmisc.a @@ -119,9 +123,9 @@ sconvert_LDADD = \ ## proc2mod: -proc2mod_SOURCES = proc2mod.c +ngproc2mod_SOURCES = ngproc2mod.c -proc2mod_LDADD = \ +ngproc2mod_LDADD = \ frontend/parser/libparser.a \ spicelib/parser/libinp.a \ misc/libmisc.a @@ -130,9 +134,9 @@ proc2mod_LDADD = \ ## multidec: -multidec_SOURCES = multidec.c +ngmultidec_SOURCES = ngmultidec.c -multidec_LDADD = \ +ngmultidec_LDADD = \ maths/sparse/libsparse.a \ misc/libmisc.a diff --git a/src/include/cktdefs.h b/src/include/cktdefs.h index 900efa400..2c205a2e9 100644 --- a/src/include/cktdefs.h +++ b/src/include/cktdefs.h @@ -6,7 +6,7 @@ #ifndef CKT #define CKT "CKTdefs.h $Revision$ on $Date$ " -#define MAXNUMDEVS 33 /* Max number of possible devices; */ +#define MAXNUMDEVS 34 /* Max number of possible devices PN:XXX may cause toubles*/ extern int DEVmaxnum; /* Not sure if still used */ #define MAXNUMDEVNODES 4 /* Max No. of nodes per device */ /* Need to change for SOI devs ? */ diff --git a/src/help.c b/src/nghelp.c similarity index 100% rename from src/help.c rename to src/nghelp.c diff --git a/src/multidec.c b/src/ngmultidec.c similarity index 100% rename from src/multidec.c rename to src/ngmultidec.c diff --git a/src/nutmeg.c b/src/ngnutmeg.c similarity index 100% rename from src/nutmeg.c rename to src/ngnutmeg.c diff --git a/src/proc2mod.c b/src/ngproc2mod.c similarity index 100% rename from src/proc2mod.c rename to src/ngproc2mod.c diff --git a/src/sconvert.c b/src/ngsconvert.c similarity index 100% rename from src/sconvert.c rename to src/ngsconvert.c diff --git a/src/setplot b/src/setplot new file mode 100644 index 000000000..38ca0da15 --- /dev/null +++ b/src/setplot @@ -0,0 +1,64 @@ +* set the current working plot +.control + +begin + unset resp + if $argc + set resp = $argv[1] + else + if $?plots = 0 + echo Error: there aren\'t any plots currently loaded. + goto bottom + else + if $#plots = 0 + echo Error: there aren\'t any plots currently loaded. + goto bottom + end + end + + if $?resp = 0 + set oldplot = $curplot + echo ' Type the name of the desired plot:' + echo '' + echo ' new New plot' + foreach pl $plots + set curplot = $pl + strcmp i $pl $oldplot + if $i = 0 + echo "Current $pl $curplottitle ({$curplotname})" + else + echo " $pl $curplottitle ({$curplotname})" + end + end + set curplot = $oldplot + echo -n '? ' + set resp = $< + end + end + + + strcmp i $resp "" + if $i = 0 + goto bottom + end + + strcmp i $resp new + if $i = 0 + set curplot = new + goto bottom + end + + foreach pl $plots + strcmp i $resp $pl + if $i = 0 + set curplot = $pl + goto bottom + end + end + + echo Error: no such plot name $resp + + label bottom + + unset resp i pl newflag oldplot +end diff --git a/src/spectrum b/src/spectrum new file mode 100644 index 000000000..eafb0d09e --- /dev/null +++ b/src/spectrum @@ -0,0 +1,83 @@ +* Fourier Series Function for SPICE +.control + begin + if ($argc lt 4) + echo Error: Too few arguments. + echo ' 'Spectrum produces a plot containing a fourier series transformation of + echo ' 'the specified vectors + echo usage: spectrum startfreq stop step vec [[vec] ...] + goto bottom + end + + if ( time eq time ) + foreach vec $argv[4-len] + if ( $vec eq $vec ) + else + goto bottom + end + end + else + echo ' 'Spectrum can not work without a time vector from a transient analysis. + goto bottom + end + + set dt=$curplot + set title=$curplottitle + set curplot=new + set scratch=$curplot + let span={$dt}.time[length({$dt}.time)-1]-{$dt}.time[0] + if ($argv[3] gt 0.999/span) + let fpoints= ( $argv[2] - $argv[1] ) / $argv[3] +1 + if (fpoints < 2) + echo frequency start stop or step not correctly specified + goto cleanup + end + else + echo Error: time span is not long enough for a step frequency of $argv[3] Hz + goto cleanup + end + let lent = length({$dt}.time) + set lent = "$&lent" + let nyquist = {$lent}/2/span + if ($argv[2] gt nyquist) + echo Error: The nyquist limit is exceeded, try a frequency less than "$&nyquist" Hz + goto cleanup + end + set fpoints="$&fpoints" + set curplot=new + set spec=$curplot + set curplottitle=$title + set curplotname='Spectrum Analysis' + let frequency=vector( $fpoints )*$argv[3] + dowhile frequency[1] < ( $argv[1] + 1e-9 ) + let frequency = frequency + $argv[3] + end + foreach vec $argv[4-len] + let $vec = vector( $fpoints ) + j(vector( $fpoints )) + reshape $vec [{$fpoints}] + end + set curplot=$scratch + let npers=1 + let test = span-2/$argv[3] + 1e-9 + while test > 0 + let npers = npers + 1 + let test = test-1/$argv[3] + end + let ircle = 2*pi*max(-1,({$dt}.time-{$dt}.time[{$lent}-1])*{$argv[3]}/npers) + let win = 1 - cos(ircle) + let ircle = npers*ircle + let circle = ircle * ({$spec}.frequency[0]/$argv[3] - 1) + let k=vector( $fpoints ) + foreach k "$&k" + let circle = circle + ircle + foreach vec $argv[4-len] + let tmp = win*{$dt}.{$vec} + let {$spec}.{$vec}[{$k}] = 2*(mean(cos(circle)*tmp),mean(sin(circle)*tmp)) + end + end + + label cleanup + destroy $scratch + unset fpoints dt scratch spec vec k title lent + label bottom + end diff --git a/src/spicelib/analysis/ChangeLog b/src/spicelib/analysis/ChangeLog index 4c5512e3a..7b887a1dd 100644 --- a/src/spicelib/analysis/ChangeLog +++ b/src/spicelib/analysis/ChangeLog @@ -1,3 +1,8 @@ +2000-01-21 Paolo Nenzi + + * cktsgen.c: corrected a bug that caused segfault on sensitivity + analysis. + 2000-07-28 Arno W. Peters * cktpzstr.c: Reversed a patch that went in between ng-spice-0.2 diff --git a/src/spicelib/analysis/cktsgen.c b/src/spicelib/analysis/cktsgen.c index e431807db..78f122450 100644 --- a/src/spicelib/analysis/cktsgen.c +++ b/src/spicelib/analysis/cktsgen.c @@ -156,7 +156,7 @@ sgen_next(sgen **xsg) i = sg->dev; - if (i > DEVmaxnum) + if (i >= DEVmaxnum) /* PN: Segafult if not = */ done = 1; sg->first_model = sg->next_model = sg->devlist[i]; diff --git a/src/spicelib/devices/Makefile.am b/src/spicelib/devices/Makefile.am index 578366ac8..a1cff262a 100644 --- a/src/spicelib/devices/Makefile.am +++ b/src/spicelib/devices/Makefile.am @@ -11,6 +11,7 @@ SUBDIRS = \ bsim3v2 \ bsim3soi_pd \ bsim3soi_fd \ + bsim3soi_dd \ cap \ cccs \ ccvs \ diff --git a/src/spicelib/devices/dev.c b/src/spicelib/devices/dev.c index 53a985589..efe95f943 100644 --- a/src/spicelib/devices/dev.c +++ b/src/spicelib/devices/dev.c @@ -35,7 +35,7 @@ #include "dev.h" -#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" +#define DEVICES_USED "asrc bjt bsim1 bsim2 bsim3 bsim3v2 bsim3v1 bsim4 bsim3soipd bsim3soifd bsim3soidd cap cccs ccvs csw dio ind isrc jfet ltra mes mos1 mos2 mos3 mos6 res sw tra urc vccs vcvs vsrc" /* * Analyses @@ -63,6 +63,7 @@ #include "bsim4/bsim4itf.h" #include "bsim3soi_pd/b3soipditf.h" #include "bsim3soi_fd/b3soifditf.h" +#include "bsim3soi_dd/b3soidditf.h" #include "cap/capitf.h" #include "cccs/cccsitf.h" #include "ccvs/ccvsitf.h" @@ -87,7 +88,7 @@ #include "vsrc/vsrcitf.h" -#define DEVNUM 33 +#define DEVNUM 34 SPICEdev *DEVices[DEVNUM]; @@ -107,29 +108,30 @@ spice_init_devices(void) DEVices[ 8] = get_bsim4_info(); DEVices[ 9] = get_b3soipd_info(); 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); + DEVices[11] = get_b3soidd_info(); + DEVices[12] = get_cap_info(); + DEVices[13] = get_cccs_info(); + DEVices[14] = get_ccvs_info(); + DEVices[15] = get_csw_info(); + DEVices[16] = get_dio_info(); + DEVices[17] = get_ind_info(); + DEVices[18] = get_mut_info(); + DEVices[19] = get_isrc_info(); + DEVices[20] = get_jfet_info(); + DEVices[21] = get_jfet2_info(); + DEVices[22] = get_ltra_info(); + DEVices[23] = get_mes_info(); + DEVices[24] = get_mos1_info(); + DEVices[25] = get_mos2_info(); + DEVices[26] = get_mos3_info(); + DEVices[27] = get_mos6_info(); + DEVices[28] = get_res_info(); + DEVices[29] = get_sw_info(); + DEVices[30] = get_tra_info(); + DEVices[31] = get_vccs_info(); + DEVices[32] = get_vcvs_info(); + DEVices[33] = get_vsrc_info(); + assert(34 == DEVNUM); } diff --git a/src/spicelib/parser/inp2m.c b/src/spicelib/parser/inp2m.c index 9f90940b4..6490394a1 100644 --- a/src/spicelib/parser/inp2m.c +++ b/src/spicelib/parser/inp2m.c @@ -86,14 +86,15 @@ INP2M (void *ckt, INPtables * tab, card * current) if (thismodel != NULL) { if ((thismodel->INPmodType != INPtypelook ("B3SOIPD")) && - (thismodel->INPmodType != INPtypelook ("B3SOIFD")) + (thismodel->INPmodType != INPtypelook ("B3SOIFD")) && + (thismodel->INPmodType != INPtypelook ("B3SOIDD")) ) { - /* if model is not variable node B3SOIPD model, error! */ - LITERR ("only level 9-10 B3SOI(PD | FD) can have 7 nodes") return; + /* if model is not variable node B3SOIPD/FD/DD model, error! */ + LITERR ("only level 9-10 B3SOI(PD | FD | DD) can have 7 nodes") return; } else - { /* if looking at B3SOIPD model, allocate the 7th node */ + { /* if looking at B3SOIPD/FD/DD model, allocate the 7th node */ INPtermInsert (ckt, &nname5, tab, &node5); INPtermInsert (ckt, &nname6, tab, &node6); INPtermInsert (ckt, &nname7, tab, &node7); @@ -103,14 +104,15 @@ INP2M (void *ckt, INPtables * tab, card * current) else { /* 7th token is a model - only have 6 terminal device */ if ((thismodel->INPmodType != INPtypelook ("B3SOIPD")) && - (thismodel->INPmodType != INPtypelook ("B3SOIFD")) + (thismodel->INPmodType != INPtypelook ("B3SOIFD")) && + (thismodel->INPmodType != INPtypelook ("B3SOIDD")) ) { - /* if model is not variable node B3SOIPD model, error! */ - LITERR ("only level 9-10 B3SOI(PD | FD) can have 6 nodes") return; + /* if model is not variable node B3SOIPD/FD/DD model, error! */ + LITERR ("only level 9-10 B3SOI(PD | FD | DD) can have 6 nodes") return; } else - { /* if looking at B3SOIPD model, allocate the 6th node */ + { /* if looking at B3SOIPD/FD/DD model, allocate the 6th node */ INPtermInsert (ckt, &nname5, tab, &node5); INPtermInsert (ckt, &nname6, tab, &node6); model = nname7; @@ -120,14 +122,15 @@ INP2M (void *ckt, INPtables * tab, card * current) else { /* 6th token is a model - only have 5 terminal device */ if ((thismodel->INPmodType != INPtypelook ("B3SOIPD")) && - (thismodel->INPmodType != INPtypelook ("B3SOIFD")) + (thismodel->INPmodType != INPtypelook ("B3SOIFD")) && + (thismodel->INPmodType != INPtypelook ("B3SOIDD")) ) { - /* if model is not variable node B3SOIPD model, error! */ - LITERR ("only level 9-10 B3SOI(PD | FD) can have 5 nodes") return; + /* if model is not variable node B3SOIPD/FD/DD model, error! */ + LITERR ("only level 9-10 B3SOI(PD | FD | DD) can have 5 nodes") return; } else - { /* if looking at B3SOIPD model, allocate the 5th node */ + { /* if looking at B3SOIPD/FD/DD model, allocate the 5th node */ INPtermInsert (ckt, &nname5, tab, &node5); model = nname6; /* make model point to the correct token */ } @@ -157,6 +160,7 @@ INP2M (void *ckt, INPtables * tab, card * current) && thismodel->INPmodType != INPtypelook ("BSIM3") && thismodel->INPmodType != INPtypelook ("B3SOIPD") && thismodel->INPmodType != INPtypelook ("B3SOIFD") + && thismodel->INPmodType != INPtypelook ("B3SOIDD") && thismodel->INPmodType != INPtypelook ("BSIM4") && thismodel->INPmodType != INPtypelook ("BSIM3V1") && thismodel->INPmodType != INPtypelook ("BSIM3V2")) @@ -189,7 +193,8 @@ INP2M (void *ckt, INPtables * tab, card * current) IFC (bindNode, (ckt, fast, 3, node3)); IFC (bindNode, (ckt, fast, 4, node4)); if ((thismodel->INPmodType == INPtypelook ("B3SOIPD")) || - (thismodel->INPmodType == INPtypelook ("B3SOIFD")) + (thismodel->INPmodType == INPtypelook ("B3SOIFD")) || + (thismodel->INPmodType == INPtypelook ("B3SOIDD")) ) { switch (nodeflag) diff --git a/src/spicelib/parser/inpdomod.c b/src/spicelib/parser/inpdomod.c index 931ac20d4..4f3b4d1c2 100644 --- a/src/spicelib/parser/inpdomod.c +++ b/src/spicelib/parser/inpdomod.c @@ -170,7 +170,15 @@ char *INPdomodel(void *ckt, card * image, INPtables * tab) INPmkTemp ("Device type B3SOIFD not available in this binary\n"); } - break; + break; + case 11: + type = INPtypelook("B3SOIDD"); + if (type < 0) { + err = + INPmkTemp + ("Device type B3SOIDD not available in this binary\n"); + } + break; case 14: type = INPtypelook("BSIM4"); if (type < 0) { diff --git a/src/spinit b/src/spinit new file mode 100644 index 000000000..31c8095d3 --- /dev/null +++ b/src/spinit @@ -0,0 +1,4 @@ +* Standard spice and nutmeg init file +alias exit quit +alias acct rusage all +set x11lineararcs