Browse Source

comp issues

h_vogt 15 years ago
parent
commit
f94cc3a8a0
  1. 7
      ChangeLog
  2. 8
      src/frontend/inpcom.c
  3. 4
      src/frontend/numparam/numparam.h
  4. 2
      src/frontend/numparam/spicenum.c
  5. 16
      src/frontend/numparam/xpressn.c
  6. 2
      src/include/compatmode.h
  7. 11
      src/main.c
  8. 2
      src/spicelib/devices/bsim3v1/b3v1.c

7
ChangeLog

@ -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 :

8
src/frontend/inpcom.c

@ -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

4
src/frontend/numparam/numparam.h

@ -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);

2
src/frontend/numparam/spicenum.c

@ -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;

16
src/frontend/numparam/xpressn.c

@ -228,10 +228,10 @@ initdico (tdico * dico)
compat_mode = ngspice_compat_mode() ; compat_mode = ngspice_compat_mode() ;
if( compat_mode == COMPATMODE_HSPICE )
dico->hspice_compatibility = 1 ;
if( compat_mode == COMPATMODE_HS )
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

2
src/include/compatmode.h

@ -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 ;

11
src/main.c

@ -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)
HSPICE
Spice3
- ngspice (standard)
- a commercial simulator
- 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)
return( COMPATMODE_HSPICE ) ;
if (strcasecmp(behaviour,"hs")==0)
return( COMPATMODE_HS ) ;
if (strcasecmp(behaviour,"spice3")==0) if (strcasecmp(behaviour,"spice3")==0)
return( COMPATMODE_SPICE3 ) ; return( COMPATMODE_SPICE3 ) ;
} }

2
src/spicelib/devices/bsim3v1/b3v1.c

@ -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[] = {

Loading…
Cancel
Save