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 370 forks source link

Yosys Tool Crashing at "Executing ABC" with no errorcode #2152

Open krupatishbi opened 1 week ago

krupatishbi commented 1 week ago

Description

I keep encountering this error when trying to run any of my designs through OpenLane:

[ERROR]: during executing yosys script /openlane/scripts/yosys/synth.tcl
[ERROR]: Log: designs/snncore/runs/fullguide15/logs/synthesis/1-synthesis.log
[ERROR]: Last 10 lines:

52.5. Finished fast OPT passes.

53. Executing ABC pass (technology mapping using ABC).

53.1. Extracting gate netlist of module `\snncore' to `<abc-temp-dir>/input.blif'..
Extracted 782930 gates and 1134376 wires to a netlist network with 351444 inputs and 76648 outputs.

53.1.1. Executing ABC.
child killed: kill signal

[ERROR]: Creating issue reproducible...

There is no error code or anything in the synthesis error or warning logs, they are empty. But for some reason, ABC tool is not working for this.

Expected Behavior

The ABC tool shouldn't crash/exit for no reason.

Environment report

Failed to get distribution info.
Kernel: Linux v6.8.0-40-generic
Python: v3.11.9 (OK)
Critical Alert: No Docker or Docker-compatible container engine was found.
OpenLane Git Version: 679d5bac408f3e2fc9f87aa22452b410eff425ed
python-venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

679d5ba 2024-08-06T15:23:24+03:00 Screw that, I guess - Mohamed Gaber -  (grafted, HEAD -> master, tag: 2024.08.07, origin/master, origin/HEAD)
---
Git Remotes

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

Reproduction material

issue_reproducible.zip

Relevant log output

OpenLane 679d5bac408f3e2fc9f87aa22452b410eff425ed
All rights reserved. (c) 2020-2023 Efabless Corporation and contributors.
Available under the Apache License, version 2.0. See the LICENSE file for more details.

[INFO]: Using configuration in 'designs/snncore/config.json'...
[INFO]: Process Design Kit: sky130A
[INFO]: PDK Root: /home/krupatishbi/.volare
[INFO]: Standard Cell Library: sky130_fd_sc_hd
[INFO]: Optimization Standard Cell Library: sky130_fd_sc_hd
[INFO]: Run Directory: /openlane/designs/snncore/runs/fullguide15
[INFO]: Removing existing /openlane/designs/snncore/runs/fullguide15...
[INFO]: Saving runtime environment...
[INFO]: Preparing LEF files for the nom corner...
[INFO]: Preparing LEF files for the min corner...
[INFO]: Preparing LEF files for the max corner...
[WARNING]: PNR_SDC_FILE is not set. It is recommended to write a custom SDC file for the design. Defaulting to BASE_SDC_FILE
[WARNING]: SIGNOFF_SDC_FILE is not set. It is recommended to write a custom SDC file for the design. Defaulting to BASE_SDC_FILE
[STEP 1]
[INFO]: Running Synthesis (log: designs/snncore/runs/fullguide15/logs/synthesis/1-synthesis.log)...
[ERROR]: during executing yosys script /openlane/scripts/yosys/synth.tcl
[ERROR]: Log: designs/snncore/runs/fullguide15/logs/synthesis/1-synthesis.log
[ERROR]: Last 10 lines:

52.5. Finished fast OPT passes.

53. Executing ABC pass (technology mapping using ABC).

53.1. Extracting gate netlist of module `\snncore' to `<abc-temp-dir>/input.blif'..
Extracted 782930 gates and 1134376 wires to a netlist network with 351444 inputs and 76648 outputs.

53.1.1. Executing ABC.
child killed: kill signal

[ERROR]: Creating issue reproducible...
[INFO]: Saving runtime environment...
OpenLane TCL Issue Packager

EFABLESS CORPORATION AND ALL AUTHORS OF THE OPENLANE PROJECT SHALL NOT BE HELD
LIABLE FOR ANY LEAKS THAT MAY OCCUR TO ANY PROPRIETARY DATA AS A RESULT OF USING
THIS SCRIPT. THIS SCRIPT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND.

BY USING THIS SCRIPT, YOU ACKNOWLEDGE THAT YOU FULLY UNDERSTAND THIS DISCLAIMER
AND ALL IT ENTAILS.

Parsing config file(s)…
Setting up /openlane/designs/snncore/runs/fullguide15/issue_reproducible…
Done.
[INFO]: Reproducible packaged: Please tarball and upload 'designs/snncore/runs/fullguide15/issue_reproducible' if you're going to submit an issue.
[ERROR]: Step 1 (synthesis) failed with error:
-code 1 -level 0 -errorstack {INNER {invokeStk1 throw_error} CALL {run_tcl_script -tool yosys -no_consume /openlane/scripts/yosys/synth.tcl -indexed_log /openlane/designs/snncore/runs/fullguide15/logs/synthesis/1-synthesis.log} CALL {run_yosys_script /openlane/scripts/yosys/synth.tcl -indexed_log /openlane/designs/snncore/runs/fullguide15/logs/synthesis/1-synthesis.log} CALL {run_yosys -indexed_log /openlane/designs/snncore/runs/fullguide15/logs/synthesis/1-synthesis.log} CALL run_synthesis CALL {run_non_interactive_mode -design ./designs/snncore -tag fullguide15 -overwrite}} -errorcode NONE -errorinfo {
    while executing
"throw_error"
    (procedure "run_tcl_script" line 219)
    invoked from within
"run_tcl_script -tool yosys -no_consume {*}$args"
    (procedure "run_yosys_script" line 2)
    invoked from within
"run_yosys_script $::env(SYNTH_SCRIPT) -indexed_log $arg_values(-indexed_log)"
    (procedure "run_yosys" line 40)
    invoked from within
"run_yosys -indexed_log $log"
    (procedure "run_synthesis" line 13)
    invoked from within
"run_synthesis"} -errorline 1
[INFO]: Saving current set of views in 'designs/snncore/runs/fullguide15/results/final'...
[INFO]: Generating final set of reports...
[ERROR]: Failed to create manufacturability and metric reports:
[ERROR]: Traceback (most recent call last):
  File "/openlane/scripts/generate_reports.py", line 184, in <module>
    cli()
  File "/nix/store/vr8dx2vs7nhz4cz2vfyypx69vbwwrmk5-python3-3.11.9-env/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/vr8dx2vs7nhz4cz2vfyypx69vbwwrmk5-python3-3.11.9-env/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/nix/store/vr8dx2vs7nhz4cz2vfyypx69vbwwrmk5-python3-3.11.9-env/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/vr8dx2vs7nhz4cz2vfyypx69vbwwrmk5-python3-3.11.9-env/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/openlane/scripts/generate_reports.py", line 51, in cli
    report = Report(design, tag, design_name, params, run_path).get_report()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/openlane/scripts/report/report.py", line 809, in get_report
    *self.extract_all_values(),
     ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/openlane/scripts/report/report.py", line 359, in extract_all_values
    power_report = Artifact(
                   ^^^^^^^^^
  File "/openlane/scripts/report/report.py", line 62, in __init__
    self.pathname = matches[0]
                    ~~~~~~~^^^
IndexError: list index out of range
[INFO]: Saving runtime environment...
[ERROR]: Flow failed.
donn commented 3 days ago

ABC appears to have simply run out of memory. I ran this design on my computer and ABC used up to 6 GB of RAM.

This is sadly just the case for designs of this size. How much RAM do you have?