comp issues

This commit is contained in:
h_vogt 2011-05-29 10:07:10 +00:00
parent d9531e3e75
commit f94cc3a8a0
8 changed files with 29 additions and 23 deletions

View File

@ -1,9 +1,14 @@
2011-05-29 Holger Vogt
* main.c, inpcom.c, numparam.h, spicenum.c, xpressn.c, compatmode.h, b3v1.c:
compatibility issues
2011-05-28 Dietmar Warning 2011-05-28 Dietmar Warning
* tests/hisim, tests/hisimhv: include the CMC test suite (Author: Colin McAndrew) * tests/hisim, tests/hisimhv: include the CMC test suite (Author: Colin McAndrew)
provided by the model developer - Hiroshima University provided by the model developer - Hiroshima University
2011-05-28 Holger Vogt 2011-05-28 Holger Vogt
* update to prepare release 23 * configure.ac, visualc/config.h, CPOYING, FAQ, INSTALL, NEWS:
update to prepare release 23
2011-05-28 Robert Larice 2011-05-28 Robert Larice
* src/ngsconvert.c : * src/ngsconvert.c :

View File

@ -17,8 +17,8 @@ Author: 1985 Wayne A. Christopher
/* /*
* SJB 21 April 2005 * SJB 21 April 2005
* Added support for end-of-line comments that begin with any of the following: * Added support for end-of-line comments that begin with any of the following:
* ';' (for PSpice compatability) * ';'
* '$ ' (for HSpice compatability) * '$ '
* '//' (like in c++ and as per the numparam code) * '//' (like in c++ and as per the numparam code)
* '--' (as per the numparam code) * '--' (as per the numparam code)
* Any following text to the end of the line is ignored. * Any following text to the end of the line is ignored.
@ -3625,7 +3625,7 @@ inp_split_multi_param_lines( struct line *deck, int line_num )
/* pspice compatibility: /* ps compatibility:
ECOMP 3 0 TABLE {V(1,2)} = (-1MV 0V) (1MV, 10V) ECOMP 3 0 TABLE {V(1,2)} = (-1MV 0V) (1MV, 10V)
--> -->
ECOMP 3 0 int3 int0 1 ECOMP 3 0 int3 int0 1
@ -3637,7 +3637,7 @@ inp_split_multi_param_lines( struct line *deck, int line_num )
BGD16 int_16 int_1 V = pwl (v(16,1) , -100V , -1pV , 0 , 0 , 1m , 1u , 2m , 1m ) BGD16 int_16 int_1 V = pwl (v(16,1) , -100V , -1pV , 0 , 0 , 1m , 1u , 2m , 1m )
*/ */
/* hspice compatibility: /* hs compatibility:
Exxx n1 n2 VCVS n3 n4 gain --> Exxx n1 n2 n3 n4 gain Exxx n1 n2 VCVS n3 n4 gain --> Exxx n1 n2 n3 n4 gain
Gxxx n1 n2 VCCS n3 n4 tr --> Exxx n1 n2 n3 n4 tr Gxxx n1 n2 VCCS n3 n4 tr --> Exxx n1 n2 n3 n4 tr

View File

@ -16,7 +16,7 @@
typedef enum {Nodekey='#'} _nNodekey; /* Introduces node symbol */ typedef enum {Nodekey='#'} _nNodekey; /* Introduces node symbol */
typedef enum {Intro='&'} _nIntro; /* Introduces preprocessor tokens */ typedef enum {Intro='&'} _nIntro; /* Introduces preprocessor tokens */
typedef enum {Comment='*'} _nComment; /* Spice Comment lines*/ typedef enum {Comment='*'} _nComment; /* Spice Comment lines*/
typedef enum {Pspice='{'} _nPspice; /* Pspice expression */ typedef enum {Psp='{'} _nPsp; /* Ps expression */
typedef enum {Defd=15} _nDefd; /* serial numb. of 'defined' keyword. The others are not used (yet) */ typedef enum {Defd=15} _nDefd; /* serial numb. of 'defined' keyword. The others are not used (yet) */
typedef char * auxtable; /* dummy */ typedef char * auxtable; /* dummy */
@ -57,7 +57,7 @@ typedef struct _ttdico {
auxtable nodetab; auxtable nodetab;
char **dynrefptr; char **dynrefptr;
char *dyncategory; char *dyncategory;
int hspice_compatibility; /* allow hspice keywords */ int hs_compatibility; /* allow extra keywords */
} tdico; } tdico;
void initdico(tdico * dico); void initdico(tdico * dico);

View File

@ -329,7 +329,7 @@ transform (tdico * dico, SPICE_DSTRINGPTR dstr_p, unsigned char nostripping,
s = spice_dstring_value(dstr_p) ; s = spice_dstring_value(dstr_p) ;
if (s[0] == '.') if (s[0] == '.')
{ {
/* check Pspice parameter format */ /* check PS parameter format */
scopy_up (&tstr, spice_dstring_value(dstr_p) ) ; scopy_up (&tstr, spice_dstring_value(dstr_p) ) ;
k = 1; k = 1;

View File

@ -228,10 +228,10 @@ initdico (tdico * dico)
compat_mode = ngspice_compat_mode() ; compat_mode = ngspice_compat_mode() ;
if( compat_mode == COMPATMODE_HSPICE ) if( compat_mode == COMPATMODE_HS )
dico->hspice_compatibility = 1 ; dico->hs_compatibility = 1 ;
else else
dico->hspice_compatibility = 0 ; dico->hs_compatibility = 0 ;
} }
void dico_free_entry( entry *entry_p ) void dico_free_entry( entry *entry_p )
@ -1431,9 +1431,9 @@ scanline (tdico * dico, char *s, char *r, bool err)
{ {
i++; i++;
c = s[i - 1]; c = s[i - 1];
if (c == Pspice) if (c == Psp)
{ {
/* try pspice expression syntax */ /* try ps expression syntax */
k = i; k = i;
nnest = 1; nnest = 1;
do do
@ -1453,7 +1453,7 @@ scanline (tdico * dico, char *s, char *r, bool err)
else else
{ {
pscopy (t, s, i + 1, k - i - 1); pscopy (t, s, i + 1, k - i - 1);
if( dico->hspice_compatibility && (strcasecmp(t,"LAST")==0) ) if( dico->hs_compatibility && (strcasecmp(t,"LAST")==0) )
{ {
strcpy(q,"last") ; strcpy(q,"last") ;
err=0; err=0;
@ -1629,9 +1629,9 @@ nupa_substitute (tdico * dico, char *s, char *r, bool err)
i++; i++;
c = s[i - 1]; c = s[i - 1];
if (c == Pspice) if (c == Psp)
{ {
/* try pspice expression syntax */ /* try ps expression syntax */
k = i; k = i;
nnest = 1; nnest = 1;
do do

View File

@ -5,7 +5,7 @@
typedef enum { typedef enum {
COMPATMODE_NATIVE = 0, COMPATMODE_NATIVE = 0,
COMPATMODE_HSPICE = 1, COMPATMODE_HS = 1,
COMPATMODE_SPICE3 = 2, COMPATMODE_SPICE3 = 2,
COMPATMODE_ALL = 3, COMPATMODE_ALL = 3,
} COMPATMODE_T ; } COMPATMODE_T ;

View File

@ -420,9 +420,10 @@ int DEVmaxnum = 0;
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* Set a compatibility flag. /* Set a compatibility flag.
Currently available are flags for: Currently available are flags for:
ngspice (standard) - ngspice (standard)
HSPICE - a commercial simulator
Spice3 - Spice3
- all compatibility staff
*/ */
COMPATMODE_T ngspice_compat_mode(void) COMPATMODE_T ngspice_compat_mode(void)
{ {
@ -431,8 +432,8 @@ COMPATMODE_T ngspice_compat_mode(void)
if( cp_getvar("ngbehavior", CP_STRING, behaviour)){ if( cp_getvar("ngbehavior", CP_STRING, behaviour)){
if (strcasecmp(behaviour,"all")==0) if (strcasecmp(behaviour,"all")==0)
return( COMPATMODE_ALL ) ; return( COMPATMODE_ALL ) ;
if (strcasecmp(behaviour,"hspice")==0) if (strcasecmp(behaviour,"hs")==0)
return( COMPATMODE_HSPICE ) ; return( COMPATMODE_HS ) ;
if (strcasecmp(behaviour,"spice3")==0) if (strcasecmp(behaviour,"spice3")==0)
return( COMPATMODE_SPICE3 ) ; return( COMPATMODE_SPICE3 ) ;
} }

View File

@ -428,7 +428,7 @@ IOP( "kf", BSIM3v1_MOD_KF, IF_REAL, "Flicker noise coefficient"),
IP( "nmos", BSIM3v1_MOD_NMOS, IF_FLAG, "Flag to indicate NMOS"), IP( "nmos", BSIM3v1_MOD_NMOS, IF_FLAG, "Flag to indicate NMOS"),
IP( "pmos", BSIM3v1_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"), IP( "pmos", BSIM3v1_MOD_PMOS, IF_FLAG, "Flag to indicate PMOS"),
/* serban */ /* serban */
IOP( "hdif", BSIM3v1_MOD_HDIF, IF_REAL, "S/D junction extension (HSPICE style)"), IOP( "hdif", BSIM3v1_MOD_HDIF, IF_REAL, "S/D junction extension"),
}; };
char *BSIM3v1names[] = { char *BSIM3v1names[] = {