- 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:
parent
00651fec71
commit
3c4f840a38
|
@ -183,12 +183,11 @@ loc_addnamelist( lax_name_list *head, char *name )
|
||||||
int
|
int
|
||||||
loc_getdouble( FILE *Pfile, int c, double *PValue )
|
loc_getdouble( FILE *Pfile, int c, double *PValue )
|
||||||
{
|
{
|
||||||
double Value = 0.0;
|
|
||||||
char Buffer[ 32 ];
|
char Buffer[ 32 ];
|
||||||
int Index = 0;
|
int Index;
|
||||||
|
|
||||||
Buffer[ 0 ] = '\0';
|
|
||||||
*PValue = 0.0;
|
*PValue = 0.0;
|
||||||
|
Index = 0;
|
||||||
|
|
||||||
while ( ( isdigit( c ) ) ||
|
while ( ( isdigit( c ) ) ||
|
||||||
( c == '.' ) ||
|
( c == '.' ) ||
|
||||||
|
@ -203,6 +202,8 @@ loc_getdouble( FILE *Pfile, int c, double *PValue )
|
||||||
c = fgetc( Pfile );
|
c = fgetc( Pfile );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Buffer[ Index ] = '\0';
|
||||||
|
|
||||||
if ( Index > 0 ) *PValue = atof( Buffer );
|
if ( Index > 0 ) *PValue = atof( Buffer );
|
||||||
|
|
||||||
while( isspace( (int) c )) { c = fgetc( Pfile ); }
|
while( isspace( (int) c )) { c = fgetc( Pfile ); }
|
||||||
|
|
|
@ -137,7 +137,7 @@ static void putsignal(signal_list* signal, char* name)
|
||||||
/* search a signal in hash table */
|
/* search a signal in hash table */
|
||||||
/*if doesn't exist, create the signal if create param is 1 */
|
/*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;
|
authelem* elem;
|
||||||
signal_list* signal;
|
signal_list* signal;
|
||||||
|
@ -270,5 +270,13 @@ extern void putcapacitance(char* name, double capacitance)
|
||||||
if (signal->C<0) signal->C=0;
|
if (signal->C<0) signal->C=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LUDO */
|
||||||
|
|
||||||
|
int
|
||||||
|
addsignalifnotexist( char *name )
|
||||||
|
{
|
||||||
|
return ( getsignal( name, 1 ) != (signal_list *)0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -77,5 +77,6 @@ extern void inccapacitance __P ((char* name, double capacitance));
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
extern void putcapacitance __P ((char* name, double capacitance));
|
extern void putcapacitance __P ((char* name, double capacitance));
|
||||||
|
|
||||||
|
extern int addsignalifnotexist __P(( char *name ));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -164,6 +164,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat
|
||||||
autexit(1);
|
autexit(1);
|
||||||
}
|
}
|
||||||
signame=losig->NAMECHAIN->DATA;
|
signame=losig->NAMECHAIN->DATA;
|
||||||
|
addsignalifnotexist( signame );
|
||||||
|
|
||||||
if (isvdd(signame) || isvss(signame)) continue;
|
if (isvdd(signame) || isvss(signame)) continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue