diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 3f1b488e51..a3dccce7a3 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -171,6 +171,7 @@ configuration file. | SDC_FILE| The path to design constraint (SDC) file.| | | | SDC_GUT| Load design and remove all internal logic before doing synthesis. This is useful when creating a mock .lef abstract that has a smaller area than the amount of logic would allow. bazel-orfs uses this to mock SRAMs, for instance.| | | | SEAL_GDS| Seal macro to place around the design.| | | +| SETUP_REPAIR_SEQUENCE| Specifies the sequence of moves to do in repair_timing -setup. This should be a string of move keywords separated by commas such as the default when not used: "unbuffer,sizedown,sizeup,swap,buffer,clone,split".| | | | SETUP_SLACK_MARGIN| Specifies a time margin for the slack when fixing setup violations. This option allows you to overfix or underfix(negative value, terminate retiming before 0 or positive slack). See HOLD_SLACK_MARGIN for more details.| 0| | | SET_RC_TCL| Metal & Via RC definition file path.| | | | SKIP_CTS_REPAIR_TIMING| Skipping CTS repair, which can take a long time, can be useful in architectural exploration or when getting CI up and running.| | | @@ -277,6 +278,7 @@ configuration file. - [RTLMP_RPT_DIR](#RTLMP_RPT_DIR) - [RTLMP_SIGNATURE_NET_THRESHOLD](#RTLMP_SIGNATURE_NET_THRESHOLD) - [RTLMP_WIRELENGTH_WT](#RTLMP_WIRELENGTH_WT) +- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE) - [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) - [SKIP_LAST_GASP](#SKIP_LAST_GASP) @@ -323,6 +325,7 @@ configuration file. - [POST_CTS_TCL](#POST_CTS_TCL) - [REMOVE_CELLS_FOR_EQY](#REMOVE_CELLS_FOR_EQY) - [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) +- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE) - [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_CTS_REPAIR_TIMING](#SKIP_CTS_REPAIR_TIMING) - [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) @@ -341,6 +344,7 @@ configuration file. - [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER) - [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) +- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE) - [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) - [SKIP_INCREMENTAL_REPAIR](#SKIP_INCREMENTAL_REPAIR) diff --git a/flow/scripts/util.tcl b/flow/scripts/util.tcl index 9f6c38fd4d..7c153b6fd5 100644 --- a/flow/scripts/util.tcl +++ b/flow/scripts/util.tcl @@ -31,6 +31,7 @@ proc repair_timing_helper { {hold_margin 1} } { if {$hold_margin || $::env(HOLD_SLACK_MARGIN) < 0} { append_env_var additional_args HOLD_SLACK_MARGIN -hold_margin 1 } + append_env_var additional_args SETUP_MOVE_SEQUENCE -sequence 1 append_env_var additional_args TNS_END_PERCENT -repair_tns 1 append_env_var additional_args SKIP_PIN_SWAP -skip_pin_swap 0 append_env_var additional_args SKIP_GATE_CLONING -skip_gate_cloning 0 diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index 86d15317fb..c6f8ab90f4 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -484,6 +484,15 @@ SETUP_SLACK_MARGIN: - floorplan - grt default: 0 +SETUP_REPAIR_SEQUENCE: + description: | + Specifies the sequence of moves to do in repair_timing -setup. This should be a string + of move keywords separated by commas such as the default when not used: + "unbuffer,sizedown,sizeup,swap,buffer,clone,split". + stages: + - cts + - floorplan + - grt SKIP_GATE_CLONING: description: > Do not use gate cloning transform to fix timing violations (default: use