diff --git a/alliance/src/boog/configure.in b/alliance/src/boog/configure.in index 7be89c10..673a2d80 100644 --- a/alliance/src/boog/configure.in +++ b/alliance/src/boog/configure.in @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/bog_main.c) BOOG_MAJOR_VERSION=1 -BOOG_MINOR_VERSION=4 +BOOG_MINOR_VERSION=5 BOOG_VERSION=$BOOG_MAJOR_VERSION.$BOOG_MINOR_VERSION AC_SUBST(BOOG_MAJOR_VERSION) diff --git a/alliance/src/boog/src/bog_main.c b/alliance/src/boog/src/bog_main.c index bf647eda..938a284c 100644 --- a/alliance/src/boog/src/bog_main.c +++ b/alliance/src/boog/src/bog_main.c @@ -250,7 +250,7 @@ extern int main (int argc, char* argv[]) autenv(); /*hash table*/ bddenv(); /*for vhdlloadbefig() */ - alliancebanner_with_authors("BooG", VERSION " [2002/02/11]", "Binding and Optimizing On Gates", + alliancebanner_with_authors("BooG", VERSION " [2002/04/15]", "Binding and Optimizing On Gates", "2000", ALLIANCE_VERSION, "François Donnet"); /*alliance env: extension netlist file (vst or al)*/ diff --git a/alliance/src/boog/src/bog_map_abl.c b/alliance/src/boog/src/bog_map_abl.c index 85cd9a2d..80c7f7fb 100644 --- a/alliance/src/boog/src/bog_map_abl.c +++ b/alliance/src/boog/src/bog_map_abl.c @@ -95,7 +95,9 @@ static losig_list* loc_map_abl(lofig_list *lofig, chain_list *abl) losig_list* losig; port_list* port, *top; chain_list* sigchain = NULL, *new, *pred=NULL; + char* name; char* insname; + char* signame; chain_list* namechain; cell_list* cell; losig_list* output_losig; @@ -117,12 +119,14 @@ static losig_list* loc_map_abl(lofig_list *lofig, chain_list *abl) /*cell->PORT contains the result of pattern matching*/ cell=cell_pattern(abl); - insname=getnameindex(cell->NAME); - putdelay(loins_name(insname),cell->DELAY); /*delay for loins*/ - putdelay(insname,cell->DELAY); /*delay for new signal*/ + name=getnameindex(cell->NAME); + signame=losig_name(name); + insname=loins_name(name); + putdelay(insname,cell->DELAY); /*delay for loins*/ + putdelay(signame,cell->DELAY); /*delay for new signal*/ /*output_losig */ - namechain=addchain(NULL,insname); + namechain=addchain(NULL,signame); output_losig=addlosig(lofig, getindex(), namechain, INTERNAL); top=copyport(cell->PORT); /*not to be disturb by recursion*/ @@ -176,6 +180,7 @@ extern void map_abl(lofig_list *lofig, chain_list *abl, losig_list *output_losig port_list* port, *top; chain_list* sigchain = NULL, *new, *pred=NULL; char* insname; + char* signame; cell_list* cell; int master; @@ -195,8 +200,9 @@ extern void map_abl(lofig_list *lofig, chain_list *abl, losig_list *output_losig /*search buffer, one or zero constant*/ cell=cell_pattern(abl); - insname=(char*)output_losig->NAMECHAIN->DATA; - putdelay(loins_name(insname),cell->DELAY); /*delay for loins*/ + signame=(char*)output_losig->NAMECHAIN->DATA; + insname=loins_name(signame); + putdelay(insname,cell->DELAY); /*delay for loins*/ top=copyport(cell->PORT); /*not to be disturb by recursion*/ for (port=top; port; port=port->NEXT) { @@ -280,8 +286,10 @@ extern void map_bus(lofig_list* lofig, biabl_list* biabl, losig_list* output_los SEPAR='_'; insname=concatname((char*)output_losig->NAMECHAIN->DATA,insname); SEPAR=memo; - } - putdelay(loins_name(insname),cell->DELAY); /*delay for loins*/ + } + + insname=loins_name(insname); + putdelay(insname,cell->DELAY); /*delay for loins*/ top=copyport(cell->PORT); for (port=top; port; port=port->NEXT) { @@ -372,8 +380,9 @@ extern void map_register(lofig_list* lofig, biabl_list* biabl, losig_list* outpu insname=concatname((char*)output_losig->NAMECHAIN->DATA,insname); SEPAR=memo; } - - putdelay(loins_name(insname),cell->DELAY); /*delay for loins*/ + + insname=loins_name(insname); + putdelay(insname,cell->DELAY); /*delay for loins*/ top=copyport(cell->PORT); for (port=top; port; port=port->NEXT) { diff --git a/alliance/src/boog/src/bog_signal_delay.c b/alliance/src/boog/src/bog_signal_delay.c index ab237c2a..7157e641 100644 --- a/alliance/src/boog/src/bog_signal_delay.c +++ b/alliance/src/boog/src/bog_signal_delay.c @@ -165,7 +165,7 @@ static ptype_list* search_long_path(loins_list* loins, befig_list* befig) || locon->TYPE==EXTERNAL) continue; loins_aux=locon->ROOT; if (loins_aux==loins) continue; - delay=getdelay(loins_name(loins_aux->INSNAME)); + delay=getdelay(loins_aux->INSNAME); if (delay>max_delay) { best_loins=loins_aux; max_delay=delay; @@ -191,7 +191,8 @@ extern ptype_list* max_delay_path(befig_list* befig, lofig_list* lofig) { ptype_list* head, *path; loins_list* loins; - + char *insname; + if (!befig) { fprintf(stderr,"max_delay_path: NULL pointer\n"); exit(1); @@ -204,10 +205,11 @@ extern ptype_list* max_delay_path(befig_list* befig, lofig_list* lofig) if (head) { /*search instance which begins*/ for (loins=lofig->LOINS; loins; loins=loins->NEXT) { - if ((char*) head->DATA==loins->INSNAME) break; + insname=loins_name(head->DATA); + if (insname==loins->INSNAME) break; } if (!loins) { - fprintf(stderr,"max_delay_path: no loins '%s' found\n",(char*) head->DATA); + fprintf(stderr,"max_delay_path: no loins '%s' found\n", insname); exit(1); } path=search_long_path(loins, befig); diff --git a/alliance/src/boog/src/bog_signal_nameindex.c b/alliance/src/boog/src/bog_signal_nameindex.c index 3a4b4769..d5bf235a 100644 --- a/alliance/src/boog/src/bog_signal_nameindex.c +++ b/alliance/src/boog/src/bog_signal_nameindex.c @@ -39,10 +39,10 @@ #include "bog_signal_nameindex.h" -#define MBK_NOT namealloc("MBK_NOT") -#define MBK_SIG namealloc("MBK_SIG") -#define MBK_OUT namealloc("MBK_OUT") -#define MBK_INS namealloc("MBK_INS") +#define MBK_NOT namealloc("not") +#define MBK_SIG namealloc("sig") +#define MBK_OUT namealloc("out") +#define MBK_INS namealloc("ins") #define BLOCK 1024 /*table of used name*/ @@ -163,6 +163,17 @@ extern char* getoppositename(char* name) /* build a generic name with an incremented index */ /******************************************************************************/ extern char* getautoname(char* name) +{ + name=losig_name(name); + + return getnameindex(name); +} + + +/******************************************************************************/ +/* return an artificial name to distinguish loins from signal */ +/******************************************************************************/ +extern char* losig_name(char* name) { char memo_char; @@ -170,10 +181,10 @@ extern char* getautoname(char* name) memo_char=SEPAR; /*external value from MBK environment*/ SEPAR='_'; - name=concatname(MBK_SIG,name); + name=concatname(name,MBK_SIG); SEPAR=memo_char; - return getnameindex(name); + return name; } @@ -189,7 +200,7 @@ extern char* loins_name(char* name) memo_char=SEPAR; /*external value from MBK environment*/ SEPAR='_'; - name=concatname(MBK_INS,name); + name=concatname(name,MBK_INS); SEPAR=memo_char; return name; @@ -209,8 +220,8 @@ extern char* output_name(char* name) memo_char=SEPAR; /*external value from MBK environment*/ SEPAR='_'; - name=concatname(MBK_SIG,name); - name=concatname(MBK_OUT,name); + name=concatname(name,MBK_SIG); + name=concatname(name,MBK_OUT); SEPAR=memo_char; return name; diff --git a/alliance/src/boog/src/bog_signal_nameindex.h b/alliance/src/boog/src/bog_signal_nameindex.h index 94da9e8d..1ac5e186 100644 --- a/alliance/src/boog/src/bog_signal_nameindex.h +++ b/alliance/src/boog/src/bog_signal_nameindex.h @@ -69,6 +69,11 @@ extern char* getoppositename __P ((char* name)); /******************************************************************************/ extern char* getautoname __P ((char* name)); +/******************************************************************************/ +/* return an artificial name to distinguish loins from signal */ +/******************************************************************************/ +extern char* losig_name(char* name); + /******************************************************************************/ /* return an artificial name to distinguish loins from signal */ /* only used to hash values for internal treatment */ diff --git a/alliance/src/boog/src/bog_xsch_driver.c b/alliance/src/boog/src/bog_xsch_driver.c index d47c47d1..f4d73905 100644 --- a/alliance/src/boog/src/bog_xsch_driver.c +++ b/alliance/src/boog/src/bog_xsch_driver.c @@ -260,7 +260,7 @@ extern void save_xsch(FILE* xsch_stream, lofig_list* lofig, ptype_list* long_pat losig=locon->SIG; signame=losig->NAMECHAIN->DATA; - delay=getdelay(loins_name(loins->INSNAME)); + delay=getdelay(loins->INSNAME); switch (color_mode) { case XSCH_GRADIENT: color=gradient_color(delay,gradient); break;