Skip to content

Commit b33e516

Browse files
committed
Minor changes
Signed-off-by: Jaehyun Kim <[email protected]>
1 parent 880f687 commit b33e516

File tree

7 files changed

+57
-76
lines changed

7 files changed

+57
-76
lines changed

src/cts/src/LatencyBalancer.cpp

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -559,67 +559,6 @@ odb::dbITerm* LatencyBalancer::insertDelayBuffers(
559559
return getFirstInput(returnBuffer);
560560
}
561561

562-
// Create a new delay buffer and connect output pin of driver to input pin of
563-
// new buffer. Output pin of new buffer will be connected later.
564-
odb::dbInst* LatencyBalancer::createDelayBuffer(odb::dbNet* driverNet,
565-
const std::string& clockName,
566-
int locX,
567-
int locY)
568-
{
569-
odb::dbBlock* block = db_->getChip()->getBlock();
570-
// creat a new input net
571-
std::string newNetName
572-
= "delaynet_" + std::to_string(delayBufIndex_) + "_" + clockName;
573-
574-
// hierarchy fix, make the net in the right scope
575-
sta::Pin* driver = nullptr;
576-
odb::dbModule* module = network_->getNetDriverParentModule(
577-
network_->dbToSta(driverNet), driver);
578-
if (module == nullptr) {
579-
// if none put in top level
580-
module = block->getTopModule();
581-
}
582-
sta::Instance* scope
583-
= (module == nullptr || (module == block->getTopModule()))
584-
? network_->topInstance()
585-
: (sta::Instance*) (module->getModInst());
586-
odb::dbNet* newNet = network_->staToDb(network_->makeNet(
587-
newNetName.c_str(), scope, odb::dbNameUniquifyType::IF_NEEDED));
588-
589-
newNet->setSigType(odb::dbSigType::CLOCK);
590-
591-
// create a new delay buffer
592-
std::string newBufName
593-
= "delaybuf_" + std::to_string(delayBufIndex_++) + "_" + clockName;
594-
odb::dbMaster* master = db_->findMaster(options_->getRootBuffer().c_str());
595-
596-
// fix: make buffer in same hierarchical module as driver
597-
598-
odb::dbInst* newBuf
599-
= odb::dbInst::create(block, master, newBufName.c_str(), false, module);
600-
601-
newBuf->setSourceType(odb::dbSourceType::TIMING);
602-
newBuf->setLocation(locX, locY);
603-
newBuf->setPlacementStatus(odb::dbPlacementStatus::PLACED);
604-
605-
// connect driver output with new buffer input
606-
odb::dbITerm* newBufOutTerm = newBuf->getFirstOutput();
607-
odb::dbITerm* newBufInTerm = getFirstInput(newBuf);
608-
newBufInTerm->connect(driverNet);
609-
newBufOutTerm->connect(newNet);
610-
611-
debugPrint(logger_,
612-
CTS,
613-
"insertion delay",
614-
1,
615-
"new delay buffer {} is inserted at ({} {})",
616-
newBuf->getName(),
617-
locX,
618-
locY);
619-
620-
return newBuf;
621-
}
622-
623562
bool LatencyBalancer::propagateClock(odb::dbITerm* input)
624563
{
625564
odb::dbInst* inst = input->getInst();

src/cts/src/LatencyBalancer.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,6 @@ class LatencyBalancer
100100
int srcX,
101101
int srcY,
102102
const std::vector<odb::dbITerm*>& sinksInput);
103-
odb::dbInst* createDelayBuffer(odb::dbNet* driverNet,
104-
const std::string& clockName,
105-
int locX,
106-
int locY);
107103
bool propagateClock(odb::dbITerm* input);
108104
bool isSink(odb::dbITerm* iterm);
109105

src/dbSta/include/db_sta/dbNetwork.hh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,15 @@ class dbNetwork : public ConcreteNetwork
194194
bool isConnected(const Net* net, const Pin* pin) const override;
195195
bool isConnected(const Net* net1, const Net* net2) const override;
196196
bool isConnected(const Pin* source_pin, const Pin* dest_pin) const;
197+
198+
// DEPRECATED.
199+
// - Use dbNet::hierarchicalConnect(dbObject* driver, dbObject* load) instead.
200+
// - The new API can handle both dbBTerm and dbIterm.
197201
void hierarchicalConnect(dbITerm* source_pin,
198202
dbITerm* dest_pin,
199203
const char* connection_name = "net");
204+
205+
// This API is still needed if dbModITerm connection is required.
200206
void hierarchicalConnect(dbITerm* source_pin,
201207
dbModITerm* dest_pin,
202208
const char* connection_name = "net");

src/odb/src/db/dbDatabase.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,6 @@ _dbDatabase::_dbDatabase(_dbDatabase* /* unused: db */, int id)
463463
master_id_ = 0;
464464
logger_ = nullptr;
465465
unique_id_ = id;
466-
hierarchy_ = false;
467466
dbu_per_micron_ = 0;
468467
hierarchy_ = false;
469468

src/odb/src/db/dbInsertBuffer.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ dbInsertBuffer::dbInsertBuffer(dbNet* net)
2727
block_(net ? net->getBlock() : nullptr),
2828
logger_(net ? net->getImpl()->getLogger() : nullptr)
2929
{
30+
assert(net_ != nullptr);
31+
assert(block_ != nullptr);
32+
assert(logger_ != nullptr);
3033
}
3134

3235
void dbInsertBuffer::resetMembers()
@@ -91,7 +94,7 @@ dbInst* dbInsertBuffer::insertBufferSimple(dbObject* term_obj,
9194
const dbNameUniquifyType& uniquify,
9295
bool insertBefore)
9396
{
94-
if (term_obj == nullptr || buffer_master == nullptr || block_ == nullptr) {
97+
if (term_obj == nullptr || buffer_master == nullptr) {
9598
return nullptr;
9699
}
97100

@@ -151,7 +154,7 @@ dbInst* dbInsertBuffer::insertBufferBeforeLoads(
151154
const dbNameUniquifyType& uniquify,
152155
bool loads_on_diff_nets)
153156
{
154-
if (load_pins.empty() || buffer_master == nullptr || block_ == nullptr) {
157+
if (load_pins.empty() || buffer_master == nullptr) {
155158
return nullptr;
156159
}
157160

src/odb/src/db/dbModNet.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ dbModNet* dbModNet::getModNet(dbBlock* block, uint32_t id)
307307

308308
dbModNet* dbModNet::create(dbModule* parent_module, const char* base_name)
309309
{
310-
assert(parentModule->getModNet(base_name) == nullptr);
310+
assert(parent_module->getModNet(base_name) == nullptr);
311311

312312
// give illusion of scoping.
313313
_dbModule* parent = (_dbModule*) parent_module;

src/rsz/doc/insert_buffer.md

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,41 +113,65 @@ Instance* insertBufferAfterDriver(Net* net,
113113
LibertyCell* buffer_cell,
114114
const Point* loc = nullptr,
115115
const char* new_buf_base_name = nullptr,
116-
const char* new_net_base_name = nullptr);
116+
const char* new_net_base_name = nullptr,
117+
const odb::dbNameUniquifyType& uniquify
118+
= odb::dbNameUniquifyType::ALWAYS);
117119

118120
Instance* insertBufferBeforeLoad(Pin* load_pin,
119121
LibertyCell* buffer_cell,
120122
const Point* loc = nullptr,
121123
const char* new_buf_base_name = nullptr,
122-
const char* new_net_base_name = nullptr);
124+
const char* new_net_base_name = nullptr,
125+
const odb::dbNameUniquifyType& uniquify
126+
= odb::dbNameUniquifyType::ALWAYS);
127+
128+
// PinSeq* overload
129+
Instance* insertBufferBeforeLoads(Net* net,
130+
PinSeq* loads,
131+
LibertyCell* buffer_cell,
132+
const Point* loc = nullptr,
133+
const char* new_buf_base_name = nullptr,
134+
const char* new_net_base_name = nullptr,
135+
const odb::dbNameUniquifyType& uniquify
136+
= odb::dbNameUniquifyType::ALWAYS,
137+
bool loads_on_diff_nets = false);
123138

139+
// PinSet* overload
124140
Instance* insertBufferBeforeLoads(Net* net,
125141
PinSet* loads,
126142
LibertyCell* buffer_cell,
127143
const Point* loc = nullptr,
128144
const char* new_buf_base_name = nullptr,
129145
const char* new_net_base_name = nullptr,
146+
const odb::dbNameUniquifyType& uniquify
147+
= odb::dbNameUniquifyType::ALWAYS,
130148
bool loads_on_diff_nets = false);
131149

132150
// ODB-based overloads
133151
odb::dbInst* insertBufferAfterDriver(odb::dbNet* net,
134152
odb::dbMaster* buffer_cell,
135153
const Point* loc = nullptr,
136154
const char* new_buf_base_name = nullptr,
137-
const char* new_net_base_name = nullptr);
155+
const char* new_net_base_name = nullptr,
156+
const odb::dbNameUniquifyType& uniquify
157+
= odb::dbNameUniquifyType::ALWAYS);
138158

139159
odb::dbInst* insertBufferBeforeLoad(odb::dbObject* load_pin,
140160
odb::dbMaster* buffer_cell,
141161
const Point* loc = nullptr,
142162
const char* new_buf_base_name = nullptr,
143-
const char* new_net_base_name = nullptr);
163+
const char* new_net_base_name = nullptr,
164+
const odb::dbNameUniquifyType& uniquify
165+
= odb::dbNameUniquifyType::ALWAYS);
144166

145167
odb::dbInst* insertBufferBeforeLoads(odb::dbNet* net,
146168
const std::set<odb::dbObject*>& loads,
147169
odb::dbMaster* buffer_cell,
148170
const Point* loc = nullptr,
149171
const char* new_buf_base_name = nullptr,
150172
const char* new_net_base_name = nullptr,
173+
const odb::dbNameUniquifyType& uniquify
174+
= odb::dbNameUniquifyType::ALWAYS,
151175
bool loads_on_diff_nets = false);
152176
```
153177
@@ -162,21 +186,35 @@ odb::dbInst* insertBufferAfterDriver(odb::dbObject* drvr_output_term,
162186
const odb::Point* loc = nullptr,
163187
const char* new_buf_base_name = nullptr,
164188
const char* new_net_base_name = nullptr,
165-
const odb::dbNameUniquifyType& uniquify = odb::dbNameUniquifyType::ALWAYS);
189+
const odb::dbNameUniquifyType& uniquify
190+
= odb::dbNameUniquifyType::ALWAYS);
166191
167192
odb::dbInst* insertBufferBeforeLoad(odb::dbObject* load_input_term,
168193
const odb::dbMaster* buffer_master,
169194
const odb::Point* loc = nullptr,
170195
const char* new_buf_base_name = nullptr,
171196
const char* new_net_base_name = nullptr,
172-
const odb::dbNameUniquifyType& uniquify = odb::dbNameUniquifyType::ALWAYS);
197+
const odb::dbNameUniquifyType& uniquify
198+
= odb::dbNameUniquifyType::ALWAYS);
173199
200+
// std::set overload
174201
odb::dbInst* insertBufferBeforeLoads(std::set<odb::dbObject*>& load_pins,
175202
const odb::dbMaster* buffer_master,
176203
const odb::Point* loc = nullptr,
177204
const char* new_buf_base_name = nullptr,
178205
const char* new_net_base_name = nullptr,
179-
const odb::dbNameUniquifyType& uniquify = odb::dbNameUniquifyType::ALWAYS,
206+
const odb::dbNameUniquifyType& uniquify
207+
= odb::dbNameUniquifyType::ALWAYS,
208+
bool loads_on_diff_nets = false);
209+
210+
// std::vector overload
211+
odb::dbInst* insertBufferBeforeLoads(std::vector<odb::dbObject*>& load_pins,
212+
const odb::dbMaster* buffer_master,
213+
const odb::Point* loc = nullptr,
214+
const char* new_buf_base_name = nullptr,
215+
const char* new_net_base_name = nullptr,
216+
const odb::dbNameUniquifyType& uniquify
217+
= odb::dbNameUniquifyType::ALWAYS,
180218
bool loads_on_diff_nets = false);
181219
```
182220

0 commit comments

Comments
 (0)