make command fails inside the docker during detail routing
Subject
[Stage]: Detail Router.
Describe the bug
Installed latest ORFS with docker based.
While running with make command with default design, it fails with below error
[INFO DRT-0267] cpu time = 00:00:31, elapsed time = 00:00:11, memory = 859.24 (MB), peak = 859.24 (MB)
[INFO DRT-0180] Post processing.
[WARNING GRT-0246] No diode with LEF class CORE ANTENNACELL found.
Error: detail_route.tcl, 65 expected boolean value but got ""
Command exited with non-zero status 1
Elapsed time: 0:13.18[h:]min:sec. CPU time: user 48.55 sys 0.94 (375%). Peak memory: 880628KB.
make[1]: *** [Makefile:785: do-5_2_route] Error 1
make: *** [Makefile:783: results/nangate45/gcd/base/5_2_route.odb] Error 2
I have no name!@bf6aca521866:/OpenROAD-flow-scripts/flow$
Expected Behavior
successfully complete make command inside docker
Environment
I have no name!@bf6aca521866:/OpenROAD-flow-scripts/tools/OpenROAD$ ./etc/Env.sh
tee: build/openroad-env.log: Permission denied
Unknown git commit, this is not a git repository.
Please make sure that you have the latest code changes and add the commit
hash in the description.
kernel: Linux 6.8.0-1015-gcp
os: Ubuntu 22.04.4 LTS (Jammy Jellyfish)
cmake version 3.24.2
CMake Warning at CMakeLists.txt:98 (message):
OpenROAD git describe failed, using sha1 instead
CMake Error: Could not open file for write in copy operation /OpenROAD-flow-scripts/tools/OpenROAD/include/ord/Version.hh.tmp
CMake Error: : System Error: Inappropriate ioctl for device
CMake Error at CMakeLists.txt:135 (configure_file):
configure_file Problem configuring file
-- The CXX compiler identification is GNU 11.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: HEAD-HASH-NOTFOUND
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- The C compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format - SuCMake Error: Could not open file for write in copy operation /OpenROAD-flow-scripts/tools/OpenROAD/src/sta/include/sta/StaConfig.hh.tmp
CMake Error: : System Error: Inappropriate ioctl for device
CMake Error at src/sta/CMakeLists.txt:405 (configure_file):
configure_file Problem configuring file
ccess
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17 - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17 - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/local/bin/swig (found suitable version "4.1.0", minimum required is "4.0")
-- Using SWIG >= 4.1.0 -flatstaticmethod flag for python
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")
-- boost: 1.80.0
-- Found Python3: /usr/include/python3.10 (found version "3.10.12") found components: Development Development.Module Development.Embed
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- spdlog: 1.8.1
-- Found BISON: /usr/bin/bison (found version "3.8.2")
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- STA version: 2.5.0
-- STA git sha:
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- Install prefix: /usr/local
-- Found FLEX: /usr/bin/flex (found version "2.6.4")
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- SSTA: 0
-- Found SWIG: /usr/local/bin/swig (found suitable version "4.1.0", minimum required is "3.0")
-- STA executable: /OpenROAD-flow-scripts/tools/OpenROAD/src/sta/app/sta
-- Found re2: /opt/or-tools/lib/cmake/re2/re2Config.cmake (found version "9.0.0")
-- Found Clp: /opt/or-tools/lib/cmake/Clp/ClpConfig.cmake (found version "1.17.7")
-- Found Cbc: /opt/or-tools/lib/cmake/Cbc/CbcConfig.cmake (found version "2.10.7")
-- Found SCIP: /opt/or-tools/lib/cmake/scip/scip-config.cmake (found version "8.0.1")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- GPU is not enabled
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- GUI is enabled
-- Charts widget is enabled
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS)
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found suitable version "1.80.0", minimum required is "1.78")
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization system thread
-- Found Boost: /usr/localNumber of processor cores: 32
/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")
-- Found Eigen3: /usr/local/share/eigen3/cmake/Eigen3Config.cmake (found version "3.4.1")
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring incomplete, errors occurred!
To Reproduce
Install ORFS with docker based installation.
Inside docker run make
Relevant log output
No response
Screenshots
No response
Additional Context
No response
This looks like a recent bug. Please try with the head.
I build again by pulling latest code, but stops at same error
Another observation is, without docker or local installation mode the detail route log as follows:
[INFO DRT-0267] cpu time = 00:00:34, elapsed time = 00:00:12, memory = 886.93 (MB), peak = 886.93 (MB)
[INFO DRT-0180] Post processing.
[WARNING GRT-0246] No diode with LEF class CORE ANTENNACELL found.
[INFO ANT-0002] Found 0 net violations.
[INFO ANT-0001] Found 0 pin violations.
[INFO ANT-0002] Found 0 net violations.
[INFO ANT-0001] Found 0 pin violations.
While running same design inside docker it got error
[INFO DRT-0267] cpu time = 00:00:29, elapsed time = 00:00:10, memory = 839.20 (MB), peak = 839.20 (MB)
[INFO DRT-0180] Post processing.
[WARNING GRT-0246] No diode with LEF class CORE ANTENNACELL found.
Error: detail_route.tcl, 63 expected boolean value but got ""
Command exited with non-zero status 1
@vvbandeira any feedback?
I have the same issue, I followed the instructions in https://openroad-flow-scripts.readthedocs.io/en/latest/user/BuildWithDocker.html
My current workaround is
export SKIP_ANTENNA_REPAIR_POST_DRT=1
make
https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/7df3c9c3802c4d98f2fa5aa34664184cfd7050a6/flow/platforms/ihp-sg13g2/config.mk#L132
However, I have new errors.
[INFO DRT-0180] Post processing.
[INFO ANT-0002] Found 0 net violations.
[INFO ANT-0001] Found 0 pin violations.
Error: detail_route.tcl, 73 invalid command name "design_is_routed"
Command exited with non-zero status 1
Elapsed time: 0:06.30[h:]min:sec. CPU time: user 25.58 sys 0.38 (411%). Peak memory: 844644KB.
make[1]: *** [Makefile:785: do-5_2_route] Error 1
make: *** [Makefile:783: results/nangate45/gcd/base/5_2_route.odb] Error 2
This design_is_routed only appears once in the .tcl file.
https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/7df3c9c3802c4d98f2fa5aa34664184cfd7050a6/flow/scripts/detail_route.tcl#L71
After commenting this section, I could the GUI part, which also failed in pre-built binaries.
For the envvar issue, add set ::env(SKIP_ANTENNA_REPAIR_POST_DRT) 1 to the beginning of detail_route.tcl (in my case, line 22) should be an easy workaround.
I have added set ::env(SKIP_ANTENNA_REPAIR_POST_DRT) 1 to detail_route.tcl and I also commented out if {![design_is_routed]} { error "Design has unrouted nets." }.
Now, I have the following error:
==========================================================================
finish report_design_area
--------------------------------------------------------------------------
Design area 27644 u^2 98% utilization.
[ERROR GUI-0070] Error: save_images.tcl, 9 Invalid method. Must be one of: configure cget -acquire -disown -delete getName getConstName getBBox getChip getDataBase getTech getParent getParentInst getTopModule getChildren findChild getBTerms findBTerm getITerms getInsts getModules getModInsts getModNets getModBTerms getPowerDomains getLogicPorts getPowerSwitches getIsolations getLevelShifters getGroups getAccessPoints getGlobalConnects globalConnect addGlobalConnect reportGlobalConnect clearGlobalConnect getComponentMaskShift setComponentMaskShift findInst findModule findModInst findPowerDomain findLogicPort findPowerSwitch findIsolation findLevelShifter findGroup findSomeInst findSomeMaster findITerm getObstructions getBlockages getNets getCapNodes getRSegs findNet findSomeNet writeDb writeGuides findVia getVias getGCellGrid getDefUnits setDefUnits getDbUnitsPerMicron dbuToMicrons dbuAreaToMicrons micronsToDbu micronsAreaToDbu getHierarchyDelimeter setBusDelimeters getBusDelimeters getExtCount copyExtDb adjustRC groundCC adjustCC undoAdjustedCC getCornerCount extCornersAreIndependent getCornersPerBlock getExtDbCount getExtCornerName getExtCornerIndex setCornerNameList getCornerNameList setCornerCount setCornersPerBlock initParasiticsValueTables createExtCornerBlock findExtCornerBlock getExtCornerBlock getTrackGrids findTrackGrid getRows getFills getMasters setDieArea getDieArea getCoreArea addBlockedRegionForPins getBlockedRegionsForPins setExtmi getExtmi getExtControl getDft getMinRoutingLayer setMinRoutingLayer getMaxRoutingLayer setMaxRoutingLayer getMinLayerForClock setMinLayerForClock getMaxLayerForClock setMaxLayerForClock getExtCornerNames getCCSegs getSearchDb destroyCCs destroyRSegs destroyCNs destroyParasitics destroyCornerParasitics getCcHaloNets destroyOldParasitics destroyOldCornerParasitics restoreOldCornerParasitics replaceOldParasitics restoreOldParasitics keepOldParasitics keepOldCornerParasitics preExttreeMergeRC clear getWireUpdatedNets getRegions findRegion findNonDefaultRule getNonDefaultRules levelize levelizeFromPrimaryInputs levelizeFromSequential markBackwardsUser2 setDrivingItermsforNets clearUserInstFlags
Error: final_report.tcl, 71 GUI-0070
Command exited with non-zero status 1
Elapsed time: 0:02.93[h:]min:sec. CPU time: user 1.46 sys 0.29 (60%). Peak memory: 178756KB.
make[1]: *** [Makefile:850: do-6_report] Error 1
make: *** [Makefile:848: logs/ihp-sg13g2/gcd/base/6_report.log] Error 2
Any suggestions would be much appreciated. Thanks.
@simi1505 Are you getting above error in WSL? Please file a new github issue with environment you're using? @vvbandeira FYI, similar error I shared with you with recent WSL setup I am facing with randomly in some machines, not for all WSL installed. Thanks.
@vijayank88 I tried to use ORFS with IIC-OSIC-TOOLS since Yosys, Openroad, etc. are already installed in there. I opened an issue in the repo of IIC-OSIC-TOOLS (https://github.com/iic-jku/IIC-OSIC-TOOLS/issues/80), since this might be related to it. If not, I will open a new issue here. Thanks.
@vijayank88 @simi1505 does this error still happen with the latest code on the master branch?
@vvbandeira The latest update of the IIC-OSIC-Tools fixed it for me.
If you are interested, here is the issue history: https://github.com/iic-jku/IIC-OSIC-TOOLS/issues/80
I also created a GitHub repo template (https://github.com/simi1505/SG13G2_ASIC-Design-Template) for analog-digital mixed-signal simulation for SG13G2 PDK and IIC-OSIC-Tools using ORFS and Ngspice (Xschem). This works just fine for me now. Thanks!
Closing as it looks to be resolved. Please reopen if the problem is still happening on the latest version.