Skip to content

Commit 90f88f8

Browse files
committed
Merge remote-tracking branch 'origin/master' into HEAD
2 parents e4f6d36 + 118204e commit 90f88f8

File tree

377 files changed

+6755
-4838
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

377 files changed

+6755
-4838
lines changed

MODULE.bazel

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ bazel_dep(name = "bazel-orfs")
162162
# To bump version, run: bazelisk run @bazel-orfs//:bump
163163
git_override(
164164
module_name = "bazel-orfs",
165-
commit = "3c59a8ef8a1b4cc4962ebcb7bb3f09102c288ec5",
165+
commit = "06be7f48c85f3e66e4a79205a68ae2170be88273",
166166
remote = "https://github.com/The-OpenROAD-Project/bazel-orfs.git",
167167
)
168168

@@ -171,10 +171,10 @@ orfs = use_extension("@bazel-orfs//:extension.bzl", "orfs_repositories")
171171
# To bump version, run: bazelisk run @bazel-orfs//:bump
172172
orfs.default(
173173
# Official image https://hub.docker.com/r/openroad/orfs/tags
174-
image = "docker.io/openroad/orfs:v3.0-4226-ga3914fbf6",
174+
image = "docker.io/openroad/orfs:v3.0-4230-g26b521c49",
175175
# Use OpenROAD of this repo instead of from the docker image
176176
openroad = "//:openroad",
177-
sha256 = "ff09cbf243d07481643109a583f4f9547e74f95a06f55cb9af446612a6eb7033",
177+
sha256 = "8fc7ac130828053d7f0a9ad93ae8e3a74e9b24be6e76f9900f809ff93a80d005",
178178
)
179179
use_repo(orfs, "com_github_nixos_patchelf_download")
180180
use_repo(orfs, "docker_orfs")

MODULE.bazel.lock

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

src/Design.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include "ord/Design.h"
55

6+
#include <algorithm>
67
#include <cmath>
78
#include <cstdint>
89
#include <istream>
@@ -224,7 +225,7 @@ std::uint64_t Design::getNetRoutedLength(odb::dbNet* net)
224225
for (odb::dbSWire* swire : net->getSWires()) {
225226
for (odb::dbSBox* wire : swire->getWires()) {
226227
if (wire != nullptr && !(wire->isVia())) {
227-
route_length += wire->getLength();
228+
route_length += std::max(wire->getDX(), wire->getDY());
228229
}
229230
}
230231
}

src/cts/include/cts/TritonCTS.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ class TritonCTS
188188
double computeInsertionDelay(const std::string& name,
189189
odb::dbInst* inst,
190190
odb::dbMTerm* mterm);
191-
void writeDummyLoadsToDb(Clock& clockNet,
192-
std::unordered_set<odb::dbInst*>& dummies);
191+
int writeDummyLoadsToDb(Clock& clockNet,
192+
std::unordered_set<odb::dbInst*>& dummies);
193193
bool computeIdealOutputCaps(Clock& clockNet);
194194
void findCandidateDummyCells(std::vector<sta::LibertyCell*>& dummyCandidates);
195195
odb::dbInst* insertDummyCell(

src/cts/src/TreeBuilder.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ class TreeBuilder
221221

222222
float getAveSinkArrival() const { return aveArrival_; }
223223
void setAveSinkArrival(float arrival) { aveArrival_ = arrival; }
224+
float getNDummies() const { return nDummies_; }
225+
void setNDummies(float nDummies) { nDummies_ = nDummies; }
224226
odb::dbInst* getTopBuffer() const { return topBuffer_; }
225227
void setTopBuffer(odb::dbInst* inst) { topBuffer_ = inst; }
226228
std::string getTopBufferName() const { return topBufferName_; }
@@ -256,6 +258,7 @@ class TreeBuilder
256258
insertionDelays_;
257259
TreeType type_ = TreeType::RegularTree;
258260
float aveArrival_ = 0.0;
261+
int nDummies_ = 0;
259262
odb::dbInst* topBuffer_ = nullptr;
260263
std::string topBufferName_;
261264
odb::dbNet* drivingNet_ = nullptr;

src/cts/src/TritonCTS.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,8 @@ void TritonCTS::writeDataToDb()
494494
writeClockNDRsToDb(builder.get());
495495
}
496496
if (options_->dummyLoadEnabled()) {
497-
writeDummyLoadsToDb(builder->getClock(), clkDummies);
497+
int nDummies = writeDummyLoadsToDb(builder->getClock(), clkDummies);
498+
builder->setNDummies(nDummies);
498499
}
499500
}
500501

@@ -538,7 +539,8 @@ void TritonCTS::writeDataToDb()
538539
}
539540
logger_->info(CTS, 102, " Path depth {} - {}", minDepth, maxDepth);
540541
if (options_->dummyLoadEnabled()) {
541-
logger_->info(CTS, 207, " Leaf load cells {}", dummyLoadIndex_);
542+
logger_->info(
543+
CTS, 207, " Dummy loads inserted {}", builder->getNDummies());
542544
}
543545
}
544546
}
@@ -2122,20 +2124,21 @@ sta::LibertyCell* findBestDummyCell(
21222124
return bestCell;
21232125
}
21242126

2125-
void TritonCTS::writeDummyLoadsToDb(Clock& clockNet,
2126-
std::unordered_set<odb::dbInst*>& dummies)
2127+
int TritonCTS::writeDummyLoadsToDb(Clock& clockNet,
2128+
std::unordered_set<odb::dbInst*>& dummies)
21272129
{
21282130
// Traverse clock tree and compute ideal output caps for clock
21292131
// buffers in the same level
21302132
if (!computeIdealOutputCaps(clockNet)) {
21312133
// No cap adjustment is needed
2132-
return;
2134+
return 0;
21332135
}
21342136

21352137
// Find suitable candidate cells for dummy loads
21362138
std::vector<sta::LibertyCell*> dummyCandidates;
21372139
findCandidateDummyCells(dummyCandidates);
21382140

2141+
int nDummies = 0;
21392142
clockNet.forEachSubNet([&](ClockSubNet& subNet) {
21402143
subNet.forEachSink([&](ClockInst* inst) {
21412144
if (inst->isClockBuffer()
@@ -2145,6 +2148,7 @@ void TritonCTS::writeDummyLoadsToDb(Clock& clockNet,
21452148
= insertDummyCell(clockNet, inst, dummyCandidates);
21462149
if (dummyInst != nullptr) {
21472150
dummies.insert(dummyInst);
2151+
nDummies++;
21482152
}
21492153
}
21502154
});
@@ -2153,6 +2157,7 @@ void TritonCTS::writeDummyLoadsToDb(Clock& clockNet,
21532157
if (logger_->debugCheck(utl::CTS, "dummy load", 1)) {
21542158
printClockNetwork(clockNet);
21552159
}
2160+
return nDummies;
21562161
}
21572162

21582163
// Return true if any clock buffers need cap adjustment; false otherwise

src/cts/test/array.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@
103103
[INFO CTS-0100] Leaf buffers 103
104104
[INFO CTS-0101] Average sink wire length 9313.40 um
105105
[INFO CTS-0102] Path depth 16 - 17
106-
[INFO CTS-0207] Leaf load cells 4
106+
[INFO CTS-0207] Dummy loads inserted 0
107107
[INFO CTS-0098] Clock net "clk_regs"
108108
[INFO CTS-0099] Sinks 2254
109109
[INFO CTS-0100] Leaf buffers 227
110110
[INFO CTS-0101] Average sink wire length 4121.94 um
111111
[INFO CTS-0102] Path depth 17 - 17
112-
[INFO CTS-0207] Leaf load cells 4
112+
[INFO CTS-0207] Dummy loads inserted 4
113113
[INFO CTS-0033] Balancing latency for clock clk
114114
[INFO CTS-0036] inserted 3 delay buffers
115115
[INFO CTS-0037] Total number of delay buffers: 3

src/cts/test/array_ins_delay.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@
103103
[INFO CTS-0100] Leaf buffers 103
104104
[INFO CTS-0101] Average sink wire length 9313.40 um
105105
[INFO CTS-0102] Path depth 16 - 17
106-
[INFO CTS-0207] Leaf load cells 4
106+
[INFO CTS-0207] Dummy loads inserted 0
107107
[INFO CTS-0098] Clock net "clk_regs"
108108
[INFO CTS-0099] Sinks 2254
109109
[INFO CTS-0100] Leaf buffers 227
110110
[INFO CTS-0101] Average sink wire length 4121.94 um
111111
[INFO CTS-0102] Path depth 17 - 17
112-
[INFO CTS-0207] Leaf load cells 4
112+
[INFO CTS-0207] Dummy loads inserted 4
113113
[INFO CTS-0033] Balancing latency for clock clk
114114
[INFO CTS-0036] inserted 3 delay buffers
115115
[INFO CTS-0037] Total number of delay buffers: 3

src/cts/test/array_no_blockages.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,13 @@
102102
[INFO CTS-0100] Leaf buffers 103
103103
[INFO CTS-0101] Average sink wire length 9415.86 um
104104
[INFO CTS-0102] Path depth 16 - 17
105-
[INFO CTS-0207] Leaf load cells 4
105+
[INFO CTS-0207] Dummy loads inserted 0
106106
[INFO CTS-0098] Clock net "clk_regs"
107107
[INFO CTS-0099] Sinks 2254
108108
[INFO CTS-0100] Leaf buffers 227
109109
[INFO CTS-0101] Average sink wire length 4117.74 um
110110
[INFO CTS-0102] Path depth 17 - 17
111-
[INFO CTS-0207] Leaf load cells 4
111+
[INFO CTS-0207] Dummy loads inserted 4
112112
[INFO CTS-0033] Balancing latency for clock clk
113113
[INFO CTS-0036] inserted 4 delay buffers
114114
[INFO CTS-0037] Total number of delay buffers: 4

src/cts/test/array_repair_clock_nets.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@
103103
[INFO CTS-0100] Leaf buffers 103
104104
[INFO CTS-0101] Average sink wire length 9313.40 um
105105
[INFO CTS-0102] Path depth 16 - 17
106-
[INFO CTS-0207] Leaf load cells 4
106+
[INFO CTS-0207] Dummy loads inserted 0
107107
[INFO CTS-0098] Clock net "clk_regs"
108108
[INFO CTS-0099] Sinks 2254
109109
[INFO CTS-0100] Leaf buffers 227
110110
[INFO CTS-0101] Average sink wire length 4121.94 um
111111
[INFO CTS-0102] Path depth 17 - 17
112-
[INFO CTS-0207] Leaf load cells 4
112+
[INFO CTS-0207] Dummy loads inserted 4
113113
[INFO RSZ-0047] Found 38 long wires.
114114
[INFO RSZ-0048] Inserted 160 buffers in 38 nets.
115115
[INFO CTS-0033] Balancing latency for clock clk

0 commit comments

Comments
 (0)