Skip to content

Commit d3f3fd7

Browse files
committed
Merge remote-tracking branch 'private/master' into gpl-area-weight-by-pin
2 parents f781697 + ad56431 commit d3f3fd7

Some content is hidden

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

60 files changed

+589
-578
lines changed

src/grt/src/GlobalRouter.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,7 @@ std::vector<int> GlobalRouter::routeLayerLengths(odb::dbNet* db_net)
577577
if (!db_net->getSigType().isSupply()) {
578578
GRoute& route = routes[db_net];
579579
std::set<RoutePt> route_pts;
580+
// Compute wirelengths from route segments
580581
for (GSegment& segment : route) {
581582
if (segment.isVia()) {
582583
auto& s = segment;
@@ -597,19 +598,12 @@ std::vector<int> GlobalRouter::routeLayerLengths(odb::dbNet* db_net)
597598
}
598599

599600
Net* net = getNet(db_net);
601+
// Compute wirelength from pin position on grid to real pin location
600602
for (Pin& pin : net->getPins()) {
601603
int layer = pin.getConnectionLayer() + 1;
602604
odb::Point grid_pt = pin.getOnGridPosition();
603605
odb::Point pt = pin.getPosition();
604606

605-
std::map<int, std::vector<PointPair>> ap_positions;
606-
bool has_access_points = findPinAccessPointPositions(pin, ap_positions);
607-
if (has_access_points) {
608-
auto ap_position = ap_positions[0].front();
609-
pt = ap_position.first;
610-
grid_pt = ap_position.second;
611-
}
612-
613607
RoutePt grid_route(grid_pt.getX(), grid_pt.getY(), layer);
614608
auto pt_itr = route_pts.find(grid_route);
615609
if (pt_itr == route_pts.end()) {

src/gui/src/search.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ void Search::inDbBPinCreate(odb::dbBPin* pin)
6161
clearShapes();
6262
}
6363

64+
void Search::inDbBPinAddBox(odb::dbBox* box)
65+
{
66+
clearShapes();
67+
}
68+
69+
void Search::inDbBPinRemoveBox(odb::dbBox* box)
70+
{
71+
clearShapes();
72+
}
73+
6474
void Search::inDbBPinDestroy(odb::dbBPin* pin)
6575
{
6676
clearShapes();

src/gui/src/search.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ class Search : public QObject, public odb::dbBlockCallBackObj
226226
const odb::dbPlacementStatus& status) override;
227227
void inDbPostMoveInst(odb::dbInst* inst) override;
228228
void inDbBPinCreate(odb::dbBPin* pin) override;
229+
void inDbBPinAddBox(odb::dbBox* box) override;
230+
void inDbBPinRemoveBox(odb::dbBox* box) override;
229231
void inDbBPinDestroy(odb::dbBPin* pin) override;
230232
void inDbFillCreate(odb::dbFill* fill) override;
231233
void inDbWireCreate(odb::dbWire* wire) override;

src/odb/include/odb/dbBlockCallBackObj.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@ class dbBlockCallBackObj
125125

126126
// dbBPin Start
127127
virtual void inDbBPinCreate(dbBPin*) {}
128+
virtual void inDbBPinAddBox(dbBox*) {}
129+
virtual void inDbBPinRemoveBox(dbBox*) {}
128130
virtual void inDbBPinDestroy(dbBPin*) {}
129131
// dbBPin End
130132

src/odb/src/db/dbBPin.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,10 @@ void _dbBPin::removeBox(_dbBox* box)
291291
{
292292
_dbBlock* block = (_dbBlock*) getOwner();
293293

294+
for (auto callback : block->_callbacks) {
295+
callback->inDbBPinRemoveBox((dbBox*) box);
296+
}
297+
294298
dbId<_dbBox> boxid = box->getOID();
295299
if (boxid == boxes_) {
296300
// at head of list, need to move head

src/odb/src/db/dbBTerm.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ void dbBTerm::setSigType(dbSigType type)
276276
"ECO: setSigType {}",
277277
type.getValue());
278278
block->_journal->updateField(
279-
this, _dbBTerm::FLAGS, prev_flags, flagsToUInt(bterm));
279+
this, _dbBTerm::kFlags, prev_flags, flagsToUInt(bterm));
280280
}
281281

282282
for (auto callback : block->_callbacks) {
@@ -306,7 +306,7 @@ void dbBTerm::setIoType(dbIoType type)
306306
"ECO: setIoType {}",
307307
type.getValue());
308308
block->_journal->updateField(
309-
this, _dbBTerm::FLAGS, prev_flags, flagsToUInt(bterm));
309+
this, _dbBTerm::kFlags, prev_flags, flagsToUInt(bterm));
310310
}
311311

312312
for (auto callback : block->_callbacks) {
@@ -625,7 +625,7 @@ dbBTerm* dbBTerm::create(dbNet* net_, const char* name)
625625
net->getId(),
626626
static_cast<void*>(net),
627627
name);
628-
block->_journal->beginAction(dbJournal::CREATE_OBJECT);
628+
block->_journal->beginAction(dbJournal::kCreateObject);
629629
block->_journal->pushParam(dbBTermObj);
630630
block->_journal->pushParam(net->getId());
631631
block->_journal->pushParam(name);
@@ -692,7 +692,7 @@ void _dbBTerm::connectModNet(_dbModNet* mod_net, _dbBlock* block)
692692
mod_net->getId(),
693693
static_cast<void*>(mod_net),
694694
((dbModNet*) mod_net)->getHierarchicalName());
695-
block->_journal->beginAction(dbJournal::CONNECT_OBJECT);
695+
block->_journal->beginAction(dbJournal::kConnectObject);
696696
block->_journal->pushParam(dbBTermObj);
697697
block->_journal->pushParam(bterm->getId());
698698
// the flat net is left out
@@ -729,7 +729,7 @@ void _dbBTerm::connectNet(_dbNet* net, _dbBlock* block)
729729
net->getId(),
730730
static_cast<void*>(net),
731731
((dbNet*) net)->getName());
732-
block->_journal->beginAction(dbJournal::CONNECT_OBJECT);
732+
block->_journal->beginAction(dbJournal::kConnectObject);
733733
block->_journal->pushParam(dbBTermObj);
734734
block->_journal->pushParam(bterm->getId());
735735
block->_journal->pushParam(net->getId());
@@ -794,7 +794,7 @@ void dbBTerm::destroy(dbBTerm* bterm_)
794794
bterm->getId(),
795795
static_cast<void*>(bterm),
796796
bterm->name_);
797-
block->_journal->beginAction(dbJournal::DELETE_OBJECT);
797+
block->_journal->beginAction(dbJournal::kDeleteObject);
798798
block->_journal->pushParam(dbBTermObj);
799799
block->_journal->pushParam(bterm_->getId());
800800
block->_journal->endAction();
@@ -824,7 +824,7 @@ void _dbBTerm::disconnectNet(_dbBTerm* bterm, _dbBlock* block)
824824
net->getId(),
825825
static_cast<void*>(net),
826826
net->name_);
827-
block->_journal->beginAction(dbJournal::DISCONNECT_OBJECT);
827+
block->_journal->beginAction(dbJournal::kDisconnectObject);
828828
block->_journal->pushParam(dbBTermObj);
829829
block->_journal->pushParam(bterm->getId());
830830
block->_journal->pushParam(net->getId());
@@ -882,7 +882,7 @@ void _dbBTerm::disconnectModNet(_dbBTerm* bterm, _dbBlock* block)
882882
mod_net->getId(),
883883
static_cast<void*>(mod_net),
884884
((dbModNet*) mod_net)->getHierarchicalName());
885-
block->_journal->beginAction(dbJournal::DISCONNECT_OBJECT);
885+
block->_journal->beginAction(dbJournal::kDisconnectObject);
886886
block->_journal->pushParam(dbBTermObj);
887887
block->_journal->pushParam(bterm->getId());
888888
// we are not considering the dbNet

src/odb/src/db/dbBTerm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class _dbBTerm : public _dbObject
4444
public:
4545
enum Field // dbJournalField name
4646
{
47-
FLAGS
47+
kFlags
4848
};
4949
// PERSISTANT-MEMBERS
5050
_dbBTermFlags flags_;

src/odb/src/db/dbBlock.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2777,10 +2777,10 @@ void dbBlock::setCornerCount(int cornersStoredCnt,
27772777
cornersStoredCnt,
27782778
extDbCnt,
27792779
name_list);
2780-
block->_journal->beginAction(dbJournal::UPDATE_FIELD);
2780+
block->_journal->beginAction(dbJournal::kUpdateField);
27812781
block->_journal->pushParam(dbBlockObj);
27822782
block->_journal->pushParam(block->getId());
2783-
block->_journal->pushParam(_dbBlock::CORNERCOUNT);
2783+
block->_journal->pushParam(_dbBlock::kCornerCount);
27842784
block->_journal->pushParam(cornersStoredCnt);
27852785
block->_journal->pushParam(extDbCnt);
27862786
block->_journal->pushParam(name_list);
@@ -3147,10 +3147,10 @@ void dbBlock::writeDb(char* filename, int allNode)
31473147
1,
31483148
"ECO: dbBlock {}, writeDb",
31493149
block->getId());
3150-
block->_journal->beginAction(dbJournal::UPDATE_FIELD);
3150+
block->_journal->beginAction(dbJournal::kUpdateField);
31513151
block->_journal->pushParam(dbBlockObj);
31523152
block->_journal->pushParam(block->getId());
3153-
block->_journal->pushParam(_dbBlock::WRITEDB);
3153+
block->_journal->pushParam(_dbBlock::kWriteDb);
31543154
block->_journal->pushParam(filename);
31553155
block->_journal->pushParam(allNode);
31563156
block->_journal->endAction();

src/odb/src/db/dbBlock.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ class _dbBlock : public _dbObject
147147
public:
148148
enum Field // dbJournal field names
149149
{
150-
CORNERCOUNT,
151-
WRITEDB
150+
kCornerCount,
151+
kWriteDb
152152
};
153153

154154
// PERSISTANT-MEMBERS

src/odb/src/db/dbBox.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,11 @@ dbBox* dbBox::create(dbBPin* bpin_,
721721
bpin->boxes_ = box->getOID();
722722

723723
block->add_rect(box->shape_.rect);
724+
725+
for (auto callback : block->_callbacks) {
726+
callback->inDbBPinAddBox((dbBox*) box);
727+
}
728+
724729
return (dbBox*) box;
725730
}
726731

0 commit comments

Comments
 (0)