Skip to content

Commit 6fb55d5

Browse files
committed
Moved caching to the BufferSize struct, and removed the map
Signed-off-by: Ethan Mahintorabi <[email protected]>
1 parent 13be041 commit 6fb55d5

File tree

2 files changed

+5
-14
lines changed

2 files changed

+5
-14
lines changed

src/rsz/src/Rebuffer.cc

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -385,20 +385,10 @@ bool Rebuffer::bufferSizeCanDriveLoad(const BufferSize& size,
385385
size.cell->bufferPorts(inp, outp);
386386

387387
const float extra_cap = resizer_->dbuToMeters(extra_wire_length) * wire_cap
388-
+ outp->capacitance();
389-
390-
// Cache the value of drive resistance since it's expensive to calculate.
391-
float r_drvr;
392-
auto it_drive_resistance = drive_resistance_cache_.find(outp);
393-
if (it_drive_resistance != drive_resistance_cache_.end()) {
394-
r_drvr = it_drive_resistance->second;
395-
} else {
396-
r_drvr = outp->driveResistance();
397-
drive_resistance_cache_[outp] = r_drvr;
398-
}
388+
+ outp->capacitance();
399389

400390
const float load_slew
401-
= (r_drvr
391+
= (size.driver_resistance
402392
+ resizer_->dbuToMeters(bnet->maxLoadWireLength() + extra_wire_length)
403393
* wire_res)
404394
* (bnet->cap() + extra_cap) * elmore_skew_factor_;
@@ -1404,7 +1394,8 @@ void Rebuffer::init()
14041394
buffer_sizes_.push_back(BufferSize{
14051395
cell,
14061396
FixedDelay(out->intrinsicDelay(sta_)),
1407-
0.0f,
1397+
/*intrinsic_delay=*/0.0f,
1398+
out->driveResistance(),
14081399
});
14091400
}
14101401

src/rsz/src/Rebuffer.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ class Rebuffer : public sta::dbStaState
123123
LibertyCell* cell;
124124
FixedDelay intrinsic_delay;
125125
float margined_max_cap;
126+
float driver_resistance;
126127
};
127128

128129
bool bufferSizeCanDriveLoad(const BufferSize& size,
@@ -138,7 +139,6 @@ class Rebuffer : public sta::dbStaState
138139

139140
std::vector<BufferSize> buffer_sizes_;
140141
std::map<LibertyCell*, BufferSize*> buffer_sizes_index_;
141-
std::unordered_map<LibertyPort*, float> drive_resistance_cache_;
142142

143143
Pin* pin_;
144144
float fanout_limit_;

0 commit comments

Comments
 (0)