Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
be2a93d
web: initial
maliberty Nov 9, 2025
c5556a1
Move flipping to server; get fitBounds working
maliberty Nov 11, 2025
dd361f1
web: minor
maliberty Nov 11, 2025
127b84f
web: progress on search
maliberty Nov 11, 2025
f3b682d
web: make server MT
maliberty Feb 10, 2026
f5cc908
web: add integrity checks for leaflet
maliberty Feb 14, 2026
4959764
web: zoom snap & caching
maliberty Feb 14, 2026
2c01a26
web: switch to websockets for more bandwidth
maliberty Mar 1, 2026
b623990
web: simplistic layer colors (fix later)
maliberty Mar 1, 2026
e9b8fef
web: draw all layers with coloring
maliberty Mar 1, 2026
32bf940
web: add f hotkey for fit
maliberty Mar 1, 2026
f29a5cf
web: fix race
maliberty Mar 1, 2026
febeb54
fix zoom not redrawing error
maliberty Mar 1, 2026
d8cbb45
web: zoomsnap 0
maliberty Mar 2, 2026
929e92c
web: add skeleton layout
maliberty Mar 2, 2026
96f52e3
web: split tcl input from output
maliberty Mar 2, 2026
ccab9d9
web: start visibility controls
maliberty Mar 2, 2026
71f465d
web: better display controls
maliberty Mar 2, 2026
8107054
web: add net vis controls
maliberty Mar 2, 2026
23ed97a
web: fix the draw order (instaces before wires)
maliberty Mar 2, 2026
76f57cd
web: start with fill cells not visible
maliberty Mar 2, 2026
52c697a
web: draw cell borders once not per layer
maliberty Mar 2, 2026
028183a
web: add TileGenerator tests
maliberty Mar 2, 2026
c42e874
web: add tile gen test to cmake
maliberty Mar 2, 2026
b9faf06
web: add tile debug, avoid pixelation, add retry
maliberty Mar 3, 2026
1f6ed34
web: basic selection
maliberty Mar 3, 2026
28912f6
web: fix check boxes
maliberty Mar 3, 2026
f2e1832
web: refactor checkboxes
maliberty Mar 3, 2026
3f409e6
web: initial inspector
maliberty Mar 4, 2026
0f6adfb
web: use shortname in inspector
maliberty Mar 4, 2026
571d27b
web: basic inspector navigation
maliberty Mar 4, 2026
260c0be
web: correct highlighting from inspector
maliberty Mar 4, 2026
46e950d
web: inspector zoom button
maliberty Mar 4, 2026
eb79db2
web: use line wrapping in the inspector
maliberty Mar 4, 2026
c38bab9
web: drop redundant type display
maliberty Mar 4, 2026
b3476a2
web: add inspector hover highlight
maliberty Mar 4, 2026
85788a6
web: hover yellow highlight
maliberty Mar 4, 2026
4cd8987
web: fix layers checkbox
maliberty Mar 4, 2026
ea45540
web: basic tcl console
maliberty Mar 4, 2026
e6a30af
web: draw cut shapes
maliberty Mar 5, 2026
a8aa7d2
web: persist window state in browser
maliberty Mar 5, 2026
7a1af13
web: more transparent highlight
maliberty Mar 5, 2026
1030ba4
web: highlight selected objects using descriptor shapes
maliberty Mar 5, 2026
6a5240d
web: initial timing widget
maliberty Mar 6, 2026
e1d25a4
web: highlight timing path shapes in layout view
maliberty Mar 6, 2026
27e4f88
web: path highlight fix
maliberty Mar 6, 2026
3c3acad
web: resizable timing table columns and pin name wrapping
maliberty Mar 6, 2026
07b723b
web: fix sticky table headers with z-index
maliberty Mar 6, 2026
4e042fa
web: arrow key navigation for timing path and detail tables
maliberty Mar 6, 2026
f981cda
web: split out tile_generator.cpp
maliberty Mar 7, 2026
f995a88
web: organize tile_generator
maliberty Mar 7, 2026
8574b06
web: class naming
maliberty Mar 7, 2026
3366e04
web: extract request handlers into testable classes
maliberty Mar 7, 2026
77cb9ea
web: rename
maliberty Mar 7, 2026
88e1e0f
web: use debugPrint
maliberty Mar 7, 2026
f9cf4f2
web: out of line
maliberty Mar 7, 2026
752a526
web: table-driven TileVisibility parsing
maliberty Mar 7, 2026
3b3fb5e
web: raise inspector on click
maliberty Mar 7, 2026
11daf15
web: add missing path cols
maliberty Mar 7, 2026
ee07bf9
web: clang-format
maliberty Mar 7, 2026
2f3460f
web: rename
maliberty Mar 7, 2026
b602458
web: refactor js
maliberty Mar 7, 2026
5fffba5
web: fix license hdrs
maliberty Mar 7, 2026
95ce98c
web: ws -> websocket
maliberty Mar 7, 2026
0b5ca69
web: use unicode characters
maliberty Mar 7, 2026
9878d09
fixes for merge
maliberty Mar 8, 2026
03211f8
web: js testing
maliberty Mar 8, 2026
289a4f8
web: js testing in BUILD
maliberty Mar 8, 2026
1f33b56
web: right click layer select
maliberty Mar 8, 2026
51cdbb8
web: add display controls
maliberty Mar 9, 2026
e8af191
web: add clock tree viewer
maliberty Mar 9, 2026
30a068d
web: test clock tree
maliberty Mar 9, 2026
c62636b
web: make json builder
maliberty Mar 9, 2026
714fcbf
web: charts v1
maliberty Mar 9, 2026
3a36eba
web: charts v2
maliberty Mar 9, 2026
1819f64
web: initial hier browser
maliberty Mar 9, 2026
c47b6b1
web: module view highlighting
maliberty Mar 9, 2026
3fd8676
web: add focus nets
maliberty Mar 10, 2026
0d916f0
web: handle timing/power inspection
maliberty Mar 11, 2026
0e17de1
web: render hover highlights server-side in tiles
maliberty Mar 11, 2026
3bb6661
web: update README.md
maliberty Mar 11, 2026
9acfd2c
web: rm test.tcl
maliberty Mar 11, 2026
e2a8c92
web: rm stale comment in CMakeLists.txt
maliberty Mar 11, 2026
a506956
Merge remote-tracking branch 'origin/master' into web
maliberty Mar 13, 2026
eb99442
web/gui: clang-format
maliberty Mar 13, 2026
44da646
gui & web: buildifier
maliberty Mar 13, 2026
97b7ad2
fix MODULE.bazel.lock
maliberty Mar 13, 2026
973e2bd
web: clang-format test/cpp
maliberty Mar 13, 2026
895ff55
web: add boost.stracktrace
maliberty Mar 13, 2026
b77ae26
rm unused cpp-httplib
maliberty Mar 13, 2026
d57bdf5
third-party/lodepng: clang-format
maliberty Mar 13, 2026
1040ba0
clang-format OpenRoad.hh
maliberty Mar 13, 2026
6b36f8f
web: clang-tidy
maliberty Mar 13, 2026
2cc540d
web: tidy
maliberty Mar 13, 2026
a00f3b9
web: format
maliberty Mar 13, 2026
03cbd0b
web: fix gemini feedback
maliberty Mar 13, 2026
9e3d828
web: more tidy
maliberty Mar 13, 2026
51de525
web: restore style.css
maliberty Mar 13, 2026
a1191fb
web: tidy test/cpp
maliberty Mar 13, 2026
55a2b86
web: extract CheckboxTreeModel for shared tri-state checkbox logic
maliberty Mar 14, 2026
ca81a29
web: inital heat maps
maliberty Mar 15, 2026
0c17b31
web: draw legend in heatmaps
maliberty Mar 15, 2026
1744ef8
web: create heatmap grouping
maliberty Mar 15, 2026
742a4a6
web: pulse mouse over highlight
maliberty Mar 15, 2026
c6989d4
web: add back button to inspector
maliberty Mar 15, 2026
7de814c
web: handle 45 edges in polygons
maliberty Mar 16, 2026
906fc6a
gui: clang-format
maliberty Mar 16, 2026
f211c93
web: clang-format
maliberty Mar 16, 2026
9ef0142
web: clang-format test
maliberty Mar 16, 2026
5a56a65
grt: clang-format
maliberty Mar 16, 2026
e889790
psm: clang-format
maliberty Mar 16, 2026
e5627e2
web: highlight 45s correctly
maliberty Mar 16, 2026
31ddae0
web: add right-click rubberband zoom
maliberty Mar 16, 2026
cef4e79
web: clang-format test
maliberty Mar 16, 2026
ec374cc
web: fix highlight border artifacts at tile boundaries
maliberty Mar 18, 2026
d6d0dc4
web: add show routing guide to inspector
maliberty Mar 18, 2026
738e9e0
web: cycle on selection
maliberty Mar 18, 2026
f786c5c
web: speed up initial loading
maliberty Mar 19, 2026
f8c474a
web: add menu bar, file browser, and no-design server support
maliberty Mar 21, 2026
3580d16
web: tidy
maliberty Mar 21, 2026
2710cc2
Merge remote-tracking branch 'origin/master' into web
maliberty Mar 21, 2026
2c3bba9
update MODULE.bazel.lock
maliberty Mar 21, 2026
ec7b4ec
pad: rm testing code
maliberty Mar 21, 2026
bc821af
web: update for sta changes
maliberty Mar 21, 2026
c8e50b5
web: downgrade std::latch for debian 11
maliberty Mar 21, 2026
a6ae100
test: skip web_server in commands_without_load.tcl
maliberty Mar 22, 2026
3583d41
web: fix tcl path
maliberty Mar 22, 2026
4900dbe
web: fix non-gui build error
maliberty Mar 23, 2026
4ddc3d3
Merge remote-tracking branch 'origin/master' into web
maliberty Mar 23, 2026
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
1 change: 1 addition & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ test --test_timeout=300,1800,1800,9600
# bazel 7 is somewhat forgiving for glob patterns that don't
# match, but bazel 8 will be strict. So start now.
common --incompatible_disallow_empty_glob
common --experimental_isolated_extension_usages

build --cxxopt "-std=c++20" --host_cxxopt "-std=c++20"
build --cxxopt "-xc++" --host_cxxopt "-xc++"
Expand Down
2 changes: 2 additions & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ OPENROAD_LIBRARY_DEPS = [
"//src/upf:ui",
"//src/utl",
"//src/utl:ui",
"//src/web",
"//src/web:ui",
"@abc",
":ord",
] + select(
Expand Down
23 changes: 23 additions & 0 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ bazel_dep(name = "readline", version = "8.2.bcr.3")
bazel_dep(name = "bant", version = "0.2.4", dev_dependency = True)
bazel_dep(name = "googletest", version = "1.17.0.bcr.2", dev_dependency = True)

# JavaScript unit tests
bazel_dep(name = "aspect_rules_js", version = "3.0.2", dev_dependency = True)
bazel_dep(name = "rules_nodejs", version = "6.7.3", dev_dependency = True)

# A from source build of QT that allows it to link into OpenROAD.
# Building like any other bazel project. scripts in the docker folder
# of this project generate stubs .ifso for things like X11 that will
Expand Down Expand Up @@ -123,6 +127,25 @@ pip.parse(
)
use_repo(pip, "openroad-pip")

node = use_extension(
"@rules_nodejs//nodejs:extensions.bzl",
"node",
dev_dependency = True,
)
node.toolchain(node_version = "22.14.0")

npm = use_extension(
"@aspect_rules_js//npm:extensions.bzl",
"npm",
dev_dependency = True,
isolate = True,
)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//src/web:pnpm-lock.yaml",
)
use_repo(npm, "npm")

bazel_dep(name = "bazel-orfs", dev_dependency = True)

# To bump version, run: bazelisk run @bazel-orfs//:bump
Expand Down
278 changes: 276 additions & 2 deletions MODULE.bazel.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion etc/Build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -265,4 +265,4 @@ if [[ "$isNinja" == "yes" ]]; then
exit 0
fi
eval cmake "${cmakeOptions}" -B "${buildDir}" .
eval time cmake --build "${buildDir}" -j "${numThreads}"
eval time cmake --build "${buildDir}" -j "${numThreads}"
6 changes: 6 additions & 0 deletions include/ord/OpenRoad.hh
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ namespace est {
class EstimateParasitics;
}

namespace web {
class WebServer;
}

namespace ord {

class dbVerilogNetwork;
Expand Down Expand Up @@ -181,6 +185,7 @@ class OpenRoad
{
return estimate_parasitics_;
}
web::WebServer* getWebServer() { return web_server_; }

// Return the bounding box of the db rows.
odb::Rect getCore();
Expand Down Expand Up @@ -284,6 +289,7 @@ class OpenRoad
stt::SteinerTreeBuilder* stt_builder_ = nullptr;
dft::Dft* dft_ = nullptr;
est::EstimateParasitics* estimate_parasitics_ = nullptr;
web::WebServer* web_server_ = nullptr;
utl::CallBackHandler* callback_handler_ = nullptr;

int threads_ = 1;
Expand Down
3 changes: 3 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ add_subdirectory(dft)
add_subdirectory(mpl)
add_subdirectory(par)
add_subdirectory(est)
add_subdirectory(web)

################################################################

Expand Down Expand Up @@ -358,6 +359,7 @@ target_link_libraries(openroad
mpl
par
est
web
absl::synchronization
${ABC_LIBRARY}
${TCL_LIBRARY}
Expand Down Expand Up @@ -437,6 +439,7 @@ if (Python3_FOUND AND BUILD_PYTHON)
pdn_py
dft_py
par_py
web_py
)

else()
Expand Down
1 change: 1 addition & 0 deletions src/Main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ using std::string;
X(gpl) \
X(dpl) \
X(exa) \
X(web) \
X(ppl) \
X(tap) \
X(cts) \
Expand Down
5 changes: 5 additions & 0 deletions src/OpenRoad.cc
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@
#include "utl/Progress.h"
#include "utl/ScopedTemporaryFile.h"
#include "utl/decode.h"
#include "web/MakeWeb.h"
#include "web/web.h"

namespace ord {
extern const char* ord_tcl_inits[];
Expand Down Expand Up @@ -146,6 +148,7 @@ OpenRoad::~OpenRoad()
delete stt_builder_;
delete dft_;
delete estimate_parasitics_;
delete web_server_;
delete logger_;
delete verilog_reader_;
delete callback_handler_;
Expand Down Expand Up @@ -256,6 +259,7 @@ void OpenRoad::init(Tcl_Interp* tcl_interp,
icewall_ = new pad::ICeWall(db_, logger_);
dft_ = new dft::Dft(db_, sta_, logger_);
example_ = new exa::Example(db_, logger_);
web_server_ = new web::WebServer(db_, sta_, logger_, tcl_interp);

// Init components.
Ord_Init(tcl_interp);
Expand Down Expand Up @@ -295,6 +299,7 @@ void OpenRoad::init(Tcl_Interp* tcl_interp,
stt::initSteinerTreeBuilder(tcl_interp);
dft::initDft(tcl_interp);
est::initTcl(tcl_interp);
web::initWeb(tcl_interp);

// Import exported commands to global namespace.
Tcl_Eval(tcl_interp, "sta::define_sta_cmds");
Expand Down
2 changes: 2 additions & 0 deletions src/grt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ target_link_libraries(grt_lib
ant_lib
dpl_lib
dbSta_lib
gui_heatmap_core
stt_lib
rsz_lib
OpenSTA
Expand Down Expand Up @@ -94,6 +95,7 @@ if (Python3_FOUND AND BUILD_PYTHON)
dpl_lib
dbSta
gui
gui_heatmap_core
stt
OpenSTA
Boost::boost
Expand Down
16 changes: 9 additions & 7 deletions src/grt/include/grt/GlobalRouter.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ class dbNetwork;
class SpefWriter;
} // namespace sta

namespace gui {
class HeatMapSourceRegistration;
using HeatMapSourceHandle = std::shared_ptr<HeatMapSourceRegistration>;
} // namespace gui

namespace grt {

class FastRouteCore;
Expand All @@ -69,7 +74,6 @@ class RoutePt;
class AbstractGrouteRenderer;
class AbstractFastRouteRenderer;
class GlobalRouter;
class AbstractRoutingCongestionDataSource;
class GRouteDbCbk;
class Rudy;

Expand Down Expand Up @@ -122,10 +126,8 @@ class GlobalRouter
dpl::Opendp* opendp);
~GlobalRouter();

void initGui(std::unique_ptr<AbstractRoutingCongestionDataSource>
routing_congestion_data_source,
std::unique_ptr<AbstractRoutingCongestionDataSource>
routing_congestion_data_source_rudy);
void initGui(gui::HeatMapSourceHandle routing_congestion_data_source,
gui::HeatMapSourceHandle routing_congestion_data_source_rudy);

void clear();

Expand Down Expand Up @@ -564,8 +566,8 @@ class GlobalRouter

RepairAntennas* repair_antennas_;
Rudy* rudy_;
std::unique_ptr<AbstractRoutingCongestionDataSource> heatmap_;
std::unique_ptr<AbstractRoutingCongestionDataSource> heatmap_rudy_;
gui::HeatMapSourceHandle heatmap_;
gui::HeatMapSourceHandle heatmap_rudy_;

// variables congestion report file
const char* congestion_file_name_;
Expand Down
32 changes: 22 additions & 10 deletions src/grt/src/GlobalRouter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

#include "AbstractFastRouteRenderer.h"
#include "AbstractGrouteRenderer.h"
#include "AbstractRoutingCongestionDataSource.h"
#include "CUGR.h"
#include "DataType.h"
#include "FastRoute.h"
Expand All @@ -42,6 +41,7 @@
#include "grt/GRoute.h"
#include "grt/PinGridLocation.h"
#include "grt/Rudy.h"
#include "gui/heatMap.h"
#include "odb/db.h"
#include "odb/dbObject.h"
#include "odb/dbSet.h"
Expand Down Expand Up @@ -109,15 +109,12 @@ GlobalRouter::GlobalRouter(utl::Logger* logger,
cugr_ = new CUGR(db_, logger_, callback_handler_, stt_builder_, sta_);
}

void GlobalRouter::initGui(std::unique_ptr<AbstractRoutingCongestionDataSource>
routing_congestion_data_source,
std::unique_ptr<AbstractRoutingCongestionDataSource>
routing_congestion_data_source_rudy)
void GlobalRouter::initGui(
gui::HeatMapSourceHandle routing_congestion_data_source,
gui::HeatMapSourceHandle routing_congestion_data_source_rudy)
{
heatmap_ = std::move(routing_congestion_data_source);
heatmap_->registerHeatMap();
heatmap_rudy_ = std::move(routing_congestion_data_source_rudy);
heatmap_rudy_->registerHeatMap();
}

void GlobalRouter::clear()
Expand Down Expand Up @@ -479,7 +476,12 @@ void GlobalRouter::updateDbCongestion()
} else {
fastroute_->updateDbCongestion(min_layer, max_layer);
}
heatmap_->update();
if (heatmap_) {
heatmap_->invalidateInstances();
}
if (heatmap_rudy_) {
heatmap_rudy_->invalidateInstances();
}
}

int GlobalRouter::repairAntennas(odb::dbMTerm* diode_mterm,
Expand Down Expand Up @@ -2433,7 +2435,12 @@ void GlobalRouter::readGuides(const char* file_name)
updateEdgesUsage();
computeGCellGridPatternFromGuides(guides);
updateDbCongestionFromGuides();
heatmap_->update();
if (heatmap_) {
heatmap_->invalidateInstances();
}
if (heatmap_rudy_) {
heatmap_rudy_->invalidateInstances();
}
saveGuidesFromFile(guides);
}

Expand Down Expand Up @@ -2472,7 +2479,12 @@ void GlobalRouter::loadGuidesFromDB()
if (block_->getGCellGrid() == nullptr) {
updateDbCongestion();
}
heatmap_->update();
if (heatmap_) {
heatmap_->invalidateInstances();
}
if (heatmap_rudy_) {
heatmap_rudy_->invalidateInstances();
}
}

void GlobalRouter::ensurePinsPositions(odb::dbNet* db_net)
Expand Down
4 changes: 2 additions & 2 deletions src/grt/src/MakeGlobalRouter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ extern const char* grt_tcl_inits[];

void initGui(grt::GlobalRouter* grt, odb::dbDatabase* db, utl::Logger* logger)
{
grt->initGui(std::make_unique<grt::RoutingCongestionDataSource>(logger, db),
std::make_unique<grt::RUDYDataSource>(logger, grt, db));
grt->initGui(grt::registerRoutingCongestionHeatMapSource(logger, db),
grt::registerRudyHeatMapSource(logger, grt, db));
}

void initTcl(Tcl_Interp* tcl_interp)
Expand Down
11 changes: 11 additions & 0 deletions src/grt/src/heatMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

#include <algorithm>
#include <cstdint>
#include <memory>
#include <vector>

#include "gui/heatMap.h"
Expand All @@ -14,6 +15,16 @@

namespace grt {

gui::HeatMapSourceHandle registerRoutingCongestionHeatMapSource(
utl::Logger* logger,
odb::dbDatabase* db)
{
return gui::registerHeatMapSource(
"Routing Congestion", "Routing", "RoutingCongestion", [logger, db]() {
return std::make_shared<RoutingCongestionDataSource>(logger, db);
});
}

RoutingCongestionDataSource::RoutingCongestionDataSource(utl::Logger* logger,
odb::dbDatabase* db)
: gui::GlobalRoutingDataSource(logger,
Expand Down
11 changes: 5 additions & 6 deletions src/grt/src/heatMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,16 @@

#include <string>

#include "AbstractRoutingCongestionDataSource.h"
#include "gui/heatMap.h"
#include "odb/db.h"

namespace grt {

class RoutingCongestionDataSource : public gui::GlobalRoutingDataSource,
public AbstractRoutingCongestionDataSource
class RoutingCongestionDataSource : public gui::GlobalRoutingDataSource
{
public:
RoutingCongestionDataSource(utl::Logger* logger, odb::dbDatabase* db);

void registerHeatMap() override { gui::HeatMapDataSource::registerHeatMap(); }
void update() override { gui::HeatMapDataSource::update(); }

protected:
bool populateMap() override;
void combineMapData(bool base_has_value,
Expand Down Expand Up @@ -65,4 +60,8 @@ class RoutingCongestionDataSource : public gui::GlobalRoutingDataSource,
double max_;
};

gui::HeatMapSourceHandle registerRoutingCongestionHeatMapSource(
utl::Logger* logger,
odb::dbDatabase* db);

} // namespace grt
11 changes: 11 additions & 0 deletions src/grt/src/heatMapRudy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include <algorithm>
#include <any>
#include <cmath>
#include <memory>
#include <set>
#include <stdexcept>
#include <vector>
Expand All @@ -20,6 +21,16 @@

namespace grt {

gui::HeatMapSourceHandle registerRudyHeatMapSource(utl::Logger* logger,
grt::GlobalRouter* grouter,
odb::dbDatabase* db)
{
return gui::registerHeatMapSource(
"Estimated Congestion (RUDY)", "RUDY", "RUDY", [logger, grouter, db]() {
return std::make_shared<RUDYDataSource>(logger, grouter, db);
});
}

RUDYDataSource::RUDYDataSource(utl::Logger* logger,
grt::GlobalRouter* grouter,
odb::dbDatabase* db)
Expand Down
Loading
Loading