Booshan
10/30/2021, 6:37 AMmake -j8 user_proj_example
, I get this:
###############################################
[INFO]:
___ ____ ___ ____ _ ____ ____ ___
/ \ | \ / _]| \ | | / || \ / _]
| | | o ) [_ | _ || | | o || _ | / [_
| O | | _/ _]| | || |___ | || | || _]
| | | | | [_ | | || || _ || | || [_
\___/ |__| |_____||__|__||_____||__|__||__|__||_____|
[INFO]: Version: N/A
[INFO]: Running non-interactively
[INFO]: Using design configuration at /project/openlane/user_proj_example/config.tcl
[INFO]: Sourcing Configurations from /project/openlane/user_proj_example/config.tcl
[INFO]: PDKs root directory: /home/booshan/OpenEDA
[INFO]: PDK: sky130A
[INFO]: Setting PDKPATH to /home/booshan/OpenEDA/sky130A
[INFO]: Standard Cell Library: sky130_fd_sc_hvl
[INFO]: Optimization Standard Cell Library is set to: sky130_fd_sc_hvl
[INFO]: Sourcing Configurations from /project/openlane/user_proj_example/config.tcl
[WARNING]: Removing exisiting run /project/openlane/user_proj_example/runs/user_proj_example
[INFO]: Current run directory is /project/openlane/user_proj_example/runs/user_proj_example
[INFO]: Preparing LEF Files
[INFO]: Extracting the number of available metal layers from /home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/techlef/sky130_fd_sc_hvl.tlef
[INFO]: The number of available metal layers is 6
[INFO]: The available metal layers are li1 met1 met2 met3 met4 met5
[INFO]: Merging LEF Files...
mergeLef.py : Merging LEFs
sky130_fd_sc_hvl.lef: SITEs matched found: 0
sky130_fd_sc_hvl.lef: MACROs matched found: 69
mergeLef.py : Merging LEFs complete
[INFO]: Trimming Liberty...
[INFO]: Generating Exclude List...
error copying " /home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30.lib /home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30_lv1v80.lib ": no such file or directory
while executing
"file copy -force $::env(LIB_SYNTH_COMPLETE) $::env(LIB_RESIZER_OPT)"
(procedure "prep" line 202)
invoked from within
"prep {*}$args"
(procedure "run_non_interactive_mode" line 14)
invoked from within
"run_non_interactive_mode {*}$argv"
invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
puts_info "Running interactively"
if { [info exists arg_values(-file)..."
(file "/openlane/flow.tcl" line 356)
make: *** [Makefile:43: user_proj_example] Error 1
Why does it say [INFO]: Version: N/A
? I recently updated my caravel_user_project
, OpenLANE
, skywater-pdk
and open-pdks
to the latest required versions.
I also don't understand why it says error copying " /home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30.lib /home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30_lv1v80.lib ": no such file or directory
. When I check manually, the file is there.
For your information, when I run python3 ./env.py issue-survey
, this is what it gives:
0 1
2 3
4 5
Python: v3.8.10
Kernel: Linux v5.11.0-37-generic
Distribution: ubuntu 20.04
Container Engine: docker v20.10.8
OpenLane Git Version: 2021.10.25_20.35.00
---
PDK Version Verification Status: OK
---
Git Log (Last 5 Commits)
commit e8f4a88f668b366f126bba40861153bf478a33c1
Author: Donn <me@donn.website>
Date: Mon Oct 25 20:32:41 2021 +0200
Last Minute Fixes for MPW3 (#675)
commit 003992ec399fded0eca7bdc88c54f6a86938c7be
Author: Manar <manarabdelatty@aucegypt.edu>
Date: Mon Oct 25 09:44:59 2021 -0500
Update timing signoff methodology (#674)
- Removed the `-min/-max` options from read_liberty since they shouldn't be used for modeling different process corners (<https://github.com/The-OpenROAD-Project/OpenLane/issues/671>).
- Updated the base SDC file to include information about clock uncertainty, clock transition, and timing derate.
- Updated the timing/design optimizations to be done at the typical corner.
- Updated the STA script to generate the SDF file after the routing is concluded.
- Updated the STA script to report more information like clock skew, worst slack, power, area.
- Added some fixes to the report generation to retain the log file index so that we can easily keep track of when the reports are generated.
commit 6d85a85eac1a1b97a7f07f4992d162054690cbda
Author: Donn <me@donn.website>
Date: Mon Oct 25 14:45:52 2021 +0200
Docker Overhaul (#673)
This makes a number of internal improvements to the docker build process.
* A common build base
This common build base utilizes the dependency list outlined in `/dependencies` for both yum and pip, with the exception of cu-gr and dr-cu which use an... interesting (read: obtuse) build system. Speaking of...
* A pre-compile dependency list
This allows for the installing of dependencies that may need to be needed to compile *other* dependencies, incl. wheel, pyinstaller, devtoolset, etc.
* Builds now use tarballs
Git is no longer used, saving us the time needed to check out the *entire commit history every single time we build.* To handle submodules, I wrote a special script. Only OpenROAD uses submodules anyhow.
* Rewrote final image
The final image's Dockerfile was a mess. The new one also uses the dependency list and is better organized.
* OpenLane is now mounted to `/openlane` instead of `/openLANE_flow`
We don't really use `openLANE`, branding was settled on `OpenLane`, except I think it's better for everyone's sanity if I avoid capital letters altogether.
commit 678cf7c901bf79a589f2eede4b425e7487bde51c
Author: Donn <me@donn.website>
Date: Mon Oct 25 13:32:02 2021 +0200
Clarify whether the issue template is a suggestion or not (#672)
(its not) [skip ci]
commit 2e6f34032f673d22b3ccac0e208882d1b542e6d3
Author: Donn <me@donn.website>
Date: Fri Oct 22 16:17:54 2021 +0200
Fix RTD link [skip ci] (#668)
Thanks.Vijayan Krishnan
10/30/2021, 7:35 AMBooshan
10/30/2021, 8:14 AM.bashrc
file and when I echo those variables, I get the right path.Mitch Bailey
10/30/2021, 10:05 AM/home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30.lib /home/booshan/OpenEDA/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30_lv1v80.lib
. I don't know if it's a problem on your end or with the hvl
library setup.Booshan
10/30/2021, 10:49 AM/sky130_fd_sc_hvl/lib
the two named files are there. But how do you say they are being treated as one?Mitch Bailey
10/30/2021, 12:22 PMLIB_SYNTH
and LIB_SYNTH_COMPLETE
set to?Booshan
10/30/2021, 12:29 PMconfig.tcl
file, I don't find them. I have only set this:
set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hvl"
As far as I know, a config.tcl
file is generated when the flow starts with all the configuration variables set. But that is not being generated in my case because the run stops immediately after it starts.Mitch Bailey
10/30/2021, 12:38 PMBooshan
10/30/2021, 1:03 PMsky130_fd_sc_hd
, I get the GDS and flow is complete with zero violations. So, I think it is the issue with the library. Do you suggest I open an issue on the github repo? Because Manar Abdelatty told me to do so earlier. But I did not have an updated version of Openlane. So, I updated and tried it now.Mitch Bailey
10/30/2021, 1:39 PMscripts/tcl_commands/all.tcl
.
# trim resizer library
if { ! [info exists ::env(LIB_RESIZER_OPT) ] } {
set ::env(LIB_RESIZER_OPT) $::env(TMP_DIR)/resizer.lib
file copy -force $::env(LIB_SYNTH_COMPLETE) $::env(LIB_RESIZER_OPT) <- Attempt to copy list of files
if { $::env(STD_CELL_LIBRARY_OPT) != $::env(STD_CELL_LIBRARY) } {
set opt_lib $::env(TMP_DIR)/resizer_optlib.lib
file copy -force $::env(LIB_SYNTH_OPT) $opt_lib
lappend $::env(LIB_RESIZER_OPT) $::env(LIB_SYNTH_OPT)
}
}
First LIB_RESIZER_OPT
is set to an empty file name resizer.lib
.
Then an attempt to copy LIB_SYNTH_COMPLETE
to this empty file is made. However, with the hvl
library, it looks like LIB_SYNTH_COMPLETE
is a list (this is what causes your error).
Later, it looks like LIB_RESIZER_OPT
is treated as a list when LIB_SYNTH_OPT
is appended.
You might try this
# trim resizer library
if { ! [info exists ::env(LIB_RESIZER_OPT) ] } {
set ::env(LIB_RESIZER_OPT) $::env(LIB_SYNTH_COMPLETE) # change this
if { $::env(STD_CELL_LIBRARY_OPT) != $::env(STD_CELL_LIBRARY) } {
set opt_lib $::env(TMP_DIR)/resizer_optlib.lib
file copy -force $::env(LIB_SYNTH_OPT) $opt_lib
lappend $::env(LIB_RESIZER_OPT) $::env(LIB_SYNTH_OPT)
}
}
No guarantees.