Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

graywolf crashes #4

Open
Fatsie opened this issue Nov 1, 2015 · 2 comments
Open

graywolf crashes #4

Fatsie opened this issue Nov 1, 2015 · 2 comments

Comments

@Fatsie
Copy link
Contributor

Fatsie commented Nov 1, 2015

I am running graywolf as part of qflow. graywolf 0.1.2 installed from git source crashes.
It crashes in TimberWolfSC:

verhaegs@vps2:~/eda/SuskaIII_vhdl_2K15A/qflow_osu050$ /home/verhaegs/.local/xstow/graywolf-0.1.2/lib/graywolf/bin/TimberWolfSC -dv WF68K00IP_ALU


TimberWolfSC switches:
debug on
Graphics mode on
Verbose mode on

TimberWolfSC version:v6.0 date:Mon May 25 21:19:07 EDT 1992
Row-Based Placement and Global Routing Program
Authors: Carl Sechen, Kai-Win Lee, and Bill Swartz,
     Yale University
...
[add_swap_group]:Implicit swap group <Z_bF$pin> created
[add_swap_group]:Implicit swap group <sub_702_36.$abc$50871$n599_bF$pin> created
[add_swap_group]:Implicit swap group <sub_702_36.$abc$50871$n608_bF$pin> created
[add_swap_group]:Implicit swap group <sub_702_36.$abc$50871$n622_1_bF$pin> created
[add_swap_group]:Implicit swap group <sub_702_36.$abc$50871$n619_bF$pin> created
[add_extra_cells]:Added 610 spacer cells to the gate array
WARNING[findcost]:Net <gnd> has 2513 pins
WARNING[findcost]:Net <vdd> has 190 pins
Segmentation fault (core dumped)

It seems to crash in gate_swap:

verhaegs@vps2:~/eda/SuskaIII_vhdl_2K15A/qflow_osu050$ gdb /home/verhaegs/.local/xstow/graywolf-0.1.2/lib/graywolf/bin/TimberWolfSC core
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/verhaegs/.local/xstow/graywolf-0.1.2/lib/graywolf /bin/TimberWolfSC...done.
[New LWP 21859]

warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
Core was generated by `/home/verhaegs/.local/xstow/graywolf-0.1.2/lib/graywolf/bin/TimberWolfSC -dv WF'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000445e2d in gate_swap (between_two_cells=0, sgidxa=0, sgidxb=0)
    at /home/verhaegs/compile/graywolf/src/twsc/gateswap.c:139
139     term_list2 = term_list2->next_grp;
(gdb) list
134     term_list1 = term_list1->next_grp;
135     }
136 
137     term_list2 = term;
138     while (pg2 > 1) {
139     term_list2 = term_list2->next_grp;
140     }
141 }
142 
143 for( term1 = term_list1 ; term1 != NULL ; term1 = term1->next ) {
 (gdb) p term_list2
 $1 = (PINLIST *) 0x0
 (gdb) bt
 #0  0x0000000000445e2d in gate_swap (between_two_cells=0, sgidxa=0, sgidxb=0)
    at /home/verhaegs/compile/graywolf/src/twsc/gateswap.c:139
#1  0x000000000044bb89 in uloop () at /home/verhaegs/compile/graywolf/src/twsc/uloop.c:369
#2  0x000000000043e1f5 in from_beginning () at /home/verhaegs/compile/graywolf/src/twsc/utemp.c:276
#3  0x000000000043dbf5 in utemp () at /home/verhaegs/compile/graywolf/src/twsc/utemp.c:130
#4  0x0000000000435a4e in main (argc=3, argv=0x7fffa5a4e6b8)
    at /home/verhaegs/compile/graywolf/src/twsc/main.c:444

It happens with both osu035, osu050 technology used from qflow.
I tried to hack it away with the following diff but this makes to program go in infinite loop:

----------------------------- src/twsc/gateswap.c -----------------------------
index 0222073..bde117b 100644
@@ -131,11 +131,13 @@ if( between_two_cells ) {

     term_list1 = term;
     while (pg1 > 1) {
+        if (term_list1->next_grp == NULL) break;
         term_list1 = term_list1->next_grp;
     }

     term_list2 = term;
     while (pg2 > 1) {
+        if (term_list2->next_grp == NULL) break;
         term_list2 = term_list2->next_grp;
     }
 }

Any extra generated files I should upload ?
original .v file I would like to not make public; can send it by email on request.

@Fatsie
Copy link
Contributor Author

Fatsie commented Nov 3, 2015

The suspicious while statement seem to be introduced in a patch from Tim: 12fde35

@StefanBruens
Copy link
Contributor

@Fatsie can you make your design available, or even better try to create a stripped down one showing this issue?

@synaption synaption mentioned this issue Jan 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants