Skip to content

Commit 50d6464

Browse files
committed
rsz: add -more_recover_power flag
Signed-off-by: PrecisEDAnon <PrecisEDAnon@proton.me>
1 parent c61326f commit 50d6464

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/rsz/src/Resizer.i

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,14 @@ set_max_utilization(double max_utilization)
173173
resizer->setMaxUtilization(max_utilization);
174174
}
175175

176+
void
177+
set_more_recover_power(bool enable)
178+
{
179+
ensureLinked();
180+
Resizer *resizer = getResizer();
181+
resizer->setMoreRecoverPower(enable);
182+
}
183+
176184
void
177185
set_dont_use(LibertyCell *lib_cell,
178186
bool dont_use)

src/rsz/src/Resizer.tcl

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ proc repair_tie_fanout { args } {
235235
# in define_cmd_args
236236
sta::define_cmd_args "repair_timing" {[-setup] [-hold]\
237237
[-recover_power percent_of_paths_with_slack]\
238+
[-more_recover_power]\
238239
[-setup_margin setup_margin]\
239240
[-hold_margin hold_margin]\
240241
[-slack_margin slack_margin]\
@@ -265,7 +266,7 @@ proc repair_timing { args } {
265266
-recover_power -repair_tns -max_passes -max_iterations -max_repairs_per_pass} \
266267
flags {-setup -hold -allow_setup_violations -skip_pin_swap -skip_gate_cloning \
267268
-skip_size_down -skip_buffering -skip_buffer_removal -skip_last_gasp \
268-
-skip_vt_swap -skip_crit_vt_swap -match_cell_footprint -verbose}
269+
-skip_vt_swap -skip_crit_vt_swap -match_cell_footprint -more_recover_power -verbose}
269270

270271
set setup [info exists flags(-setup)]
271272
set hold [info exists flags(-hold)]
@@ -355,6 +356,23 @@ proc repair_timing { args } {
355356
sta::check_argc_eq0 "repair_timing" $args
356357
est::check_parasitics
357358

359+
set more_recover_power [info exists flags(-more_recover_power)]
360+
if { !$more_recover_power && [info exists ::env(MORE_RECOVER_POWER)] } {
361+
set env_more_recover_power [string tolower $::env(MORE_RECOVER_POWER)]
362+
switch -- $env_more_recover_power {
363+
1 - true - yes - on {
364+
set more_recover_power 1
365+
}
366+
0 - false - no - off - "" {
367+
set more_recover_power 0
368+
}
369+
default {
370+
set more_recover_power 1
371+
}
372+
}
373+
}
374+
rsz::set_more_recover_power $more_recover_power
375+
358376
set recovered_power 0
359377
set repaired_setup 0
360378
set repaired_hold 0

0 commit comments

Comments
 (0)