- bug fix in lax parameter parsing (it may happens that wrong values are

computed/introduced under Redhat 9)
- bug fix in xsch driver : the VST driver may add intermediate signals
  and loon has no idea of those signals after driving the resulting optimized
  netlist. Loon then displayed the message -> "signal foo not found in hash table"
  and stopped. Now it adds those signals in its internal hash table, and there is
  no longer error.
This commit is contained in:
Ludovic Jacomme 2004-09-07 21:16:11 +00:00
parent 00651fec71
commit 3c4f840a38
4 changed files with 15 additions and 4 deletions

View File

@ -183,12 +183,11 @@ loc_addnamelist( lax_name_list *head, char *name )
int
loc_getdouble( FILE *Pfile, int c, double *PValue )
{
double Value = 0.0;
char Buffer[ 32 ];
int Index = 0;
int Index;
Buffer[ 0 ] = '\0';
*PValue = 0.0;
Index = 0;
while ( ( isdigit( c ) ) ||
( c == '.' ) ||
@ -203,6 +202,8 @@ loc_getdouble( FILE *Pfile, int c, double *PValue )
c = fgetc( Pfile );
}
Buffer[ Index ] = '\0';
if ( Index > 0 ) *PValue = atof( Buffer );
while( isspace( (int) c )) { c = fgetc( Pfile ); }

View File

@ -137,7 +137,7 @@ static void putsignal(signal_list* signal, char* name)
/* search a signal in hash table */
/*if doesn't exist, create the signal if create param is 1 */
/***************************************************************************/
static signal_list* getsignal(char *name, int create)
signal_list* getsignal(char *name, int create)
{
authelem* elem;
signal_list* signal;
@ -270,5 +270,13 @@ extern void putcapacitance(char* name, double capacitance)
if (signal->C<0) signal->C=0;
}
/* LUDO */
int
addsignalifnotexist( char *name )
{
return ( getsignal( name, 1 ) != (signal_list *)0 );
}

View File

@ -77,5 +77,6 @@ extern void inccapacitance __P ((char* name, double capacitance));
/***************************************************************************/
extern void putcapacitance __P ((char* name, double capacitance));
extern int addsignalifnotexist __P(( char *name ));
#endif

View File

@ -164,6 +164,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat
autexit(1);
}
signame=losig->NAMECHAIN->DATA;
addsignalifnotexist( signame );
if (isvdd(signame) || isvss(signame)) continue;