diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md
index 0df148d71d..e8671ef2dd 100644
--- a/docs/user/FlowVariables.md
+++ b/docs/user/FlowVariables.md
@@ -131,6 +131,7 @@ configuration file.
| CTS_CLUSTER_SIZE| Maximum number of sinks per cluster.| |
| CTS_LIB_NAME| Name of the Liberty library to use in selecting the clock buffers.| |
| CTS_SNAPSHOTS| Create ODB/SDC files at different stages of CTS.| 0|
+| CTS_USEFUL_SKEW| Enable useful skew during the CTS balancing phase.| 0|
| DESIGN_NAME| The name of the top-level module of the design.| |
| DESIGN_NICKNAME| DESIGN_NICKNAME just changes the directory name that ORFS outputs to be DESIGN_NICKNAME instead of DESIGN_NAME in case DESIGN_NAME is unwieldy or conflicts with a different design.| |
| DETAILED_METRICS| If set, then calls report_metrics prior to repair operations in the CTS and global route stages| 0|
@@ -543,6 +544,7 @@ configuration file.
- [CTS_CLUSTER_SIZE](#CTS_CLUSTER_SIZE)
- [CTS_LIB_NAME](#CTS_LIB_NAME)
- [CTS_SNAPSHOTS](#CTS_SNAPSHOTS)
+- [CTS_USEFUL_SKEW](#CTS_USEFUL_SKEW)
- [DETAILED_METRICS](#DETAILED_METRICS)
- [DETAIL_PLACEMENT_ARGS](#DETAIL_PLACEMENT_ARGS)
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
diff --git a/flow/scripts/cts.tcl b/flow/scripts/cts.tcl
index 7439569d12..87b9b12dad 100644
--- a/flow/scripts/cts.tcl
+++ b/flow/scripts/cts.tcl
@@ -25,7 +25,7 @@ append_env_var cts_args CTS_CLUSTER_SIZE -sink_clustering_size 1
append_env_var cts_args CTS_CLUSTER_DIAMETER -sink_clustering_max_diameter 1
append_env_var cts_args CTS_BUF_LIST -buf_list 1
append_env_var cts_args CTS_LIB_NAME -library 1
-
+append_env_var cts_args CTS_USEFUL_SKEW -useful_skew 0
if { [env_var_exists_and_non_empty CTS_ARGS] } {
set cts_args $::env(CTS_ARGS)
diff --git a/flow/scripts/variables.json b/flow/scripts/variables.json
index 8bebf70c48..ac7257f733 100644
--- a/flow/scripts/variables.json
+++ b/flow/scripts/variables.json
@@ -257,6 +257,13 @@
"cts"
]
},
+ "CTS_USEFUL_SKEW": {
+ "default": 0,
+ "description": "Enable useful skew during the CTS balancing phase.\n",
+ "stages": [
+ "cts"
+ ]
+ },
"DESIGN_NAME": {
"description": "The name of the top-level module of the design.\n",
"required": true
diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml
index ac9d582494..63b8d031ed 100644
--- a/flow/scripts/variables.yaml
+++ b/flow/scripts/variables.yaml
@@ -1276,6 +1276,12 @@ CTS_LIB_NAME:
Name of the Liberty library to use in selecting the clock buffers.
stages:
- cts
+CTS_USEFUL_SKEW:
+ description: |
+ Enable useful skew during the CTS balancing phase.
+ stages:
+ - cts
+ default: 0
POST_CTS_TCL:
description: |
Specifies a Tcl script with commands to run after CTS is completed.