Skip to content

Commit da116e8

Browse files
committed
add MAX_REPAIR_TIMING_ITER variable and use it on floorplan_to_place target
Signed-off-by: Eder Monteiro <[email protected]>
1 parent b2918ba commit da116e8

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.| |
@@ -318,6 +319,7 @@ configuration file.
318319
- [MACRO_WRAPPERS](#MACRO_WRAPPERS)
319320
- [MAKE_TRACKS](#MAKE_TRACKS)
320321
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
322+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
321323
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
322324
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
323325
- [PDN_TCL](#PDN_TCL)
@@ -374,6 +376,7 @@ configuration file.
374376
- [IO_PLACER_H](#IO_PLACER_H)
375377
- [IO_PLACER_V](#IO_PLACER_V)
376378
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
379+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
377380
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
378381
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
379382
- [PLACE_DENSITY](#PLACE_DENSITY)
@@ -398,6 +401,7 @@ configuration file.
398401
- [EQUIVALENCE_CHECK](#EQUIVALENCE_CHECK)
399402
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
400403
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
404+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
401405
- [POST_CTS_TCL](#POST_CTS_TCL)
402406
- [REMOVE_CELLS_FOR_EQY](#REMOVE_CELLS_FOR_EQY)
403407
- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW)
@@ -419,6 +423,7 @@ configuration file.
419423
- [GLOBAL_ROUTE_ARGS](#GLOBAL_ROUTE_ARGS)
420424
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
421425
- [MAX_REPAIR_ANTENNAS_ITER_GRT](#MAX_REPAIR_ANTENNAS_ITER_GRT)
426+
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
422427
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
423428
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
424429
- [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
@@ -1137,3 +1137,11 @@ OPENROAD_HIERARCHICAL:
11371137
default: 0
11381138
stages:
11391139
- All stages
1140+
MAX_REPAIR_TIMING_ITER:
1141+
description: >
1142+
Maximum number of iterations for repair setup and repair hold.
1143+
stages:
1144+
- cts
1145+
- floorplan
1146+
- grt
1147+
- place

0 commit comments

Comments
 (0)