Skip to content

Commit c18398a

Browse files
committed
Tried to minimize QoR impact 5
5. Disconnect first, and mergeNet in hier flow too. Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
1 parent 2fc1de9 commit c18398a

1 file changed

Lines changed: 44 additions & 37 deletions

File tree

src/rsz/src/UnbufferMove.cc

Lines changed: 44 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -418,45 +418,52 @@ void UnbufferMove::removeBuffer(Instance* buffer)
418418
}
419419

420420
// jk: behavior change point3
421-
if (db_network_->hasHierarchy() == false) {
422-
if (db_removed) {
423-
db_survivor->mergeNet(db_removed);
424-
}
425-
sta_->disconnectPin(in_pin);
426-
sta_->disconnectPin(out_pin);
427-
} else {
428-
// Disconnect buffer input/output pins
429-
sta_->disconnectPin(in_pin);
430-
sta_->disconnectPin(out_pin);
431-
432-
// Merge hier net
433-
// - mergeModNet() should be done before mergeNet() because
434-
// mergeNet() can involve the hierarchical net traversal during the merge
435-
// operation.
436-
if (survivor_modnet != nullptr && removed_modnet != nullptr) {
437-
// Merge two hier nets
438-
survivor_modnet->mergeModNet(removed_modnet);
439-
} else if (survivor_modnet != nullptr) {
440-
// If there is a single modnet, copy terminals of the flat net to be
441-
// removed
442-
survivor_modnet->connectTermsOf(db_removed);
443-
} else if (removed_modnet != nullptr) {
444-
// If there is a single modnet, it should survive.
445-
survivor_modnet = removed_modnet;
446-
removed_modnet = nullptr;
447-
448-
// Copy terminals of the survivor flat net
449-
survivor_modnet->connectTermsOf(db_survivor);
450-
451-
// survivor_modnet should be renamed later.
452-
new_modnet_name = db_survivor->getBlock()->getBaseName(
453-
db_survivor->getName().c_str());
454-
}
455-
456-
// Merge flat net
457-
db_survivor->mergeNet(db_removed);
421+
// if (db_network_->hasHierarchy() == false) {
422+
// if (db_removed) {
423+
// db_survivor->mergeNet(db_removed);
424+
// }
425+
// sta_->disconnectPin(in_pin);
426+
// sta_->disconnectPin(out_pin);
427+
//} else {
428+
429+
// jk: behavior change point4
430+
// Disconnect buffer input/output pins
431+
// sta_->disconnectPin(in_pin);
432+
// sta_->disconnectPin(out_pin);
433+
434+
// Merge hier net
435+
// - mergeModNet() should be done before mergeNet() because
436+
// mergeNet() can involve the hierarchical net traversal during the merge
437+
// operation.
438+
if (survivor_modnet != nullptr && removed_modnet != nullptr) {
439+
// Merge two hier nets
440+
survivor_modnet->mergeModNet(removed_modnet);
441+
} else if (survivor_modnet != nullptr) {
442+
// If there is a single modnet, copy terminals of the flat net to be
443+
// removed
444+
survivor_modnet->connectTermsOf(db_removed);
445+
} else if (removed_modnet != nullptr) {
446+
// If there is a single modnet, it should survive.
447+
survivor_modnet = removed_modnet;
448+
removed_modnet = nullptr;
449+
450+
// Copy terminals of the survivor flat net
451+
survivor_modnet->connectTermsOf(db_survivor);
452+
453+
// survivor_modnet should be renamed later.
454+
new_modnet_name
455+
= db_survivor->getBlock()->getBaseName(db_survivor->getName().c_str());
458456
}
459457

458+
// Merge flat net
459+
db_survivor->mergeNet(db_removed);
460+
461+
// jk: behavior change point4
462+
// Disconnect buffer input/output pins
463+
sta_->disconnectPin(in_pin);
464+
sta_->disconnectPin(out_pin);
465+
//}
466+
460467
// Remove buffer
461468
sta_->deleteInstance(buffer);
462469

0 commit comments

Comments
 (0)