The-OpenROAD-Project / OpenLane

OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen and custom methodology scripts for design exploration and optimization.
https://openlane.readthedocs.io/
Apache License 2.0
1.31k stars 368 forks source link

Crash in resizer #2065

Closed thesourcerer8 closed 9 months ago

thesourcerer8 commented 9 months ago

Description

[STEP 12] [INFO]: Running Placement Resizer Design Optimizations (log: ../home/philipp/libresilicon/StdCellLib/Catalog/gf180_stdcelllib_1/openlane/user_proj_example/runs/23_12_11_20_54/logs/placement/12-resizer.log)... [ERROR]: during executing openroad script /openlane/scripts/openroad/resizer.tcl [ERROR]: Log: ../home/philipp/libresilicon/StdCellLib/Catalog/gf180_stdcelllib_1/openlane/user_proj_example/runs/23_12_11_20_54/logs/placement/12-resizer.log [ERROR]: Last 10 lines: 41# 0x00007FA4DB39FF1E in /lib64/libtcl8.5.so 42# Tcl_EvalEx in /lib64/libtcl8.5.so 43# Tcl_Eval in /lib64/libtcl8.5.so 44# sta::sourceTclFile(char const, bool, bool, Tcl_Interp) in openroad 45# ord::tclAppInit(Tcl_Interp*) in openroad 46# Tcl_Main in /lib64/libtcl8.5.so 47# main in openroad 48# __libc_start_main in /lib64/libc.so.6 49# 0x0000000000D3DC77 in openroad child killed: segmentation violation

[ERROR]: Creating issue reproducible... [INFO]: Saving runtime environment...

Expected Behavior

It should run without crashing

Environment report

Kernel: Linux v6.2.0-39-generic
Distribution: ubuntu 22.04
Python: v3.10.12 (OK)
Container Engine: docker v24.0.5 (OK)
OpenLane Git Version: 7ea7a2aeef4bea5445d133c26ca2b3e9f0d0c78f
pip: INSTALLED
python-venv: INSTALLED
---
PDK Version Verification Status: FAILED
/home/philipp/libresilicon/StdCellLib/Catalog/gf180_stdcelllib_1/dependencies/openlane_src/pdks/sky130A not found.
Traceback (most recent call last):
  File "/home/philipp/libresilicon/StdCellLib/Catalog/gf180_stdcelllib_1/dependencies/openlane_src/dependencies/verify_versions.py", line 75, in verify_versions
    raise Exception(f"{pdk_dir} not found.")
Exception: /home/philipp/libresilicon/StdCellLib/Catalog/gf180_stdcelllib_1/dependencies/openlane_src/pdks/sky130A not found.

Failed to verify sky130A.
---
Git Log (Last 3 Commits)

7ea7a2a 2023-10-15T17:01:59+03:00 Fix `FP_PIN_ORDER_CFG` being overriden (#2017) - Kareem Farid -  (grafted, HEAD, tag: 2023.10.16)
---
Git Remotes

origin  https://github.com/The-OpenROAD-Project/OpenLane (fetch)
origin  https://github.com/The-OpenROAD-Project/OpenLane (push)

Reproduction material

issue_reproducible.zip

Relevant log output

INFO]: Setting RC values...
[INFO RSZ-0027] Inserted 25 input buffers.
[INFO RSZ-0028] Inserted 8 output buffers.
Signal 11 received
Stack trace:
 0# 0x0000000000D44DF7 in openroad
 1# 0x00007FA4D686A400 in /lib64/libc.so.6
 2# sta::LibertyCell::bufferPorts(sta::LibertyPort*&, sta::LibertyPort*&) const in openroad
 3# rsz::Resizer::findBufferTargetSlews(sta::LibertyCell*, sta::Pvt const*, float*, int*) in openroad
 4# rsz::Resizer::findBufferTargetSlews() in openroad
 5# rsz::Resizer::findTargetLoads() in openroad
 6# rsz::Resizer::findMaxWireLength() in openroad
 7# 0x0000000000E81E64 in openroad
 8# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
 9# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
10# TclObjInterpProcCore in /lib64/libtcl8.5.so
11# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
12# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
13# TclObjInterpProcCore in /lib64/libtcl8.5.so
14# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
15# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
16# 0x00007FA4DB3EB647 in /lib64/libtcl8.5.so
17# TclEvalObjEx in /lib64/libtcl8.5.so
18# 0x00007FA4DB3A9F00 in /lib64/libtcl8.5.so
19# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
20# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
21# 0x00007FA4DB3EB647 in /lib64/libtcl8.5.so
22# TclEvalObjEx in /lib64/libtcl8.5.so
23# 0x00007FA4DB42627F in /lib64/libtcl8.5.so
24# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
25# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
26# 0x00007FA4DB3EB647 in /lib64/libtcl8.5.so
27# TclEvalObjEx in /lib64/libtcl8.5.so
28# 0x00007FA4DB3A61D0 in /lib64/libtcl8.5.so
29# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
30# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
31# 0x00007FA4DB3EB647 in /lib64/libtcl8.5.so
32# TclEvalObjEx in /lib64/libtcl8.5.so
33# 0x00007FA4DB3A9F00 in /lib64/libtcl8.5.so
34# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
35# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
36# TclObjInterpProcCore in /lib64/libtcl8.5.so
37# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
38# 0x00007FA4DB3E336C in /lib64/libtcl8.5.so
39# TclObjInterpProcCore in /lib64/libtcl8.5.so
40# 0x00007FA4DB39EEB2 in /lib64/libtcl8.5.so
41# 0x00007FA4DB39FF1E in /lib64/libtcl8.5.so
42# Tcl_EvalEx in /lib64/libtcl8.5.so
43# Tcl_Eval in /lib64/libtcl8.5.so
44# sta::sourceTclFile(char const*, bool, bool, Tcl_Interp*) in openroad
45# ord::tclAppInit(Tcl_Interp*) in openroad
46# Tcl_Main in /lib64/libtcl8.5.so
47# main in openroad
48# __libc_start_main in /lib64/libc.so.6
49# 0x0000000000D3DC77 in openroad
thesourcerer8 commented 9 months ago

I have tried removing my own liberty file from EXTRA_LIBS , but it still reproducibly crashes even without my own liberty file in exactly the same way.

maliberty commented 9 months ago

Would you pack a test case without your libs?

thesourcerer8 commented 9 months ago

issue_reproducible.zip

maliberty commented 9 months ago

It still has your cells in it

thesourcerer8 commented 9 months ago

issue_reproducible.zip I have removed them from the Verilog now, but they are still in the LEFs. I'll try to remove those as well.

thesourcerer8 commented 9 months ago

issue_reproducible.zip Ok, here is the issue without the cells.

maliberty commented 9 months ago

With the last reproducible and OR 41f53d4db9aea7fb40cda4db376fd1591ec4b027 (yesterday) I get no crash.