Skip to content

Commit 1536683

Browse files
authored
Merge pull request #8738 from Pinata-Consulting/bazel-deltadebug-docs
bazel: deltaDebug.py whittling donw instructions
2 parents ee97594 + 74ea064 commit 1536683

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

docs/user/Bazel.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,3 +369,32 @@ First create a local work folder with all dependencies for the step that you wan
369369
Now run make directly with the `/tmp/floorplan/_main` work folder, but be sure to use the `do-` targets that side-step ORFS make dependency checking:
370370

371371
make --file ~/OpenROAD-flow-scripts/flow/Makefile --dir /tmp/floorplan/_main DESIGN_CONFIG=config.mk do-floorplan
372+
373+
## Whittling down .odb files with deltaDebug.py
374+
375+
Global place can take hours to run and to debug an error, the test case has to be whittled down to minutes, or it is probably intractable.
376+
377+
Consider an error such as:
378+
379+
[ERROR GPL-0305] RePlAce diverged during gradient descent calculation, resulting in an invalid step length (Inf or NaN). This is often caused by numerical instability or high placement density. Consider reducing placement density to potentially resolve the issue.
380+
381+
First create a folder with all the dependencies to run global placement:
382+
383+
bazelisk run //test/orfs/gcd:gcd_deps /tmp/bug
384+
385+
Drop into a shell that has the build environment set up:
386+
387+
$ /tmp/bug/make bash
388+
Makefile Environment /tmp/bug/_main
389+
390+
Run up to the failing stage and stop with ctrl-c on the step that you want to run the whittling down on:
391+
392+
make --file=$FLOW_HOME/Makefile do-place
393+
394+
Now run deltaDebug.py:
395+
396+
$OPENROAD_EXE -python ~/OpenROAD-flow-scripts/tools/OpenROAD/etc/deltaDebug.py --error_string GPL-0305 --base_db_path test/orfs/gcd/results/asap7/gcd/base/3_2_place_iop.odb --use_stdout --exit_early_on_error --step "make --file=$FLOW_HOME/Makefile do-3_3_place_gp"
397+
398+
This should eventually leave you with a whittled down .odb file. Copy the whittled down .odb file into the correct place for 3_2_place_iop.odb, then create a bug report:
399+
400+
/tmp/bug/make global_place_issue

0 commit comments

Comments
 (0)