Skip to content

Commit 42676d1

Browse files
committed
Merge branch 'master' into mpl-notch-penalty
2 parents 5d053d0 + 03ae045 commit 42676d1

Some content is hidden

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

88 files changed

+3227
-1744
lines changed

src/dbSta/src/dbEditHierarchy.cc

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -236,12 +236,34 @@ void dbEditHierarchy::hierarchicalConnect(dbITerm* source_pin,
236236

237237
dlogHierConnStart(source_pin, dest_pin, connection_name);
238238

239-
// 1. Get the scope (dbModule*) of the source and destination pins
240-
dbModule* source_db_module = source_pin->getInst()->getModule();
241-
dbModule* dest_db_module = dest_pin->getInst()->getModule();
242-
// it is possible that one or other of the pins is not involved
243-
// in hierarchy, which is ok, and the source/dest modnet will be null
244-
dbModNet* source_db_mod_net = source_pin->getModNet();
239+
//
240+
// 1. Connect source and dest pins directly in flat flow
241+
//
242+
dbNet* source_db_net = source_pin->getNet();
243+
dbNet* dest_db_net = dest_pin->getNet();
244+
if (db_network_->hierarchy_ == false) {
245+
// If both source pin and dest pin do not have a corresponding flat net,
246+
// Create a new net and connect it with source pin.
247+
if (source_db_net == nullptr && dest_db_net == nullptr) {
248+
Net* new_net = db_network_->makeNet(
249+
connection_name,
250+
db_network_->parent(db_network_->dbToSta(source_pin->getInst())),
251+
odb::dbNameUniquifyType::IF_NEEDED);
252+
source_db_net = db_network_->staToDb(new_net);
253+
source_pin->connect(source_db_net);
254+
}
255+
256+
// Connect
257+
if (source_db_net) {
258+
dest_pin->connect(source_db_net);
259+
} else {
260+
assert(dest_db_net);
261+
source_pin->connect(dest_db_net);
262+
}
263+
264+
dlogHierConnDone();
265+
return; // Done here in a flat flow
266+
}
245267

246268
//
247269
// 2. Make sure there is a direct flat net connection
@@ -250,7 +272,6 @@ void dbEditHierarchy::hierarchicalConnect(dbITerm* source_pin,
250272
// co-existing, something we respect even when making
251273
// new hierarchical connections.
252274
//
253-
dbNet* source_db_net = source_pin->getNet();
254275
if (!source_db_net) {
255276
dlogHierConnCreateFlatNet(connection_name);
256277
Net* new_net = db_network_->makeNet(
@@ -271,6 +292,13 @@ void dbEditHierarchy::hierarchicalConnect(dbITerm* source_pin,
271292
// 3. Make the hierarchical connection.
272293
// in case when pins in different modules
273294
//
295+
296+
// Get the scope (dbModule*) of the source and destination pins
297+
dbModule* source_db_module = source_pin->getInst()->getModule();
298+
dbModule* dest_db_module = dest_pin->getInst()->getModule();
299+
// it is possible that one or other of the pins is not involved
300+
// in hierarchy, which is ok, and the source/dest modnet will be null
301+
dbModNet* source_db_mod_net = source_pin->getModNet();
274302
if (source_db_module != dest_db_module) {
275303
//
276304
// 3.1. Attempt to factor connection (minimize punch through), and return

src/dbSta/src/dbNetwork.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,6 +1578,7 @@ ObjectId dbNetwork::id(const Net* net) const
15781578
const dbObject* obj = reinterpret_cast<const dbObject*>(net);
15791579
return getDbNwkObjectId(obj);
15801580
}
1581+
assert(dnet != nullptr);
15811582
return dnet->getId();
15821583
}
15831584

src/dft/src/Dft.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,17 @@ void Dft::executeDftPlan()
118118
auto scan_out_term = scan_cell->getScanOut().getValue();
119119
db_scaninst->setAccessPins(
120120
{.scan_in = scan_in_term, .scan_out = scan_out_term});
121+
122+
const ClockDomain& clock_domain = scan_cell->getClockDomain();
123+
db_scaninst->setScanClock(clock_domain.getClockName());
124+
switch (clock_domain.getClockEdge()) {
125+
case ClockEdge::Rising:
126+
db_scaninst->setClockEdge(odb::dbScanInst::ClockEdge::Rising);
127+
break;
128+
case ClockEdge::Falling:
129+
db_scaninst->setClockEdge(odb::dbScanInst::ClockEdge::Falling);
130+
break;
131+
}
121132
}
122133

123134
std::optional<ScanDriver> sc_enable_driver = chain->getScanEnable();

src/gpl/src/nesterovBase.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2714,10 +2714,11 @@ void NesterovBase::updateNextIter(const int iter)
27142714
reprint_iter_header_ = false;
27152715
}
27162716

2717+
dbBlock* block = pb_->db()->getChip()->getBlock();
27172718
log_->report("{:9d} | {:8.4f} | {:13.6e} | {:+7.2f}% | {:9.2e} | {:>5}",
27182719
iter,
27192720
sumOverflowUnscaled_,
2720-
static_cast<double>(hpwl),
2721+
block->dbuToMicrons(hpwl),
27212722
percentageChange,
27222723
densityPenalty_,
27232724
group_name);
@@ -2848,11 +2849,12 @@ bool NesterovBase::checkConvergence(int gpl_iter_count,
28482849
const std::string group_name
28492850
= is_power_domain ? pb_->group()->getName() : "";
28502851
const int final_iter = gpl_iter_count;
2852+
dbBlock* block = pb_->db()->getChip()->getBlock();
28512853

28522854
log_->report("{:9d} | {:8.4f} | {:13.6e} | {:>8} | {:9.2e} | {:>5}",
28532855
final_iter,
28542856
sumOverflowUnscaled_,
2855-
static_cast<double>(nbc_->getHpwl()),
2857+
block->dbuToMicrons(nbc_->getHpwl()),
28562858
"", // No % delta
28572859
densityPenalty_,
28582860
group_name);
@@ -2884,7 +2886,6 @@ bool NesterovBase::checkConvergence(int gpl_iter_count,
28842886
rb->getRudyRC(false));
28852887
}
28862888

2887-
dbBlock* block = pb_->db()->getChip()->getBlock();
28882889
log_->info(GPL,
28892890
1002,
28902891
format_label_float,

src/gpl/test/ar01.ok

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -33,33 +33,33 @@
3333
[INFO GPL-0031] HPWL: Half-Perimeter Wirelength
3434
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
3535
---------------------------------------------------------------
36-
0 | 0.8370 | 4.530151e+06 | +0.00% | 1.56e-11 |
37-
10 | 0.7179 | 5.057759e+06 | +11.65% | 2.54e-11 |
38-
20 | 0.7211 | 5.042888e+06 | -0.29% | 4.15e-11 |
39-
30 | 0.7201 | 5.049725e+06 | +0.14% | 6.75e-11 |
40-
40 | 0.7162 | 5.059359e+06 | +0.19% | 1.10e-10 |
41-
50 | 0.7109 | 5.072138e+06 | +0.25% | 1.79e-10 |
42-
60 | 0.7037 | 5.091093e+06 | +0.37% | 2.92e-10 |
43-
70 | 0.6936 | 5.120120e+06 | +0.57% | 4.75e-10 |
44-
80 | 0.6772 | 5.157885e+06 | +0.74% | 7.74e-10 |
45-
90 | 0.6560 | 5.204899e+06 | +0.91% | 1.26e-09 |
46-
100 | 0.6316 | 5.263459e+06 | +1.13% | 2.05e-09 |
47-
110 | 0.6025 | 5.329568e+06 | +1.26% | 3.35e-09 |
48-
120 | 0.5591 | 5.374657e+06 | +0.85% | 5.45e-09 |
49-
130 | 0.5133 | 5.398604e+06 | +0.45% | 8.88e-09 |
50-
140 | 0.4639 | 5.417272e+06 | +0.35% | 1.45e-08 |
51-
150 | 0.4096 | 5.434663e+06 | +0.32% | 2.36e-08 |
52-
160 | 0.3456 | 5.443920e+06 | +0.17% | 3.84e-08 |
53-
170 | 0.3096 | 5.447272e+06 | +0.06% | 5.71e-08 |
54-
180 | 0.2750 | 5.485946e+06 | +0.71% | 8.41e-08 |
55-
190 | 0.2424 | 5.541211e+06 | +1.01% | 1.24e-07 |
56-
200 | 0.2113 | 5.584615e+06 | +0.78% | 1.83e-07 |
57-
210 | 0.1910 | 5.639443e+06 | +0.98% | 2.69e-07 |
58-
220 | 0.1640 | 5.667544e+06 | +0.50% | 3.96e-07 |
59-
230 | 0.1430 | 5.700106e+06 | +0.57% | 5.84e-07 |
60-
240 | 0.1245 | 5.727338e+06 | +0.48% | 8.60e-07 |
61-
250 | 0.1028 | 5.749403e+06 | +0.39% | 1.27e-06 |
62-
251 | 0.1000 | 5.753634e+06 | | 1.37e-06 |
36+
0 | 0.8370 | 2.265075e+03 | +0.00% | 1.56e-11 |
37+
10 | 0.7179 | 2.528880e+03 | +11.65% | 2.54e-11 |
38+
20 | 0.7211 | 2.521444e+03 | -0.29% | 4.15e-11 |
39+
30 | 0.7201 | 2.524863e+03 | +0.14% | 6.75e-11 |
40+
40 | 0.7162 | 2.529680e+03 | +0.19% | 1.10e-10 |
41+
50 | 0.7109 | 2.536069e+03 | +0.25% | 1.79e-10 |
42+
60 | 0.7037 | 2.545546e+03 | +0.37% | 2.92e-10 |
43+
70 | 0.6936 | 2.560060e+03 | +0.57% | 4.75e-10 |
44+
80 | 0.6772 | 2.578943e+03 | +0.74% | 7.74e-10 |
45+
90 | 0.6560 | 2.602450e+03 | +0.91% | 1.26e-09 |
46+
100 | 0.6316 | 2.631729e+03 | +1.13% | 2.05e-09 |
47+
110 | 0.6025 | 2.664784e+03 | +1.26% | 3.35e-09 |
48+
120 | 0.5591 | 2.687329e+03 | +0.85% | 5.45e-09 |
49+
130 | 0.5133 | 2.699302e+03 | +0.45% | 8.88e-09 |
50+
140 | 0.4639 | 2.708636e+03 | +0.35% | 1.45e-08 |
51+
150 | 0.4096 | 2.717331e+03 | +0.32% | 2.36e-08 |
52+
160 | 0.3456 | 2.721960e+03 | +0.17% | 3.84e-08 |
53+
170 | 0.3096 | 2.723636e+03 | +0.06% | 5.71e-08 |
54+
180 | 0.2750 | 2.742973e+03 | +0.71% | 8.41e-08 |
55+
190 | 0.2424 | 2.770606e+03 | +1.01% | 1.24e-07 |
56+
200 | 0.2113 | 2.792307e+03 | +0.78% | 1.83e-07 |
57+
210 | 0.1910 | 2.819722e+03 | +0.98% | 2.69e-07 |
58+
220 | 0.1640 | 2.833772e+03 | +0.50% | 3.96e-07 |
59+
230 | 0.1430 | 2.850053e+03 | +0.57% | 5.84e-07 |
60+
240 | 0.1245 | 2.863669e+03 | +0.48% | 8.60e-07 |
61+
250 | 0.1028 | 2.874702e+03 | +0.39% | 1.27e-06 |
62+
251 | 0.1000 | 2.876817e+03 | | 1.37e-06 |
6363
---------------------------------------------------------------
6464
[INFO GPL-1001] Global placement finished at iteration 251
6565
[INFO GPL-1002] Placed Cell Area 569.7720

src/gpl/test/ar02.ok

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -33,33 +33,33 @@
3333
[INFO GPL-0031] HPWL: Half-Perimeter Wirelength
3434
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
3535
---------------------------------------------------------------
36-
0 | 0.8387 | 4.530351e+06 | +0.00% | 9.35e-12 |
37-
10 | 0.7205 | 5.094786e+06 | +12.46% | 1.52e-11 |
38-
20 | 0.7231 | 5.076772e+06 | -0.35% | 2.48e-11 |
39-
30 | 0.7221 | 5.084584e+06 | +0.15% | 4.04e-11 |
40-
40 | 0.7187 | 5.093815e+06 | +0.18% | 6.58e-11 |
41-
50 | 0.7141 | 5.106826e+06 | +0.26% | 1.07e-10 |
42-
60 | 0.7050 | 5.125461e+06 | +0.36% | 1.75e-10 |
43-
70 | 0.6928 | 5.151543e+06 | +0.51% | 2.84e-10 |
44-
80 | 0.6794 | 5.188727e+06 | +0.72% | 4.63e-10 |
45-
90 | 0.6621 | 5.249644e+06 | +1.17% | 7.55e-10 |
46-
100 | 0.6282 | 5.299218e+06 | +0.94% | 1.23e-09 |
47-
110 | 0.5948 | 5.360758e+06 | +1.16% | 2.00e-09 |
48-
120 | 0.5559 | 5.406497e+06 | +0.85% | 3.26e-09 |
49-
130 | 0.5133 | 5.445400e+06 | +0.72% | 5.31e-09 |
50-
140 | 0.4645 | 5.433296e+06 | -0.22% | 8.65e-09 |
51-
150 | 0.4114 | 5.400027e+06 | -0.61% | 1.41e-08 |
52-
160 | 0.3682 | 5.420203e+06 | +0.37% | 2.30e-08 |
53-
170 | 0.3253 | 5.427889e+06 | +0.14% | 3.59e-08 |
54-
180 | 0.2963 | 5.469859e+06 | +0.77% | 5.29e-08 |
55-
190 | 0.2672 | 5.525985e+06 | +1.03% | 7.80e-08 |
56-
200 | 0.2412 | 5.573060e+06 | +0.85% | 1.15e-07 |
57-
210 | 0.2082 | 5.614468e+06 | +0.74% | 1.69e-07 |
58-
220 | 0.1760 | 5.662721e+06 | +0.86% | 2.49e-07 |
59-
230 | 0.1488 | 5.697513e+06 | +0.61% | 3.67e-07 |
60-
240 | 0.1233 | 5.736322e+06 | +0.68% | 5.41e-07 |
61-
250 | 0.1032 | 5.772392e+06 | +0.63% | 7.97e-07 |
62-
252 | 0.0993 | 5.777770e+06 | | 8.95e-07 |
36+
0 | 0.8387 | 2.265175e+03 | +0.00% | 9.35e-12 |
37+
10 | 0.7205 | 2.547393e+03 | +12.46% | 1.52e-11 |
38+
20 | 0.7231 | 2.538386e+03 | -0.35% | 2.48e-11 |
39+
30 | 0.7221 | 2.542292e+03 | +0.15% | 4.04e-11 |
40+
40 | 0.7187 | 2.546907e+03 | +0.18% | 6.58e-11 |
41+
50 | 0.7141 | 2.553413e+03 | +0.26% | 1.07e-10 |
42+
60 | 0.7050 | 2.562731e+03 | +0.36% | 1.75e-10 |
43+
70 | 0.6928 | 2.575771e+03 | +0.51% | 2.84e-10 |
44+
80 | 0.6794 | 2.594363e+03 | +0.72% | 4.63e-10 |
45+
90 | 0.6621 | 2.624822e+03 | +1.17% | 7.55e-10 |
46+
100 | 0.6282 | 2.649609e+03 | +0.94% | 1.23e-09 |
47+
110 | 0.5948 | 2.680379e+03 | +1.16% | 2.00e-09 |
48+
120 | 0.5559 | 2.703249e+03 | +0.85% | 3.26e-09 |
49+
130 | 0.5133 | 2.722700e+03 | +0.72% | 5.31e-09 |
50+
140 | 0.4645 | 2.716648e+03 | -0.22% | 8.65e-09 |
51+
150 | 0.4114 | 2.700014e+03 | -0.61% | 1.41e-08 |
52+
160 | 0.3682 | 2.710102e+03 | +0.37% | 2.30e-08 |
53+
170 | 0.3253 | 2.713945e+03 | +0.14% | 3.59e-08 |
54+
180 | 0.2963 | 2.734930e+03 | +0.77% | 5.29e-08 |
55+
190 | 0.2672 | 2.762992e+03 | +1.03% | 7.80e-08 |
56+
200 | 0.2412 | 2.786530e+03 | +0.85% | 1.15e-07 |
57+
210 | 0.2082 | 2.807234e+03 | +0.74% | 1.69e-07 |
58+
220 | 0.1760 | 2.831360e+03 | +0.86% | 2.49e-07 |
59+
230 | 0.1488 | 2.848756e+03 | +0.61% | 3.67e-07 |
60+
240 | 0.1233 | 2.868161e+03 | +0.68% | 5.41e-07 |
61+
250 | 0.1032 | 2.886196e+03 | +0.63% | 7.97e-07 |
62+
252 | 0.0993 | 2.888885e+03 | | 8.95e-07 |
6363
---------------------------------------------------------------
6464
[INFO GPL-1001] Global placement finished at iteration 252
6565
[INFO GPL-1002] Placed Cell Area 569.7720

src/gpl/test/cluster_place01.ok

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -34,33 +34,33 @@
3434
[INFO GPL-0031] HPWL: Half-Perimeter Wirelength
3535
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
3636
---------------------------------------------------------------
37-
0 | 0.8604 | 4.297022e+06 | +0.00% | 1.12e-11 |
38-
10 | 0.7526 | 4.779097e+06 | +11.22% | 1.82e-11 |
39-
20 | 0.7544 | 4.758900e+06 | -0.42% | 2.97e-11 |
40-
30 | 0.7515 | 4.770482e+06 | +0.24% | 4.83e-11 |
41-
40 | 0.7484 | 4.783883e+06 | +0.28% | 7.88e-11 |
42-
50 | 0.7422 | 4.805226e+06 | +0.45% | 1.28e-10 |
43-
60 | 0.7332 | 4.835991e+06 | +0.64% | 2.09e-10 |
44-
70 | 0.7167 | 4.877955e+06 | +0.87% | 3.40e-10 |
45-
80 | 0.6944 | 4.928834e+06 | +1.04% | 5.54e-10 |
46-
90 | 0.6709 | 4.994582e+06 | +1.33% | 9.03e-10 |
47-
100 | 0.6415 | 5.066371e+06 | +1.44% | 1.47e-09 |
48-
110 | 0.6070 | 5.149390e+06 | +1.64% | 2.40e-09 |
49-
120 | 0.5643 | 5.213435e+06 | +1.24% | 3.90e-09 |
50-
130 | 0.5166 | 5.265230e+06 | +0.99% | 6.36e-09 |
51-
140 | 0.4710 | 5.333715e+06 | +1.30% | 1.04e-08 |
52-
150 | 0.4254 | 5.382625e+06 | +0.92% | 1.69e-08 |
53-
160 | 0.3701 | 5.437638e+06 | +1.02% | 2.75e-08 |
54-
170 | 0.3292 | 5.494310e+06 | +1.04% | 4.26e-08 |
55-
180 | 0.2910 | 5.571295e+06 | +1.40% | 6.27e-08 |
56-
190 | 0.2562 | 5.614359e+06 | +0.77% | 9.24e-08 |
57-
200 | 0.2258 | 5.673880e+06 | +1.06% | 1.36e-07 |
58-
210 | 0.1923 | 5.718499e+06 | +0.79% | 2.00e-07 |
59-
220 | 0.1655 | 5.761971e+06 | +0.76% | 2.95e-07 |
60-
230 | 0.1373 | 5.792032e+06 | +0.52% | 4.35e-07 |
61-
240 | 0.1173 | 5.819725e+06 | +0.48% | 6.41e-07 |
62-
250 | 0.1042 | 5.853532e+06 | +0.58% | 9.44e-07 |
63-
253 | 0.0997 | 5.864519e+06 | | 1.10e-06 |
37+
0 | 0.8604 | 2.148511e+03 | +0.00% | 1.12e-11 |
38+
10 | 0.7526 | 2.389548e+03 | +11.22% | 1.82e-11 |
39+
20 | 0.7544 | 2.379450e+03 | -0.42% | 2.97e-11 |
40+
30 | 0.7515 | 2.385241e+03 | +0.24% | 4.83e-11 |
41+
40 | 0.7484 | 2.391941e+03 | +0.28% | 7.88e-11 |
42+
50 | 0.7422 | 2.402613e+03 | +0.45% | 1.28e-10 |
43+
60 | 0.7332 | 2.417995e+03 | +0.64% | 2.09e-10 |
44+
70 | 0.7167 | 2.438977e+03 | +0.87% | 3.40e-10 |
45+
80 | 0.6944 | 2.464417e+03 | +1.04% | 5.54e-10 |
46+
90 | 0.6709 | 2.497291e+03 | +1.33% | 9.03e-10 |
47+
100 | 0.6415 | 2.533186e+03 | +1.44% | 1.47e-09 |
48+
110 | 0.6070 | 2.574695e+03 | +1.64% | 2.40e-09 |
49+
120 | 0.5643 | 2.606718e+03 | +1.24% | 3.90e-09 |
50+
130 | 0.5166 | 2.632615e+03 | +0.99% | 6.36e-09 |
51+
140 | 0.4710 | 2.666858e+03 | +1.30% | 1.04e-08 |
52+
150 | 0.4254 | 2.691312e+03 | +0.92% | 1.69e-08 |
53+
160 | 0.3701 | 2.718819e+03 | +1.02% | 2.75e-08 |
54+
170 | 0.3292 | 2.747155e+03 | +1.04% | 4.26e-08 |
55+
180 | 0.2910 | 2.785648e+03 | +1.40% | 6.27e-08 |
56+
190 | 0.2562 | 2.807180e+03 | +0.77% | 9.24e-08 |
57+
200 | 0.2258 | 2.836940e+03 | +1.06% | 1.36e-07 |
58+
210 | 0.1923 | 2.859249e+03 | +0.79% | 2.00e-07 |
59+
220 | 0.1655 | 2.880985e+03 | +0.76% | 2.95e-07 |
60+
230 | 0.1373 | 2.896016e+03 | +0.52% | 4.35e-07 |
61+
240 | 0.1173 | 2.909863e+03 | +0.48% | 6.41e-07 |
62+
250 | 0.1042 | 2.926766e+03 | +0.58% | 9.44e-07 |
63+
253 | 0.0997 | 2.932260e+03 | | 1.10e-06 |
6464
---------------------------------------------------------------
6565
[INFO GPL-1001] Global placement finished at iteration 253
6666
[INFO GPL-1002] Placed Cell Area 569.7720

0 commit comments

Comments
 (0)