OpenLane icon indicating copy to clipboard operation
OpenLane copied to clipboard

scripts: add missing -exit flag to openroad -python call

Open proppy opened this issue 3 years ago • 1 comments

Fixes #1387

proppy avatar Sep 21 '22 16:09 proppy

Looking at the CI results, there doesn't seems to be a good way to pass the -exit flag for python script that consume arguments.

If placed after a -python SCRIPTNAME that takes arguments (https://github.com/The-OpenROAD-Project/OpenLane/actions/runs/3099512086/jobs/5018790378) it is processed by the python script itself:

Usage: lefutil.py get_metal_layers [OPTIONS] [LEFS]...
Try 'lefutil.py get_metal_layers --help' for help.

Error: No such option: -e

if placed before -python (https://github.com/The-OpenROAD-Project/OpenLane/actions/runs/3099596986/jobs/5018960704) is it not recognized as an valid option:

Unknown option: -e
usage: openroad [option] ... [-c cmd | -m mod | file | -] [arg] ...

Marking this PR as draft until we resolve all discussions on https://github.com/The-OpenROAD-Project/OpenROAD/pull/2288.

proppy avatar Sep 21 '22 17:09 proppy

Pardon, but would you please take a look at regression test tests/1007?

donn avatar Sep 23 '22 00:09 donn

@donn is there a way to pull the logs for the failing test from the CI? or does one need to run the same test locally?

proppy avatar Sep 27 '22 12:09 proppy

Here is the failure I get when running the regression suite locally:

OpenLane 💀 cat ./regression_results/issue_regression_1007.log
OpenLane bf0e83e509d0810d50d5d3579af61ce8916a8504
All rights reserved. (c) 2020-2022 Efabless Corporation and contributors.
Available under the Apache License, version 2.0. See the LICENSE file for more details.

[INFO]: Using configuration in 'tests/1007/config.tcl'...
[INFO]: PDK Root: /usr/local/google/home/proppy/src/github.com/The-OpenROAD-Project/OpenLane/pdks
[INFO]: Process Design Kit: sky130A
[INFO]: Standard Cell Library: sky130_fd_sc_hd
[INFO]: Optimization Standard Cell Library: sky130_fd_sc_hd
[INFO]: Run Directory: /openlane/tests/1007/runs/RUN_2022.09.28_02.17.08
[INFO]: Preparing LEF files for the nom corner...
[INFO]: Preparing LEF files for the min corner...
[INFO]: Preparing LEF files for the max corner...
[ERROR]: during executing openroad script /openlane/scripts/openroad/insert_buffer.tcl
[ERROR]: Log: tests/1007/runs/RUN_2022.09.28_02.17.08/logs/routing/0-insert_buffer.log
[ERROR]: Last 10 lines:
OpenROAD 5e557eeb13dcbc19a167fb7c00d06006db9c9433 
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
incompatible database schema revision
child process exited abnormally

proppy avatar Sep 28 '22 02:09 proppy

incompatible database schema revision

seems to come from https://github.com/The-OpenROAD-Project/OpenROAD/blob/816cfe95a0c90dc7fe0395c000327b3aa6babf96/src/odb/src/db/dbDatabase.cpp#L308-L314

so I'd suspect that https://github.com/The-OpenROAD-Project/OpenLane/blob/master/tests/1007/in.odb has to be regenerated?

proppy avatar Sep 28 '22 02:09 proppy

Looks that the failure is due to a recent schema version bump: https://github.com/The-OpenROAD-Project/OpenROAD/commit/6bea861cdb640856a643d8e7c42cb64feed3ab0a

That happened since the last time openroad_app got bumped https://github.com/The-OpenROAD-Project/OpenLane/commit/ae089d8da840644f77d60eeeae7695c3f1948d7f

proppy avatar Sep 28 '22 02:09 proppy

I was able to migrate the .def file from version 56 to version 57 using the following methodology:

  • install the most recent build of openroad preceding https://github.com/The-OpenROAD-Project/OpenROAD/pull/2267 (schema version 56) from https://anaconda.org/LiteX-Hub/openroad/files
  • read in.odb using the openroad -python; write a def
  • install the first build of openroad following https://github.com/The-OpenROAD-Project/OpenROAD/pull/2288 (schema version 57) from https://anaconda.org/LiteX-Hub/openroad/files
  • read the def; write the updated in.odb file

see this notebook: https://colab.research.google.com/gist/proppy/a60669f58245da3dd55646c525850f52/migrate-opendb-versions.ipynb

After that the failing test now passes:

Running test case: 1007 (log: ./regression_results/issue_regression_1007.log)
1007 completed successfully.

@donn @maliberty @QuantamHD let me know if there is a better way to handle ODB schema conversion.

proppy avatar Sep 28 '22 04:09 proppy

@maliberty @donn @QuantamHD relaunched the CI the arm64v8 which timeout'ed after 6h.

proppy avatar Oct 04 '22 23:10 proppy

CI failure

Done.

proppy avatar Oct 05 '22 02:10 proppy

@donn did you manage to work around the arm64 build timeout issue?

proppy avatar Oct 19 '22 14:10 proppy

@proppy I just manually built and pushed the arm64 binaries for OpenROAD

donn avatar Oct 19 '22 20:10 donn