Skip to content

Commit 06a8827

Browse files
committed
Merge remote-tracking branch 'origin/master' into rdl-control
2 parents 251af8c + d052dae commit 06a8827

25 files changed

+615
-50
lines changed

MODULE.bazel

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ bazel_dep(name = "bazel-orfs")
146146
# To bump version, run: bazelisk run @bazel-orfs//:bump
147147
git_override(
148148
module_name = "bazel-orfs",
149-
commit = "287262398210ecc368e8cee1fbefddb02ac2e2f3",
149+
commit = "e96d7d2a4405a99fc689b4f2f676d3bda7b9430b",
150150
remote = "https://github.com/The-OpenROAD-Project/bazel-orfs.git",
151151
)
152152

@@ -155,10 +155,10 @@ orfs = use_extension("@bazel-orfs//:extension.bzl", "orfs_repositories")
155155
# To bump version, run: bazelisk run @bazel-orfs//:bump
156156
orfs.default(
157157
# Official image https://hub.docker.com/r/openroad/orfs/tags
158-
image = "docker.io/openroad/orfs:v3.0-4350-g4e47ad013",
158+
image = "docker.io/openroad/orfs:v3.0-4362-gaec1d8d35",
159159
# Use OpenROAD of this repo instead of from the docker image
160160
openroad = "//:openroad",
161-
sha256 = "2e09979b7ab7f8e797b50ad8baec1e26d66205ea5bd6ec1b4ddfc7b4e924eb2b",
161+
sha256 = "5f94f0481d1339493918208060be116da101405251bce22691ac4b2d662d276e",
162162
)
163163
use_repo(orfs, "com_github_nixos_patchelf_download")
164164
use_repo(orfs, "docker_orfs")

MODULE.bazel.lock

Lines changed: 3 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/OpenRoad.tcl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -320,9 +320,14 @@ proc cpu_count { } {
320320
return [ord::cpu_count]
321321
}
322322

323-
sta::define_cmd_args "global_connect" {}
324-
proc global_connect { } {
325-
[ord::get_db_block] globalConnect
323+
sta::define_cmd_args "global_connect" { [-force] [-verbose] }
324+
proc global_connect { args } {
325+
sta::parse_key_args "global_connect" args \
326+
keys {} \
327+
flags {-force -verbose}
328+
329+
sta::check_argc_eq0 "add_global_connection" $args
330+
[ord::get_db_block] globalConnect [info exists flags(-force)] [info exists flags(-verbose)]
326331
}
327332

328333
sta::define_cmd_args "clear_global_connect" {}

src/README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,16 @@ add_global_connection -net VSS -pin_pattern {^VSSE$}
263263
The `global_connect` command is used to connect power and ground pins on design instances to the appropriate supplies.
264264

265265
```
266-
global_connect
266+
global_connect [-force] [-verbose]
267267
```
268268

269+
##### Options
270+
271+
| Switch Name | Description |
272+
| ----- | ----- |
273+
| `-force` | If specified, global connections will overwrite existing connections |
274+
| `-verbose` | If specified, report the number of connections made and skipped. |
275+
269276
#### Clear global connection rules
270277

271278
The `clear_global_connect` command is used remove all defined global connection rules.

src/gpl/src/nesterovPlace.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ bool NesterovPlace::isDiverged(float& diverge_snapshot_WlCoefX,
580580
}
581581

582582
if (!npVars_.disableRevertIfDiverge && num_region_diverged_ == 0
583-
&& !is_routability_need_) {
583+
&& (!npVars_.routability_driven_mode || !is_routability_need_)) {
584584
if (is_min_hpwl_) {
585585
diverge_snapshot_WlCoefX = wireLengthCoefX_;
586586
diverge_snapshot_WlCoefY = wireLengthCoefY_;
551 Bytes
Loading

src/gui/resources/resource.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
<file alias="cancel.png">google_icons/round_cancel_black_36dp.png</file>
1818
<file alias="expand_more.png">google_icons/round_unfold_more_black_36dp.png</file>
1919
<file alias="expand_less.png">google_icons/round_unfold_less_black_36dp.png</file>
20+
<file alias="resume.png">google_icons/resume.png</file>
2021
</qresource>
2122
</RCC>

src/gui/src/globalConnectDialog.cpp

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ GlobalConnectDialog::GlobalConnectDialog(odb::dbBlock* block, QWidget* parent)
5050
add_(new QPushButton(this)),
5151
clear_(new QPushButton(this)),
5252
run_(new QPushButton(this)),
53+
run_force_(new QPushButton(this)),
5354
rules_({}),
5455
inst_pattern_(new QLineEdit(this)),
5556
pin_pattern_(new QLineEdit(this)),
@@ -64,6 +65,7 @@ GlobalConnectDialog::GlobalConnectDialog(odb::dbBlock* block, QWidget* parent)
6465
QHBoxLayout* button_layout = new QHBoxLayout;
6566
button_layout->addWidget(clear_);
6667
button_layout->addWidget(run_);
68+
button_layout->addWidget(run_force_);
6769
layout->addLayout(button_layout);
6870
layout->addWidget(connections_);
6971

@@ -75,18 +77,27 @@ GlobalConnectDialog::GlobalConnectDialog(odb::dbBlock* block, QWidget* parent)
7577
add_->setDefault(false);
7678
add_->setEnabled(false);
7779

78-
run_->setIcon(QIcon(":/play.png"));
80+
run_->setIcon(QIcon(":/resume.png"));
7981
run_->setToolTip(tr("Run"));
8082
run_->setAutoDefault(false);
8183
run_->setDefault(false);
8284

85+
run_force_->setIcon(QIcon(":/play.png"));
86+
run_force_->setToolTip(tr("Run with forced connections"));
87+
run_force_->setAutoDefault(false);
88+
run_force_->setDefault(false);
89+
8390
clear_->setIcon(QIcon(":/delete.png"));
8491
clear_->setToolTip(tr("Clear"));
8592
clear_->setAutoDefault(false);
8693
clear_->setDefault(false);
8794

8895
connect(add_, &QPushButton::pressed, this, &GlobalConnectDialog::makeRule);
8996
connect(run_, &QPushButton::pressed, this, &GlobalConnectDialog::runRules);
97+
connect(run_force_,
98+
&QPushButton::pressed,
99+
this,
100+
&GlobalConnectDialog::runRulesWithForce);
90101
connect(
91102
clear_, &QPushButton::pressed, this, &GlobalConnectDialog::clearRules);
92103

@@ -157,7 +168,12 @@ GlobalConnectDialog::GlobalConnectDialog(odb::dbBlock* block, QWidget* parent)
157168

158169
void GlobalConnectDialog::runRules()
159170
{
160-
runRule(nullptr);
171+
runRule(nullptr, false);
172+
}
173+
174+
void GlobalConnectDialog::runRulesWithForce()
175+
{
176+
runRule(nullptr, true);
161177
}
162178

163179
void GlobalConnectDialog::clearRules()
@@ -242,7 +258,8 @@ void GlobalConnectDialog::addRule(odb::dbGlobalConnect* gc)
242258
widgets.run->setToolTip(tr("Run"));
243259
widgets.run->setAutoDefault(false);
244260
widgets.run->setDefault(false);
245-
connect(widgets.run, &QPushButton::pressed, [this, gc]() { runRule(gc); });
261+
connect(
262+
widgets.run, &QPushButton::pressed, [this, gc]() { runRule(gc, false); });
246263
layout_->addWidget(
247264
widgets.run, row_idx, toValue(GlobalConnectField::kRun), Qt::AlignCenter);
248265

@@ -311,15 +328,15 @@ void GlobalConnectDialog::announceConnections(int connections)
311328
QString::fromStdString(fmt::format("Connected {} pin(s)", connections)));
312329
}
313330

314-
void GlobalConnectDialog::runRule(odb::dbGlobalConnect* gc)
331+
void GlobalConnectDialog::runRule(odb::dbGlobalConnect* gc, bool force)
315332
{
316333
QApplication::setOverrideCursor(Qt::WaitCursor);
317334
QApplication::processEvents();
318335
int connections = 0;
319336
if (gc == nullptr) {
320-
connections = block_->globalConnect();
337+
connections = block_->globalConnect(force, true);
321338
} else {
322-
connections = block_->globalConnect(gc);
339+
connections = block_->globalConnect(gc, force, true);
323340
}
324341
QApplication::restoreOverrideCursor();
325342
emit connectionsMade(connections);

src/gui/src/globalConnectDialog.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class GlobalConnectDialog : public QDialog
2828

2929
private slots:
3030
void runRules();
31+
void runRulesWithForce();
3132
void clearRules();
3233
void deleteRule(odb::dbGlobalConnect* gconnect);
3334
void makeRule();
@@ -42,6 +43,7 @@ class GlobalConnectDialog : public QDialog
4243
QPushButton* add_;
4344
QPushButton* clear_;
4445
QPushButton* run_;
46+
QPushButton* run_force_;
4547

4648
struct GlobalConnectWidgets
4749
{
@@ -63,7 +65,7 @@ class GlobalConnectDialog : public QDialog
6365
QLabel* connections_;
6466

6567
void addRule(odb::dbGlobalConnect* gc);
66-
void runRule(odb::dbGlobalConnect* gc);
68+
void runRule(odb::dbGlobalConnect* gc, bool force);
6769
};
6870

6971
} // namespace gui

src/odb/include/odb/db.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -747,8 +747,8 @@ class dbBlock : public dbObject
747747
/// and helper functions for global connections
748748
/// on this block.
749749
///
750-
int globalConnect();
751-
int globalConnect(dbGlobalConnect* gc);
750+
int globalConnect(bool force, bool verbose);
751+
int globalConnect(dbGlobalConnect* gc, bool force, bool verbose);
752752
int addGlobalConnect(dbRegion* region,
753753
const char* instPattern,
754754
const char* pinPattern,
@@ -7864,7 +7864,7 @@ class dbGlobalConnect : public dbObject
78647864
// User Code Begin dbGlobalConnect
78657865
std::vector<dbInst*> getInsts() const;
78667866

7867-
int connect(dbInst* inst);
7867+
int connect(dbInst* inst, bool force);
78687868

78697869
static dbGlobalConnect* create(dbNet* net,
78707870
dbRegion* region,

0 commit comments

Comments
 (0)