mcon layer issue in Sky130 PDK causing no ap std::runtime_error
Description
Hello. I am using OpenLane to run my design. I use to way to determine the size of my design, one is to use the following config to set the size of it manually. For the running result, you can refer to the log titled with "The log for self defined FP_SIZING". The rebuild material is called opentitan_soc_top_fp_sizing_absolute.zip
set ::env(FP_SIZING) absolute set ::env(DESIGN_IS_CORE) "1" set ::env(DIE_AREA) "0 0 1000 1000" set ::env(CORE_AREA) "50 50 950 950"
I then comment the AIE_AREA, CORE_AREA and use the default setting, which set the FP_CORE_UTIL to 50. But the result give me this error: [ERROR GRT-0118] Routing congestion too high, as you can see in the log titled with "The log for FP_CORE_UTIL = 50". The rebuild material is called "opentitan_soc_top_util_50.zip"
Then I set FP_CORE_UTIL to 30 to see if I can lower the congestion. you can see in the log titled with "The log for FP_CORE_UTIL = 30". The rebuild material is called "opentitan_soc_top_util_30.zip"
Environment
- Operating System Information:
uname -acentos7 - Docker Version:
docker --versionDocker version 20.10.8, build 3967b7d- If you're using an alternative container service, please also include this information.
- OpenLane Tag in use:
python3 ./dependencies/get_tag.pyin the main OpenLane directory. 2021.09.09_03.00.48
Reproduction Material
- Upload a tarball containing the relevant design.
opentitan_soc_top_util_50.zip opentitan_soc_top_fp_sizing_absolute.zip opentitan_soc_top_util_30.zip
- List the commands used to run the design:
sudo make mount ./flow -design opentitan_soc
Expected behavior
A clear and concise description of what you expected to happen: Successfully run through the whole flow in non_interactive mode
Logs
The log for self defined FP_SIZING
[INFO GRT-0101] Running extra iterations to remove overflow.
[WARNING GRT-0164] Initial grid wrong y1 x1 [87 21], net start [99 106] routelen 19.
[WARNING GRT-0165] End grid wrong y2 x2 [87 21], net start [100 124] routelen 19.
[ERROR GRT-0167] Invalid 2D tree for net periph_switch/u_s1n_10/tl_t_o\[38\].
Error: or_resizer_routing_timing.tcl, 46 GRT-0167
[ERROR]: during executing: "openroad -exit /openLANE_flow/scripts/openroad/or_resizer_routing_timing.tcl |& tee >&@stdout /openLANE_flow/designs/opentitan_soc/runs/19-09_16-05/logs/placement/15-resizer_timing.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child process exited abnormally
[ERROR]: Please check openroad log file
[ERROR]: Dumping to /openLANE_flow/designs/opentitan_soc/runs/19-09_16-05/error.log
[INFO]: Calculating Runtime From the Start...
[INFO]: flow failed for opentitan_soc_top/19-09_16-05 in 0h3m52s
[INFO]: Generating Final Summary Report...
[INFO]: Design Name: opentitan_soc_top
Run Directory: /openLANE_flow/designs/opentitan_soc/runs/19-09_16-05
Source not found.
----------------------------------------
LVS Summary:
Source: /openLANE_flow/designs/opentitan_soc/runs/19-09_16-05/results/lvs/opentitan_soc_top.lvs_parsed.gds.log
Source not found.
----------------------------------------
Antenna Summary:
No antenna report found.
[INFO]: check full report here: /openLANE_flow/designs/opentitan_soc/runs/19-09_16-05/reports/final_summary_report.csv
[INFO]: Saving Runtime Environment
[ERROR]: Flow Failed.
while executing
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_resizer_routing_timing.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(resi..."
(procedure "run_resizer_timing_routing" line 13)
invoked from within
"run_resizer_timing_routing"
(procedure "run_routing" line 9)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
(procedure "run_non_interactive_mode" line 43)
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 "./flow.tcl" line 354)
The log for FP_CORE_UTIL = 50
[INFO GRT-0101] Running extra iterations to remove overflow.
[INFO GRT-0103] Extra Run for hard benchmark.
[INFO GRT-0104] Minimal overflow 203998 occurring at round 10.
[INFO GRT-0111] Final number of vias: 286272
[INFO GRT-0112] Final usage 3D: 1573464
[WARNING GRT-0211] dbGcellGrid already exists in db. Clearing existing dbGCellGrid.
[ERROR GRT-0118] Routing congestion too high.
Error: or_resizer_routing_timing.tcl, 46 GRT-0118
[ERROR]: during executing: "openroad -exit /openLANE_flow/scripts/openroad/or_resizer_routing_timing.tcl |& tee >&@stdout /openLANE_flow/designs/opentitan_soc/runs/19-09_15-43/logs/placement/15-resizer_timing.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child process exited abnormally
[ERROR]: Please check openroad log file
[ERROR]: Dumping to /openLANE_flow/designs/opentitan_soc/runs/19-09_15-43/error.log
[INFO]: Calculating Runtime From the Start...
[INFO]: flow failed for opentitan_soc_top/19-09_15-43 in 0h10m35s
[INFO]: Generating Final Summary Report...
[INFO]: Design Name: opentitan_soc_top
Run Directory: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-43
Source not found.
----------------------------------------
LVS Summary:
Source: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-43/results/lvs/opentitan_soc_top.lvs_parsed.gds.log
Source not found.
----------------------------------------
Antenna Summary:
No antenna report found.
[INFO]: check full report here: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-43/reports/final_summary_report.csv
[INFO]: Saving Runtime Environment
[ERROR]: Flow Failed.
while executing
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_resizer_routing_timing.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(resi..."
(procedure "run_resizer_timing_routing" line 13)
invoked from within
"run_resizer_timing_routing"
(procedure "run_routing" line 9)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
(procedure "run_non_interactive_mode" line 43)
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 "./flow.tcl" line 354)
The log for FP_CORE_UTIL = 30
[INFO GRT-0101] Running extra iterations to remove overflow.
[INFO GRT-0103] Extra Run for hard benchmark.
[WARNING GRT-0165] End grid wrong y2 x2 [29 37], net start [28 41] routelen 5.
[ERROR GRT-0167] Invalid 2D tree for net clknet_1_0_1_clk_i.
Error: or_resizer_routing_timing.tcl, 46 GRT-0167
[ERROR]: during executing: "openroad -exit /openLANE_flow/scripts/openroad/or_resizer_routing_timing.tcl |& tee >&@stdout /openLANE_flow/designs/opentitan_soc/runs/19-09_15-22/logs/placement/15-resizer_timing.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child process exited abnormally
[ERROR]: Please check openroad log file
[ERROR]: Dumping to /openLANE_flow/designs/opentitan_soc/runs/19-09_15-22/error.log
[INFO]: Calculating Runtime From the Start...
[INFO]: flow failed for opentitan_soc_top/19-09_15-22 in 0h15m42s
[INFO]: Generating Final Summary Report...
[INFO]: Design Name: opentitan_soc_top
Run Directory: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-22
Source not found.
----------------------------------------
LVS Summary:
Source: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-22/results/lvs/opentitan_soc_top.lvs_parsed.gds.log
Source not found.
----------------------------------------
LVS Summary:
Source: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-22/results/lvs/opentitan_soc_top.lvs_parsed.gds.log
Source not found.
----------------------------------------
Antenna Summary:
No antenna report found.
[INFO]: check full report here: /openLANE_flow/designs/opentitan_soc/runs/19-09_15-22/reports/final_summary_report.csv
[INFO]: Saving Runtime Environment
[ERROR]: Flow Failed.
while executing
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_resizer_routing_timing.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(resi..."
(procedure "run_resizer_timing_routing" line 13)
invoked from within
"run_resizer_timing_routing"
(procedure "run_routing" line 9)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
(procedure "run_non_interactive_mode" line 43)
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 "./flow.tcl" line 354)
- Issue template
- Please link the design
I just link the design and update the template @donn . Please check if I need to do anything else
@peijunh You can turn off the resizer timing optimization by setting set ::env(GLB_RESIZER_TIMING_OPTIMIZATIONS) 0 in your config.tcl and try once. Your log ''' [WARNING GRT-0211] dbGcellGrid already exists in db. Clearing existing dbGCellGrid. [ERROR GRT-0118] Routing congestion too high. Error: or_resizer_routing_timing.tcl, 46 GRT-0118 [ERROR]: during executing: "openroad -exit /openLANE_flow/scripts/openroad/or_resizer_routing_timing.tcl |& tee >&@stdout /openLANE_flow/designs/opentitan_soc/runs/19-09_15-43/logs/placement/15-resizer_timing.log" [ERROR]: Exit code: 1 ''' says congestion too high. Try increase with Die area as well and placement density value
@vijayank88 Thanks for your help. I set :env(GLB_RESIZER_TIMING_OPTIMIZATIONS) to 0. I try to set PL_TARGET_DENSITY as 0.7, 0.55(default), 0.4, 0.35, but they all give me routing congestion too high. So may I ask what else I should set?
Looks like setting the PL_TARGET_DENSITY to 0.2 will help to the congestion problem. But there is problem in the triton route
[INFO DRT-0076] Complete 100 pins.
[INFO DRT-0076] Complete 200 pins.
[INFO DRT-0076] Complete 300 pins.
[INFO DRT-0076] Complete 400 pins.
[ERROR DRT-0073] No ap for periph_switch/u_s1n_10/DP_OP_12J5_122_1926/U14/A.
terminate called after throwing an instance of 'std::runtime_error'
what(): DRT-0073
[ERROR]: during executing: "openroad -exit /openLANE_flow/scripts/openroad/or_droute.tcl |& tee >&@stdout /openLANE_flow/designs/opentitan_soc/runs/20-09_20-26/logs/routing/19-tritonRoute.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child killed: SIGABRT
[ERROR]: Please check openroad log file
[ERROR]: Dumping to /openLANE_flow/designs/opentitan_soc/runs/20-09_20-26/error.log
[INFO]: Calculating Runtime From the Start...
[INFO]: flow failed for opentitan_soc_top/20-09_20-26 in 0h4m35s
[INFO]: Generating Final Summary Report...
[INFO]: Design Name: opentitan_soc_top
Run Directory: /openLANE_flow/designs/opentitan_soc/runs/20-09_20-26
Source not found.
----------------------------------------
LVS Summary:
Source: /openLANE_flow/designs/opentitan_soc/runs/20-09_20-26/results/lvs/opentitan_soc_top.lvs_parsed.gds.log
Source not found.
----------------------------------------
Antenna Summary:
No antenna report found.
[INFO]: check full report here: /openLANE_flow/designs/opentitan_soc/runs/20-09_20-26/reports/final_summary_report.csv
[INFO]: Saving Runtime Environment
[ERROR]: Flow Failed.
while executing
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_droute.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(tritonRoute_log_file..."
(procedure "detailed_routing_tritonroute" line 6)
invoked from within
"detailed_routing_tritonroute"
(procedure "detailed_routing" line 13)
invoked from within
"detailed_routing"
(procedure "run_routing" line 49)
invoked from within
"run_routing"
(procedure "run_routing_step" line 10)
invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
(procedure "run_non_interactive_mode" line 43)
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 "./flow.tcl" line 354)
We'll look into it.
Okay, you've only included a def file and a config script.
I need the actual RTL design files.
Hi, attached is the compressed file of my design, you can directly put it under openLANE_flow/design/ and run I think. I use the netlist that is flattened by yosys because there are too many source RTL. opentitan_soc.tar.gz
@donn Hello, may I ask do you have any chance to look into this? Thanks.
Yeah I'm. Getting more or less the same errors. I'll have to try again after updating OpenROAD.
@donn Have you been able to try this with latest of OpenROAD?
Have you?
I am assuming OL is pointing to the latest OR? so @peijunh please try again I guess.
Yup.
I clone OpenLane and build it from scratch. My commit now is shown below.
commit 27752ec11a12afa3214f64401662683f081e2644
Author: Openlane Bot <[email protected]>
Date: Wed Sep 29 22:03:01 2021 +0200
[BOT] Update openroad_app (#616)
openroad_app -> 7f23e5f6e6b8d36e6a8aaed6ad074902ea27c4ce
I run the flow again and get the following error.
[INFO DRT-0165] Start pin access.
[INFO DRT-0076] Complete 100 pins.
[INFO DRT-0076] Complete 200 pins.
[INFO DRT-0076] Complete 300 pins.
[INFO DRT-0076] Complete 400 pins.
[INFO DRT-0076] Complete 500 pins.
[ERROR DRT-0073] No ap for periph_switch/u_s1n_10/DP_OP_12J5_122_1926/U11/A.
terminate called after throwing an instance of 'std::runtime_error'
what(): DRT-0073
[ERROR]: during executing: "openroad -exit /openLANE_flow/scripts/openroad/or_droute.tcl |& tee >&@stdout /openLANE_flow/designs/opentitan_soc/runs/04-10_16-42/logs/routing/23-tritonRoute.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child killed: SIGABRT
[ERROR]: Please check openroad log file
[ERROR]: Dumping to /openLANE_flow/designs/opentitan_soc/runs/04-10_16-42/error.log
[INFO]: Calculating Runtime From the Start...
[INFO]: flow failed for opentitan_soc_top/04-10_16-42 in 0h10m36s
[INFO]: Generating Final Summary Report...
[INFO]: Design Name: opentitan_soc_top
Run Directory: /openLANE_flow/designs/opentitan_soc/runs/04-10_16-42
Source not found.
----------------------------------------
LVS Summary:
Source: /openLANE_flow/designs/opentitan_soc/runs/04-10_16-42/results/lvs/opentitan_soc_top.lvs_parsed.gds.log
Source not found.
----------------------------------------
Antenna Summary:
No antenna report found.
[INFO]: check full report here: /openLANE_flow/designs/opentitan_soc/runs/04-10_16-42/reports/final_summary_report.csv
[INFO]: Saving Runtime Environment
[ERROR]: Flow Failed.
I am not sure why there is such and error, so I go to OpenLane/docker_build/docker/openroad_app/Dockerfile and find that at line 118 the commit is not the newest.
117 ARG OPENROAD_APP_REPO=https://github.com/The-OpenROAD-Project/OpenROAD
118 ARG OPENROAD_APP_COMMIT=4d4d7205fd0292dbf3fae55fad9109b3f0bd5786
May I ask how to fix this issue?
Thanks @peijunh
I think it is failing in detail route now. I think it says that there are no access pins for this pin: periph_switch/u_s1n_10/DP_OP_12J5_122_1926/U11/A
Can you check what instance is that? and check versus the LEF we have used in MPW-II ? Also, maybe share your test case.
I am tagging @maliberty (just fyi)
Staled out- please file a new issue if the problem persists.