Skip to content

Commit 7945a55

Browse files
committed
rsz: reportFastBufferSizes() now sorts its cells before reporting.
Signed-off-by: Ted Hong <[email protected]>
1 parent 9d013fc commit 7945a55

File tree

6 files changed

+34
-15
lines changed

6 files changed

+34
-15
lines changed

src/rsz/src/Resizer.cc

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <sstream>
1919
#include <stdexcept>
2020
#include <string>
21+
#include <string_view>
2122
#include <unordered_set>
2223
#include <utility>
2324
#include <vector>
@@ -733,8 +734,27 @@ void Resizer::reportFastBufferSizes()
733734
{
734735
resizePreamble();
735736

737+
// Sort fast buffers by capacitance and then by name.
738+
std::vector<LibertyCell*> buffers{buffer_fast_sizes_.begin(),
739+
buffer_fast_sizes_.end()};
740+
std::sort(buffers.begin(),
741+
buffers.end(),
742+
[=](const LibertyCell* a, const LibertyCell* b) {
743+
LibertyPort* scratch;
744+
LibertyPort* in_a;
745+
LibertyPort* in_b;
746+
747+
a->bufferPorts(in_a, scratch);
748+
b->bufferPorts(in_b, scratch);
749+
750+
return std::make_pair(in_a->capacitance(),
751+
std::string_view(a->name()))
752+
< std::make_pair(in_b->capacitance(),
753+
std::string_view(b->name()));
754+
});
755+
736756
logger_->report("\nFast Buffer Report:");
737-
logger_->report("There are {} fast buffers", buffer_fast_sizes_.size());
757+
logger_->report("There are {} fast buffers", buffers.size());
738758
logger_->report("{:->80}", "");
739759
logger_->report(
740760
"Cell Area Input Intrinsic "
@@ -743,7 +763,7 @@ void Resizer::reportFastBufferSizes()
743763
" Cap Delay Res");
744764
logger_->report("{:->80}", "");
745765

746-
for (auto size : buffer_fast_sizes_) {
766+
for (auto size : buffers) {
747767
LibertyPort *in, *out;
748768
size->bufferPorts(in, out);
749769
logger_->report("{:<41} {:>7.1f} {:>7.1e} {:>7.1e} {:>7.1f}",

src/rsz/test/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ MANUAL_FOR_BAZEL_TESTS = [
234234
"repair_fanout3_hier",
235235
"repair_setup4_flat",
236236
"repair_setup4_hier",
237-
"report_buffers_asap7",
238237
"report_dont_use",
239238
"report_dont_use_corners",
240239
"split_load_hier",

src/rsz/test/report_buffers_asap7.ok

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,10 @@ There are 4 fast buffers
122122
Cell Area Input Intrinsic Drive
123123
Cap Delay Res
124124
--------------------------------------------------------------------------------
125-
BUFx10_ASAP7_75t_L 0.2 1.3e-15 1.3e-11 848.3
126-
BUFx24_ASAP7_75t_L 0.4 2.4e-15 1.6e-11 507.0
127125
BUFx3_ASAP7_75t_L 0.1 6.5e-16 1.0e-11 2546.9
128126
BUFx8_ASAP7_75t_L 0.2 8.8e-16 1.6e-11 1029.8
127+
BUFx10_ASAP7_75t_L 0.2 1.3e-15 1.3e-11 848.3
128+
BUFx24_ASAP7_75t_L 0.4 2.4e-15 1.6e-11 507.0
129129
--------------------------------------------------------------------------------
130130
[INFO RSZ-0165] Buffer pruning will be disabled to enable all buffers for repair_design and repair_timing
131131
********************************************************************************
@@ -261,10 +261,10 @@ There are 4 fast buffers
261261
Cell Area Input Intrinsic Drive
262262
Cap Delay Res
263263
--------------------------------------------------------------------------------
264-
BUFx10_ASAP7_75t_L 0.2 1.3e-15 1.3e-11 848.3
265-
BUFx24_ASAP7_75t_L 0.4 2.4e-15 1.6e-11 507.0
266264
BUFx3_ASAP7_75t_L 0.1 6.5e-16 1.0e-11 2546.9
267265
BUFx8_ASAP7_75t_L 0.2 8.8e-16 1.6e-11 1029.8
266+
BUFx10_ASAP7_75t_L 0.2 1.3e-15 1.3e-11 848.3
267+
BUFx24_ASAP7_75t_L 0.4 2.4e-15 1.6e-11 507.0
268268
--------------------------------------------------------------------------------
269269
The following 3 cells are equivalent to BUFx2_ASAP7_75t_R:
270270
=============================================================================

src/rsz/test/report_buffers_gf180.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ There are 2 fast buffers
7272
Cell Area Input Intrinsic Drive
7373
Cap Delay Res
7474
--------------------------------------------------------------------------------
75-
gf180mcu_fd_sc_mcu9t5v0__buf_12 107.3 4.1e-14 1.3e-10 920.5
7675
gf180mcu_fd_sc_mcu9t5v0__buf_8 73.4 2.8e-14 1.3e-10 1378.8
76+
gf180mcu_fd_sc_mcu9t5v0__buf_12 107.3 4.1e-14 1.3e-10 920.5
7777
--------------------------------------------------------------------------------
7878
[INFO RSZ-0165] Buffer pruning will be disabled to enable all buffers for repair_design and repair_timing
7979
********************************************************************************
@@ -151,6 +151,6 @@ There are 2 fast buffers
151151
Cell Area Input Intrinsic Drive
152152
Cap Delay Res
153153
--------------------------------------------------------------------------------
154-
gf180mcu_fd_sc_mcu9t5v0__buf_12 107.3 4.1e-14 1.3e-10 920.5
155154
gf180mcu_fd_sc_mcu9t5v0__buf_8 73.4 2.8e-14 1.3e-10 1378.8
155+
gf180mcu_fd_sc_mcu9t5v0__buf_12 107.3 4.1e-14 1.3e-10 920.5
156156
--------------------------------------------------------------------------------

src/rsz/test/report_buffers_sky130hd.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ There are 2 fast buffers
7979
Cell Area Input Intrinsic Drive
8080
Cap Delay Res
8181
--------------------------------------------------------------------------------
82-
sky130_fd_sc_hd__buf_12 20.0 9.6e-15 9.0e-11 1076.6
8382
sky130_fd_sc_hd__buf_4 7.5 2.5e-15 9.8e-11 2675.4
83+
sky130_fd_sc_hd__buf_12 20.0 9.6e-15 9.0e-11 1076.6
8484
--------------------------------------------------------------------------------
8585
[INFO RSZ-0165] Buffer pruning will be disabled to enable all buffers for repair_design and repair_timing
8686
********************************************************************************
@@ -171,6 +171,6 @@ There are 2 fast buffers
171171
Cell Area Input Intrinsic Drive
172172
Cap Delay Res
173173
--------------------------------------------------------------------------------
174-
sky130_fd_sc_hd__buf_12 20.0 9.6e-15 9.0e-11 1076.6
175174
sky130_fd_sc_hd__buf_4 7.5 2.5e-15 9.8e-11 2675.4
175+
sky130_fd_sc_hd__buf_12 20.0 9.6e-15 9.0e-11 1076.6
176176
--------------------------------------------------------------------------------

src/rsz/test/report_buffers_sky130hs.ok

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ There are 6 fast buffers
6363
Cell Area Input Intrinsic Drive
6464
Cap Delay Res
6565
--------------------------------------------------------------------------------
66+
sky130_fd_sc_hs__bufbuf_8 24.0 2.3e-15 1.6e-10 1267.8
6667
sky130_fd_sc_hs__buf_1 6.4 2.5e-15 4.6e-11 6567.8
67-
sky130_fd_sc_hs__buf_16 35.2 1.6e-14 6.5e-11 532.1
6868
sky130_fd_sc_hs__buf_2 8.0 2.7e-15 5.8e-11 4229.3
6969
sky130_fd_sc_hs__buf_4 11.2 3.7e-15 6.0e-11 1981.3
7070
sky130_fd_sc_hs__buf_8 19.2 8.6e-15 6.5e-11 1090.2
71-
sky130_fd_sc_hs__bufbuf_8 24.0 2.3e-15 1.6e-10 1267.8
71+
sky130_fd_sc_hs__buf_16 35.2 1.6e-14 6.5e-11 532.1
7272
--------------------------------------------------------------------------------
7373
[INFO RSZ-0165] Buffer pruning will be disabled to enable all buffers for repair_design and repair_timing
7474
********************************************************************************
@@ -135,10 +135,10 @@ There are 6 fast buffers
135135
Cell Area Input Intrinsic Drive
136136
Cap Delay Res
137137
--------------------------------------------------------------------------------
138+
sky130_fd_sc_hs__bufbuf_8 24.0 2.3e-15 1.6e-10 1267.8
138139
sky130_fd_sc_hs__buf_1 6.4 2.5e-15 4.6e-11 6567.8
139-
sky130_fd_sc_hs__buf_16 35.2 1.6e-14 6.5e-11 532.1
140140
sky130_fd_sc_hs__buf_2 8.0 2.7e-15 5.8e-11 4229.3
141141
sky130_fd_sc_hs__buf_4 11.2 3.7e-15 6.0e-11 1981.3
142142
sky130_fd_sc_hs__buf_8 19.2 8.6e-15 6.5e-11 1090.2
143-
sky130_fd_sc_hs__bufbuf_8 24.0 2.3e-15 1.6e-10 1267.8
143+
sky130_fd_sc_hs__buf_16 35.2 1.6e-14 6.5e-11 532.1
144144
--------------------------------------------------------------------------------

0 commit comments

Comments
 (0)