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

make: gui_ prerendering #2610

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 51 additions & 1 deletion flow/scripts/open.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,62 @@ proc read_timing {input_file} {
if {[env_var_equals GUI_TIMING 1]} {
puts "GUI_TIMING=1 reading timing, takes a little while for large designs..."
read_timing $input_file

gui::save_display_controls

set height [[[ord::get_db_block] getBBox] getDY]
set height [ord::dbu_to_microns $height]
set resolution [expr $height / 1000]

# FIXME IRDrop heatmap should be added, but it has to be skipped
# when there is no IRDrop heatmap to be rendered.

set block [ord::get_db_block]
set insts [$block getInsts]
set placed 1
foreach inst $insts {
set status [$inst getPlacementStatus]
# status is not in the list of PLACED, LOCKED
if {[lsearch {PLACED LOCKED} $status] == -1} {
set placed 0
break
}
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@maliberty How do I unselect the clock tree and return the GUI to the default view?

make gui_cts

image


set have_routes [expr {$placed && [grt::have_routes]}]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we still need to compute/check $placed? I thought this was fixed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes: there is no ppl::have_placed method. I can simplify the code a bit here though for the have_routes case.


foreach heatmap {Placement Routing RUDY Power} {
if {[string equal $heatmap Routing] && !$have_routes} {
# Skipping $heatmap heatmap, no routes available
continue
}
if {[string equal $heatmap IRDrop] &&
(![env_var_exists_and_non_empty PWR_NETS_VOLTAGES] ||
![grt::have_routes])} {
# Skipping $heatmap heatmap, no PWR_NETS_VOLTAGES available
continue
oharboe marked this conversation as resolved.
Show resolved Hide resolved
}
if {[lsearch {RUDY Placement} $heatmap] != -1 && !$placed} {
# Skipping $heatmap heatmap, not all instances are placed
continue
}
puts "Prerendering $heatmap heatmap..."
gui::set_heatmap $heatmap rebuild 1
gui::dump_heatmap $heatmap $::env(REPORTS_DIR)/dummy.png
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we avoid the file side effect?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes: fixed

}

log_cmd gui::select_chart "Endpoint Slack"
log_cmd gui::update_timing_report

gui::clear_highlights -1
gui::clear_selections
gui::restore_display_controls
}

fast_route

if {[env_var_equals GUI_SHOW 1]} {
# Show the GUI when it is ready; it is unresponsive(with modal requesters
# saying it is unresponsive) until everything is loaded
gui::unminimize
log_cmd gui::unminimize
}
2 changes: 1 addition & 1 deletion tools/OpenROAD
Submodule OpenROAD updated 95 files
+1 −0 CMakeLists.txt
+2 −0 etc/DependencyInstaller.sh
+2 −4 src/Timing.cc
+11 −7 src/ant/test/CMakeLists.txt
+18 −10 src/cts/test/CMakeLists.txt
+20 −15 src/dbSta/test/CMakeLists.txt
+15 −8 src/dft/test/CMakeLists.txt
+7 −2 src/dpl/test/CMakeLists.txt
+9 −8 src/dpo/test/CMakeLists.txt
+4 −1 src/drt/src/dr/FlexDR.h
+16 −0 src/drt/src/dr/FlexDR_conn.h
+16 −12 src/drt/src/dr/FlexDR_init.cpp
+8 −0 src/drt/src/dr/FlexGridGraph.h
+65 −1 src/drt/src/dr/FlexGridGraph_maze.cpp
+6 −0 src/drt/src/dr/FlexWavefront.h
+0 −1 src/drt/src/global.cpp
+17 −24 src/drt/src/pa/FlexPA.h
+66 −72 src/drt/src/pa/FlexPA_prep.cpp
+7 −2 src/drt/test/CMakeLists.txt
+5 −1 src/fin/test/CMakeLists.txt
+36 −33 src/gpl/test/CMakeLists.txt
+274,699 −274,699 src/gpl/test/large01.defok
+77 −77 src/gpl/test/large01.ok
+312,529 −312,529 src/gpl/test/large02.defok
+78 −79 src/gpl/test/large02.ok
+0 −4 src/grt/src/GlobalRouter.cpp
+20 −4 src/grt/test/CMakeLists.txt
+0 −1 src/grt/test/repair_antennas_error1.ok
+2 −14 src/gui/CMakeLists.txt
+22 −0 src/gui/README.md
+2 −0 src/gui/include/gui/gui.h
+9 −18 src/gui/src/chartsWidget.cpp
+11 −23 src/gui/src/chartsWidget.h
+7 −0 src/gui/src/dbDescriptors.cpp
+1 −0 src/gui/src/dbDescriptors.h
+24 −0 src/gui/src/gui.cpp
+17 −0 src/gui/src/gui.i
+0 −8 src/gui/src/mainWindow.cpp
+4 −4 src/gui/src/mainWindow.h
+0 −2 src/gui/src/timingWidget.cpp
+0 −2 src/gui/src/timingWidget.h
+5 −1 src/gui/test/CMakeLists.txt
+10 −3 src/ifp/test/CMakeLists.txt
+7 −3 src/mpl/test/CMakeLists.txt
+6 −1 src/mpl2/test/CMakeLists.txt
+1 −0 src/odb/src/db/dbBlock.cpp
+2 −0 src/odb/src/db/dbBlock.h
+2 −1 src/odb/src/db/dbModule.cpp
+42 −29 src/odb/test/CMakeLists.txt
+0 −2 src/pad/CMakeLists.txt
+0 −6,599 src/pad/src/ICeWall.tcl
+0 −6,916 src/pad/src/PdnGen.tcl
+27 −22 src/pad/test/CMakeLists.txt
+6 −2 src/par/test/CMakeLists.txt
+0 −324 src/pdn/src/pdn.tcl
+77 −72 src/pdn/test/CMakeLists.txt
+0 −47 src/pdn/test/convert.ok
+0 −8 src/pdn/test/convert.tcl
+0 −17 src/pdn/test/nangate_convert/Nangate45.pdn
+0 −36 src/pdn/test/nangate_convert/Nangate45_grid_strategy-M1-M4-M7.cfg
+0 −1 src/pdn/test/regression_tests.tcl
+8 −8 src/ppl/include/ppl/IOPlacer.h
+13 −3 src/ppl/test/CMakeLists.txt
+20 −0 src/psm/README.md
+2 −0 src/psm/include/psm/pdnsim.h
+24 −0 src/psm/src/ir_solver.cpp
+11 −8 src/psm/src/ir_solver.h
+7 −0 src/psm/src/pdnsim.cpp
+7 −0 src/psm/src/pdnsim.i
+27 −0 src/psm/src/pdnsim.tcl
+26 −22 src/psm/test/CMakeLists.txt
+30 −0 src/psm/test/corners_assign_power.ok
+19 −0 src/psm/test/corners_assign_power.tcl
+19 −0 src/psm/test/gcd_test_assign_power.ok
+14 −0 src/psm/test/gcd_test_assign_power.tcl
+2 −0 src/psm/test/regression_tests.tcl
+10 −5 src/rcx/test/CMakeLists.txt
+11 −7 src/rmp/test/CMakeLists.txt
+8 −18 src/rsz/src/Resizer.cc
+38 −17 src/rsz/test/CMakeLists.txt
+4 −0 src/rsz/test/eliminate_dead_logic2.ok
+19 −0 src/rsz/test/eliminate_dead_logic2.tcl
+71 −0 src/rsz/test/eliminate_dead_logic2.vgok
+1 −0 src/rsz/test/regression_tests.tcl
+0 −1 src/stt/include/stt/SteinerTreeBuilder.h
+1 −2 src/stt/include/stt/flute.h
+0 −5 src/stt/src/SteinerTreeBuilder.cpp
+0 −44 src/stt/src/flt/flute.cpp
+7 −3 src/stt/test/CMakeLists.txt
+21 −15 src/tap/test/CMakeLists.txt
+7 −3 src/upf/test/CMakeLists.txt
+10 −5 src/utl/test/CMakeLists.txt
+15 −0 test/CMakeLists.txt
+1 −0 test/regression_tests.tcl
+1 −1 test/timing_api_4.py