Skip to content

Commit 30da7ce

Browse files
authored
Merge pull request The-OpenROAD-Project#3635 from eder-matheus/repair_timing_max_iters
add MAX_REPAIR_TIMING_ITER variable
2 parents d2edfa2 + da116e8 commit 30da7ce

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

docs/user/FlowVariables.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ configuration file.
169169
| <a name="MATCH_CELL_FOOTPRINT"></a>MATCH_CELL_FOOTPRINT| Enforce sizing operations to only swap cells that have the same layout boundary.| 0|
170170
| <a name="MAX_REPAIR_ANTENNAS_ITER_DRT"></a>MAX_REPAIR_ANTENNAS_ITER_DRT| Defines the maximum number of iterations post-detailed routing repair antennas will run.| 5|
171171
| <a name="MAX_REPAIR_ANTENNAS_ITER_GRT"></a>MAX_REPAIR_ANTENNAS_ITER_GRT| Defines the maximum number of iterations post global routing repair antennas will run.| 5|
172+
| <a name="MAX_REPAIR_TIMING_ITER"></a>MAX_REPAIR_TIMING_ITER| Maximum number of iterations for repair setup and repair hold.| |
172173
| <a name="MAX_ROUTING_LAYER"></a>MAX_ROUTING_LAYER| The highest metal layer name to be used in routing.| |
173174
| <a name="MIN_BUF_CELL_AND_PORTS"></a>MIN_BUF_CELL_AND_PORTS| Used to insert a buffer cell to pass through wires. Used in synthesis.| |
174175
| <a name="MIN_ROUTING_LAYER"></a>MIN_ROUTING_LAYER| The lowest metal layer name to be used in routing.| |
@@ -317,6 +318,7 @@ configuration file.
317318
- [MACRO_WRAPPERS](#MACRO_WRAPPERS)
318319
- [MAKE_TRACKS](#MAKE_TRACKS)
319320
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
321+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
320322
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
321323
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
322324
- [PDN_TCL](#PDN_TCL)
@@ -372,6 +374,7 @@ configuration file.
372374
- [IO_PLACER_H](#IO_PLACER_H)
373375
- [IO_PLACER_V](#IO_PLACER_V)
374376
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
377+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
375378
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
376379
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
377380
- [PLACE_DENSITY](#PLACE_DENSITY)
@@ -396,6 +399,7 @@ configuration file.
396399
- [EQUIVALENCE_CHECK](#EQUIVALENCE_CHECK)
397400
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
398401
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
402+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
399403
- [POST_CTS_TCL](#POST_CTS_TCL)
400404
- [REMOVE_CELLS_FOR_EQY](#REMOVE_CELLS_FOR_EQY)
401405
- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW)
@@ -417,6 +421,7 @@ configuration file.
417421
- [GLOBAL_ROUTE_ARGS](#GLOBAL_ROUTE_ARGS)
418422
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
419423
- [MAX_REPAIR_ANTENNAS_ITER_GRT](#MAX_REPAIR_ANTENNAS_ITER_GRT)
424+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
420425
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
421426
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
422427
- [PRE_GLOBAL_ROUTE_TCL](#PRE_GLOBAL_ROUTE_TCL)

flow/scripts/floorplan_to_place.tcl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,9 @@ if { [env_var_equals REMOVE_ABC_BUFFERS 1] } {
142142
# Skip clone & split
143143
set ::env(SETUP_MOVE_SEQUENCE) "unbuffer,sizeup,swap,buffer,vt_swap"
144144
set ::env(SKIP_LAST_GASP) 1
145-
repair_timing_helper -setup
145+
set additional_args_repair_timing ""
146+
append_env_var additional_args_repair_timing MAX_REPAIR_TIMING_ITER -max_iterations 1
147+
repair_timing_helper -setup {*}$additional_args_repair_timing
146148
}
147149

148150
puts "Default units for flow"
@@ -365,7 +367,12 @@ set_placement_padding -global \
365367

366368
puts "Repair setup and hold violations"
367369
estimate_parasitics -placement
368-
log_cmd repair_timing -repair_tns $::env(TNS_END_PERCENT)
370+
371+
set additional_args_repair_timing ""
372+
append_env_var additional_args_repair_timing MAX_REPAIR_TIMING_ITER -max_iterations 1
373+
374+
log_cmd repair_timing -repair_tns $::env(TNS_END_PERCENT) \
375+
{*}$additional_args_repair_timing
369376

370377
# Legalize placement after timing repair
371378
detailed_placement

flow/scripts/variables.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,3 +1130,11 @@ OPENROAD_HIERARCHICAL:
11301130
default: 0
11311131
stages:
11321132
- All stages
1133+
MAX_REPAIR_TIMING_ITER:
1134+
description: >
1135+
Maximum number of iterations for repair setup and repair hold.
1136+
stages:
1137+
- cts
1138+
- floorplan
1139+
- grt
1140+
- place

0 commit comments

Comments
 (0)