-
Hi, I'm trying to understand what went wrong while creating a new technology. To test my comprehension of the flow and everything that comes behind it, I made a simple new design, an 2 inputs nand gate. I've sucessfully used the gf180mcu technology to compile and have a .gds output of such design which is pretty simple. Where I don't undersstand what went wrong is when I try to use my own platform. First thing firsts, I am using a WSL Ubuntu machine, with a locally compiled OpenROAD-flow-scripts and OpenRoad gui. My platform is called 'amf' and has its own folder with everything in it : I am able to get up to step 5.1 and open-up the DB with OpenROAD gui. Sadly, it fails at step 5.2 with errors message I do not understand. ==========================================================================
global route report_design_area
--------------------------------------------------------------------------
Design area 5506 u^2 19% utilization.
[INFO FLW-0007] clock core_clock period 10.000000
[INFO FLW-0008] Clock core_clock period 4.433
[INFO FLW-0009] Clock core_clock slack 5.334
[WARNING STA-0450] virtual clock core_clock can not be propagated.
[INFO FLW-0011] Path endpoint path count 1
Elapsed time: 0:00.90[h:]min:sec. CPU time: user 0.84 sys 0.14 (109%). Peak memory: 506496KB.
Running detail_route.tcl, stage 5_2_route
Signal 11 received
Stack trace:
0# 0x0000563030AF0DF3 in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
1# 0x00007F37FA180330 in /lib/x86_64-linux-gnu/libc.so.6
2# odb::dbTrackGrid::getTechLayer() in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
3# odb::dbTrackGrid::getAverageTrackSpacing(int&, int&, int&) in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
4# grt::GlobalRouter::initGrid(int) in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
5# grt::GlobalRouter::initCoreGrid(int) in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
6# grt::GlobalRouter::initGridAndNets() in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
7# 0x0000563032F550B8 in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
8# grt::GlobalRouter::haveRoutes() in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
9# 0x0000563031316EF4 in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
10# TclNRRunCallbacks in /lib/x86_64-linux-gnu/libtcl8.6.so
11# 0x00007F37FEA786BC in /lib/x86_64-linux-gnu/libtcl8.6.so
12# Tcl_EvalEx in /lib/x86_64-linux-gnu/libtcl8.6.so
13# Tcl_Eval in /lib/x86_64-linux-gnu/libtcl8.6.so
14# sta::sourceTclFile(char const*, bool, bool, Tcl_Interp*) in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
15# 0x0000563030AF053F in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
16# Tcl_MainEx in /lib/x86_64-linux-gnu/libtcl8.6.so
17# main in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
18# 0x00007F37FA1651CA in /lib/x86_64-linux-gnu/libc.so.6
19# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
20# _start in /home/phars10/OPENROAD/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
Command terminated by signal 11
Elapsed time: 0:01.53[h:]min:sec. CPU time: user 0.59 sys 0.07 (43%). Peak memory: 137556KB.
make[1]: *** [Makefile:764: do-5_2_route] Error 139
make: *** [Makefile:762: results/amf/nand2_1/base/5_2_route.odb] Error 2 I checked other discussions that mentionned RAM usage, I do not think it is the issue since my design is only 4 gates with 2 inputs and 1 output. How could I go to debug the issue mentionned above? If you need additionnal info, feel free to comment. Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 10 replies
-
Do you have routing layers defined with tracks successfully generated? You can open the gui at an earlier step (eg |
Beta Was this translation helpful? Give feedback.
-
Likely you have a bad LEF abstract then. Is this something where you can share a test case? |
Beta Was this translation helpful? Give feedback.
-
Two layer routing harkens back to the days of channel routing. I don't know that it is your problem here but I expect routing will be difficult on this process. |
Beta Was this translation helpful? Give feedback.
-
I was reading this discussion here :#4165 I discovered that leaving a third metal layer that doesnt really exists in the LEF definition (with the via to access it) makes it that the routing is going more smoothly and the error is no more. It does seem that the router is not able to take only to layer as an input but is able to route on only 2 layers. |
Beta Was this translation helpful? Give feedback.
I was reading this discussion here :#4165
I discovered that leaving a third metal layer that doesnt really exists in the LEF definition (with the via to access it) makes it that the routing is going more smoothly and the error is no more.
It does seem that the router is not able to take only to layer as an input but is able to route on only 2 layers.