Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using OpenROAD-flow-scripts with IIC-OSIC-TOOLS #80

Open
simi1505 opened this issue Nov 29, 2024 · 3 comments
Open

Using OpenROAD-flow-scripts with IIC-OSIC-TOOLS #80

simi1505 opened this issue Nov 29, 2024 · 3 comments
Assignees

Comments

@simi1505
Copy link

simi1505 commented Nov 29, 2024

Describe the bug
Since OpenROAD, Yosys, Klayout etc. are installed within the IIC-OSIC-TOOLS, I tried to run the OpenROAD-flow-scripts (ORFS) using the already installed tools.

What I did
1.) cloned the ORFS Repo to the foss/designs folder
2.) changed the env.sh file to

if [[ "$OSTYPE" == "darwin"* ]]; then
  DIR="$(dirname $(perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"))"
else
  DIR="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
fi

if [ -f /opt/rh/rh-python38/enable ]; then
  source /opt/rh/rh-python38/enable
fi

export OPENROAD=/foss/tools/openroad
echo "OpenROAD: ${OPENROAD}"

export OPENROAD_EXE=/foss/tools/openroad/bin/openroad
echo "OpenROAD EXE: ${OPENROAD_EXE}"

export OPENSTA_EXE=/foss/tools/openroad/bin/sta
echo "OpenSTA EXE: ${OPENSTA_EXE}"

export YOSYS_EXE=/foss/tools/yosys/bin/yosys
echo "Yosys EXE : ${YOSYS_EXE}"

export KLAYOUT_DIR=/foss/tools/klayout
echo "KLayout DIR: ${KLAYOUT_DIR}"

export PATH=/foss/tools/openroad/bin:$PATH
export PATH=/foss/tools/yosys/bin:$PATH
export PATH=${DIR}/dependencies/bin:$PATH

if [[ "$OSTYPE" == "darwin"* ]]; then
  export PATH="/Applications/KLayout/klayout.app/Contents/MacOS:$PATH"
  export PATH="$(brew --prefix bison)/bin:$(brew --prefix flex)/bin:$(brew --prefix tcl-tk)/bin:$PATH"
  export CMAKE_PREFIX_PATH="$(brew --prefix or-tools)"
fi

export FLOW_HOME=$DIR/flow

3.) selected IHP-SG13G2 gcd project in Makefile (optional)

First error
After source ./env.sh and cd flow and make, the first make produced the following error:

[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
Elapsed time: 0:08.40[h:]min:sec. CPU time: user 25.24 sys 0.65 (308%). Peak memory: 946496KB.
make[1]: *** [Makefile:769: do-5_2_route] Error 1
make: *** [Makefile:767: results/nangate45/gcd/base/5_2_route.odb] Error 2

Second error
After searching for issues in the ORFS repo I found: The-OpenROAD-Project/OpenROAD-flow-scripts#2473
After setting set ::env(SKIP_ANTENNA_REPAIR_POST_DRT) 1 in the detail_route.tcl, I get the following error:

[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:08.56[h:]min:sec. CPU time: user 26.48 sys 0.59 (316%). Peak memory: 957552KB.
make[1]: *** [Makefile:769: do-5_2_route] Error 1
make: *** [Makefile:767: results/nangate45/gcd/base/5_2_route.odb] Error 2

Third error
After I commented out if {![design_is_routed]} {error "Design has unrouted nets."} (also suggested in the above-linked issue) the following error occurs:

==========================================================================
finish report_design_area
--------------------------------------------------------------------------
Design area 868 u^2 76% 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.40[h:]min:sec. CPU time: user 1.09 sys 0.17 (52%). Peak memory: 207336KB.
make[1]: *** [Makefile:841: do-6_report] Error 1
make: *** [Makefile:839: logs/nangate45/gcd/base/6_report.log] Error 2

Additional context
I made the issue here since this might be IIC-OSIC-TOOLS related. If not, I will open the same issue directly in the ORFS repo.

@hpretl
Copy link
Member

hpretl commented Nov 29, 2024

@alpamps since you recently could run ORFS in the VM: Can you please take a look, or better yet, provide your solution?

@alpamps
Copy link

alpamps commented Dec 2, 2024

Same issue as here: The-OpenROAD-Project/OpenROAD-flow-scripts#2461
Looks like some OR versions have this porblem.

As I tested the iic-osic-tools docker (same env), it works with OR v2.0-14013-gb16bda7e8 and but it fails with OR v2.0-16235-gedf00dff9. The ORFS docker also works.

Rebuilding the OpenRoad with the latest version could be a potential fix.

@simi1505
Copy link
Author

simi1505 commented Dec 2, 2024

Can you share your env.sh and Makefile of the working version?
Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants