File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed
Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -143,6 +143,15 @@ int TritonCTS::getBufferFanoutLimit(const std::string& bufferName)
143143 int fanout = std::numeric_limits<int >::max ();
144144 float tempFanout;
145145 bool existMaxFanout;
146+
147+ // Check if top instance has fanout limit
148+ sta::Cell* top_cell = network_->cell (network_->topInstance ());
149+ openSta_->sdc ()->fanoutLimit (
150+ top_cell, sta::MinMax::max (), tempFanout, existMaxFanout);
151+ if (existMaxFanout) {
152+ fanout = std::min (fanout, (int ) tempFanout);
153+ }
154+
146155 odb::dbMaster* bufferMaster = db_->findMaster (bufferName.c_str ());
147156 sta::Cell* bufferCell = network_->dbToSta (bufferMaster);
148157 sta::Port* buffer_port = nullptr ;
@@ -159,7 +168,7 @@ int TritonCTS::getBufferFanoutLimit(const std::string& bufferName)
159168 }
160169 }
161170 if (buffer_port == nullptr ) {
162- return 0 ;
171+ return (existMaxFanout) ? fanout : 0 ;
163172 }
164173
165174 openSta_->sdc ()->fanoutLimit (
You can’t perform that action at this time.
0 commit comments