diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 8d32a9d6adf..5e47afd713c 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -277,6 +277,7 @@ configuration file. | SEAL_GDS| Seal macro to place around the design.| | | SEC_CHECK| Perform a sequential equivalence check between the initial synthesis netlist and final netlist with the Kepler Formal PDR engine. If this fails, report an issue to OpenROAD.| 0| | SETUP_MOVE_SEQUENCE| Passed as -sequence to repair_timing. This should be a string of move keywords separated by commas.| | +| SETUP_REPAIR_PHASES| Passed as -phases to repair_timing. This should be a string of setup repair phase names separated by spaces. Set to PARALLEL_EVAL to repair setup timing with the experimental parallel evaluation policy. When unset, repair_timing runs its default phases.| | | 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| | SKIP_ANTENNA_REPAIR| Skips antenna repair entirely.| 0| | SKIP_ANTENNA_REPAIR_POST_DRT| Skips antenna repair post-detailed routing.| 0| @@ -457,6 +458,7 @@ configuration file. - [RTLMP_RPT_DIR](#RTLMP_RPT_DIR) - [RTLMP_WIRELENGTH_WT](#RTLMP_WIRELENGTH_WT) - [SETUP_MOVE_SEQUENCE](#SETUP_MOVE_SEQUENCE) +- [SETUP_REPAIR_PHASES](#SETUP_REPAIR_PHASES) - [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_BUFFER_REMOVAL](#SKIP_BUFFER_REMOVAL) - [SKIP_CRIT_VT_SWAP](#SKIP_CRIT_VT_SWAP) @@ -516,6 +518,7 @@ configuration file. - [PRE_RESIZE_TCL](#PRE_RESIZE_TCL) - [REPORT_ENDPOINT_SLACK](#REPORT_ENDPOINT_SLACK) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) +- [SETUP_REPAIR_PHASES](#SETUP_REPAIR_PHASES) - [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [TNS_END_PERCENT](#TNS_END_PERCENT) @@ -540,6 +543,7 @@ configuration file. - [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) - [REPORT_ENDPOINT_SLACK](#REPORT_ENDPOINT_SLACK) - [SETUP_MOVE_SEQUENCE](#SETUP_MOVE_SEQUENCE) +- [SETUP_REPAIR_PHASES](#SETUP_REPAIR_PHASES) - [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_BUFFER_REMOVAL](#SKIP_BUFFER_REMOVAL) - [SKIP_CRIT_VT_SWAP](#SKIP_CRIT_VT_SWAP) @@ -571,6 +575,7 @@ configuration file. - [REPORT_ENDPOINT_SLACK](#REPORT_ENDPOINT_SLACK) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) - [SETUP_MOVE_SEQUENCE](#SETUP_MOVE_SEQUENCE) +- [SETUP_REPAIR_PHASES](#SETUP_REPAIR_PHASES) - [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_ANTENNA_REPAIR](#SKIP_ANTENNA_REPAIR) - [SKIP_BUFFER_REMOVAL](#SKIP_BUFFER_REMOVAL) diff --git a/flow/designs/asap7/aes/config.mk b/flow/designs/asap7/aes/config.mk index ec3f9016cf4..8112157a80b 100644 --- a/flow/designs/asap7/aes/config.mk +++ b/flow/designs/asap7/aes/config.mk @@ -11,6 +11,7 @@ export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 2 export PLACE_DENSITY = 0.65 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export GPL_PLACE_IOS = 1 ifeq ($(FLOW_VARIANT),top) diff --git a/flow/designs/asap7/aes_lvt/config.mk b/flow/designs/asap7/aes_lvt/config.mk index aa5a147286a..e9bde4f8fd7 100644 --- a/flow/designs/asap7/aes_lvt/config.mk +++ b/flow/designs/asap7/aes_lvt/config.mk @@ -13,6 +13,7 @@ export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 2 export PLACE_DENSITY = 0.65 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export ASAP7_USE_VT = LVT diff --git a/flow/designs/asap7/chi_async_bridge/config.mk b/flow/designs/asap7/chi_async_bridge/config.mk index 1f9e2cda64f..e8691faa2d3 100644 --- a/flow/designs/asap7/chi_async_bridge/config.mk +++ b/flow/designs/asap7/chi_async_bridge/config.mk @@ -37,3 +37,4 @@ export VERILOG_TOP_PARAMS = REQ_W 32 RSP_W 16 DAT_W 64 SNP_W 24 DEPTH 4 else ifeq ($(FLOW_VARIANT),medium) export VERILOG_TOP_PARAMS = DEPTH 4 endif +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/asap7/ethmac_lvt/config.mk b/flow/designs/asap7/ethmac_lvt/config.mk index b670d5c4532..eee9cdc19a9 100644 --- a/flow/designs/asap7/ethmac_lvt/config.mk +++ b/flow/designs/asap7/ethmac_lvt/config.mk @@ -17,3 +17,4 @@ export ASAP7_USE_VT = LVT export RECOVER_POWER = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/asap7/gcd/config.mk b/flow/designs/asap7/gcd/config.mk index 6c6ea2046ac..f8567e0ba96 100644 --- a/flow/designs/asap7/gcd/config.mk +++ b/flow/designs/asap7/gcd/config.mk @@ -18,3 +18,4 @@ export GPL_PLACE_IOS = 1 export SKIP_LAST_GASP ?= 1 export SYNTH_USE_SYN = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/asap7/ibex/config.mk b/flow/designs/asap7/ibex/config.mk index 419c77f8c35..c66b82f84dc 100644 --- a/flow/designs/asap7/ibex/config.mk +++ b/flow/designs/asap7/ibex/config.mk @@ -27,6 +27,7 @@ export PLACE_DENSITY_LB_ADDON = 0.20 export ENABLE_DPO = 0 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 diff --git a/flow/designs/asap7/jpeg/config.mk b/flow/designs/asap7/jpeg/config.mk index a711b732d22..3cc90bee690 100644 --- a/flow/designs/asap7/jpeg/config.mk +++ b/flow/designs/asap7/jpeg/config.mk @@ -14,6 +14,7 @@ export CORE_MARGIN = 2 export PLACE_DENSITY = 0.75 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export GPL_PLACE_IOS = 1 export SYNTH_USE_SYN = 1 diff --git a/flow/designs/asap7/riscv32i/config.mk b/flow/designs/asap7/riscv32i/config.mk index cfb6ed6adbf..a0f0ff033bb 100644 --- a/flow/designs/asap7/riscv32i/config.mk +++ b/flow/designs/asap7/riscv32i/config.mk @@ -23,6 +23,7 @@ export IO_CONSTRAINTS = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/io.tcl export RTLMP_MIN_CHANNEL_SIZE = 8 8 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export CTS_CLUSTER_SIZE = 10 export CTS_CLUSTER_DIAMETER = 50 diff --git a/flow/designs/asap7/uart/config.mk b/flow/designs/asap7/uart/config.mk index 2f9e4b7d942..9b5fc83c259 100644 --- a/flow/designs/asap7/uart/config.mk +++ b/flow/designs/asap7/uart/config.mk @@ -14,6 +14,7 @@ export GPL_PLACE_IOS = 1 export DIE_AREA = 0 0 17 17 export CORE_AREA = 1.08 1.08 16 16 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export SKIP_GATE_CLONING = 1 export VERILOG_TOP_PARAMS = DATA_WIDTH 8 export SYNTH_HDL_FRONTEND = slang diff --git a/flow/designs/gf12/aes/config.mk b/flow/designs/gf12/aes/config.mk index fa0695bf0f2..da0a181b206 100644 --- a/flow/designs/gf12/aes/config.mk +++ b/flow/designs/gf12/aes/config.mk @@ -20,3 +20,4 @@ endif export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/gf12/ibex/config.mk b/flow/designs/gf12/ibex/config.mk index 97ca1254c30..bcc6f5eb11a 100644 --- a/flow/designs/gf12/ibex/config.mk +++ b/flow/designs/gf12/ibex/config.mk @@ -23,3 +23,4 @@ export DESIGN_TYPE = CELL else export DESIGN_TYPE = CELL_NODEN endif +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/gf12/tinyRocket/config.mk b/flow/designs/gf12/tinyRocket/config.mk index 7863269420e..4561b386817 100644 --- a/flow/designs/gf12/tinyRocket/config.mk +++ b/flow/designs/gf12/tinyRocket/config.mk @@ -39,3 +39,4 @@ endif export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/gf180/aes-hybrid/config.mk b/flow/designs/gf180/aes-hybrid/config.mk index 7da1e358274..6ad7c10e6e0 100644 --- a/flow/designs/gf180/aes-hybrid/config.mk +++ b/flow/designs/gf180/aes-hybrid/config.mk @@ -42,3 +42,4 @@ export DESIGN_TYPE = CELL else export DESIGN_TYPE = CELL_NODEN endif +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/gf180/ibex/config.mk b/flow/designs/gf180/ibex/config.mk index d41d237edd8..dfb4d78e385 100644 --- a/flow/designs/gf180/ibex/config.mk +++ b/flow/designs/gf180/ibex/config.mk @@ -18,3 +18,4 @@ export PLACE_DENSITY_LB_ADDON = 0.1 export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/gf180/riscv32i/config.mk b/flow/designs/gf180/riscv32i/config.mk index ce87ddef681..958598e1eec 100644 --- a/flow/designs/gf180/riscv32i/config.mk +++ b/flow/designs/gf180/riscv32i/config.mk @@ -8,6 +8,7 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. export CORE_UTILIZATION = 55 export PLACE_DENSITY_LB_ADDON = 0.2 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export SKIP_GATE_CLONING = 1 export PLACE_PINS_ARGS = -min_distance 5 export IO_CONSTRAINTS = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/io.tcl diff --git a/flow/designs/ihp-sg13g2/gcd/config.mk b/flow/designs/ihp-sg13g2/gcd/config.mk index a3d8798bbc0..788f1bfffa6 100644 --- a/flow/designs/ihp-sg13g2/gcd/config.mk +++ b/flow/designs/ihp-sg13g2/gcd/config.mk @@ -9,6 +9,7 @@ export USE_FILL = 1 export PLACE_DENSITY ?= 0.88 export CORE_UTILIZATION = 20 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 diff --git a/flow/designs/ihp-sg13g2/ibex/config.mk b/flow/designs/ihp-sg13g2/ibex/config.mk index 7f3e9f4fc75..789cbd478ad 100644 --- a/flow/designs/ihp-sg13g2/ibex/config.mk +++ b/flow/designs/ihp-sg13g2/ibex/config.mk @@ -18,6 +18,7 @@ export ADDER_MAP_FILE := export CORE_UTILIZATION = 70 export PLACE_DENSITY_LB_ADDON = 0.2 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export CTS_BUF_DISTANCE = 60 export SWAP_ARITH_OPERATORS = 1 diff --git a/flow/designs/ihp-sg13g2/riscv32i/config.mk b/flow/designs/ihp-sg13g2/riscv32i/config.mk index 356106b551d..4aa59f484de 100644 --- a/flow/designs/ihp-sg13g2/riscv32i/config.mk +++ b/flow/designs/ihp-sg13g2/riscv32i/config.mk @@ -10,6 +10,7 @@ export USE_FILL = 1 export CORE_UTILIZATION = 60 export PLACE_DENSITY_LB_ADDON = 0.2 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export CTS_BUF_DISTANCE = 60 export SWAP_ARITH_OPERATORS = 1 diff --git a/flow/designs/nangate45/aes/config.mk b/flow/designs/nangate45/aes/config.mk index 2f7d50ef093..24a1b5d0121 100644 --- a/flow/designs/nangate45/aes/config.mk +++ b/flow/designs/nangate45/aes/config.mk @@ -9,6 +9,7 @@ export FLOORPLAN_DEF = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/aes_ng45_fp export PLACE_DENSITY_LB_ADDON = 0.20 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL # workaround for high congestion in post-grt repair export SKIP_INCREMENTAL_REPAIR = 1 diff --git a/flow/designs/nangate45/ariane133/config.mk b/flow/designs/nangate45/ariane133/config.mk index 97ae1e77f71..2daa782059f 100644 --- a/flow/designs/nangate45/ariane133/config.mk +++ b/flow/designs/nangate45/ariane133/config.mk @@ -29,3 +29,4 @@ export RTLMP_MAX_INST = 80000 export RTLMP_MIN_INST = 8000 export GPL_RANDOM_SEED = 3 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/nangate45/bp_be_top/config.mk b/flow/designs/nangate45/bp_be_top/config.mk index 28e3e2a6ad2..3b623cce365 100644 --- a/flow/designs/nangate45/bp_be_top/config.mk +++ b/flow/designs/nangate45/bp_be_top/config.mk @@ -24,6 +24,7 @@ export RTLMP_MIN_CHANNEL_SIZE = 20 20 export PLACE_DENSITY_LB_ADDON = 0.10 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export CTS_CLUSTER_SIZE = 30 export CTS_CLUSTER_DIAMETER = 50 diff --git a/flow/designs/nangate45/bp_multi_top/config.mk b/flow/designs/nangate45/bp_multi_top/config.mk index f4906828fab..e2736092ba1 100644 --- a/flow/designs/nangate45/bp_multi_top/config.mk +++ b/flow/designs/nangate45/bp_multi_top/config.mk @@ -36,3 +36,4 @@ export SKIP_GATE_CLONING = 1 export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/nangate45/cva6/config.mk b/flow/designs/nangate45/cva6/config.mk index 46216584f01..575ba20417d 100644 --- a/flow/designs/nangate45/cva6/config.mk +++ b/flow/designs/nangate45/cva6/config.mk @@ -104,3 +104,4 @@ export SYNTH_CANONICALIZE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/canoni export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/nangate45/dynamic_node/config.mk b/flow/designs/nangate45/dynamic_node/config.mk index 37530d83b7e..493001c412b 100644 --- a/flow/designs/nangate45/dynamic_node/config.mk +++ b/flow/designs/nangate45/dynamic_node/config.mk @@ -12,6 +12,7 @@ export CORE_MARGIN = 5 export PLACE_DENSITY_LB_ADDON = 0.20 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export GPL_PLACE_IOS = 1 export SWAP_ARITH_OPERATORS = 1 diff --git a/flow/designs/nangate45/ibex/config.mk b/flow/designs/nangate45/ibex/config.mk index 76205ee0fe7..1b30aa0ecec 100644 --- a/flow/designs/nangate45/ibex/config.mk +++ b/flow/designs/nangate45/ibex/config.mk @@ -15,5 +15,6 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. export CORE_UTILIZATION ?= 50 export PLACE_DENSITY_LB_ADDON = 0.20 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export GPL_PLACE_IOS = 1 diff --git a/flow/designs/nangate45/tinyRocket/config.mk b/flow/designs/nangate45/tinyRocket/config.mk index d86621ba340..dd076c7298f 100644 --- a/flow/designs/nangate45/tinyRocket/config.mk +++ b/flow/designs/nangate45/tinyRocket/config.mk @@ -21,3 +21,4 @@ export CORE_UTILIZATION = 60 export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 2 export PLACE_DENSITY = 0.75 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/sky130hd/aes/config.mk b/flow/designs/sky130hd/aes/config.mk index 3f095cd981f..f69ac66aeb0 100644 --- a/flow/designs/sky130hd/aes/config.mk +++ b/flow/designs/sky130hd/aes/config.mk @@ -13,6 +13,7 @@ export CORE_MARGIN = 2 export PLACE_DENSITY_LB_ADDON = 0.2 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl diff --git a/flow/designs/sky130hd/chameleon/config.mk b/flow/designs/sky130hd/chameleon/config.mk index 6bbe14781d4..471431dc901 100644 --- a/flow/designs/sky130hd/chameleon/config.mk +++ b/flow/designs/sky130hd/chameleon/config.mk @@ -48,5 +48,6 @@ export ADDITIONAL_LEFS = $(DESIGN_DIR)/lef/apb_sys_0.lef \ export FP_PDN_RAIL_WIDTH = 0.48 export FP_PDN_RAIL_OFFSET = 0 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export RTLMP_MIN_CHANNEL_SIZE = 70 70 diff --git a/flow/designs/sky130hd/gcd/config.mk b/flow/designs/sky130hd/gcd/config.mk index 40784a95356..8fbf6b530a3 100644 --- a/flow/designs/sky130hd/gcd/config.mk +++ b/flow/designs/sky130hd/gcd/config.mk @@ -9,5 +9,6 @@ export ADDER_MAP_FILE := export CORE_UTILIZATION = 38 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 diff --git a/flow/designs/sky130hd/ibex/config.mk b/flow/designs/sky130hd/ibex/config.mk index 76c8b14dd08..6014ce62555 100644 --- a/flow/designs/sky130hd/ibex/config.mk +++ b/flow/designs/sky130hd/ibex/config.mk @@ -18,6 +18,7 @@ export ADDER_MAP_FILE := export CORE_UTILIZATION = 50 export PLACE_DENSITY_LB_ADDON = 0.25 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl diff --git a/flow/designs/sky130hd/jpeg/config.mk b/flow/designs/sky130hd/jpeg/config.mk index 3b86ccc5488..7ece1345a32 100644 --- a/flow/designs/sky130hd/jpeg/config.mk +++ b/flow/designs/sky130hd/jpeg/config.mk @@ -9,5 +9,6 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. export CORE_UTILIZATION = 50 export PLACE_DENSITY_LB_ADDON = 0.15 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl diff --git a/flow/designs/sky130hd/riscv32i/config.mk b/flow/designs/sky130hd/riscv32i/config.mk index 3b1c3d064b2..51f5d14291d 100644 --- a/flow/designs/sky130hd/riscv32i/config.mk +++ b/flow/designs/sky130hd/riscv32i/config.mk @@ -11,3 +11,4 @@ export PLACE_DENSITY_LB_ADDON = 0.2 #export SWAP_ARITH_OPERATORS = 1 #export OPENROAD_HIERARCHICAL = 1 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL diff --git a/flow/designs/sky130hs/aes/config.mk b/flow/designs/sky130hs/aes/config.mk index 2bbd8c38eb0..6989c901247 100644 --- a/flow/designs/sky130hs/aes/config.mk +++ b/flow/designs/sky130hs/aes/config.mk @@ -11,6 +11,7 @@ export CORE_MARGIN = 2 export PLACE_DENSITY_LB_ADDON = 0.25 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export GPL_PLACE_IOS = 1 export CTS_CLUSTER_SIZE = 10 diff --git a/flow/designs/sky130hs/ibex/config.mk b/flow/designs/sky130hs/ibex/config.mk index 12be88cdb5b..3f1f629abc1 100644 --- a/flow/designs/sky130hs/ibex/config.mk +++ b/flow/designs/sky130hs/ibex/config.mk @@ -15,5 +15,6 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. export CORE_UTILIZATION = 60 export PLACE_DENSITY_LB_ADDON = 0.20 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export GPL_PLACE_IOS = 1 diff --git a/flow/designs/sky130hs/jpeg/config.mk b/flow/designs/sky130hs/jpeg/config.mk index 22fca150eee..90cd851ed5d 100644 --- a/flow/designs/sky130hs/jpeg/config.mk +++ b/flow/designs/sky130hs/jpeg/config.mk @@ -13,6 +13,7 @@ export CORE_MARGIN = 2 export PLACE_DENSITY_LB_ADDON = 0.25 export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export CTS_CLUSTER_SIZE = 30 export CTS_CLUSTER_DIAMETER = 50 diff --git a/flow/designs/sky130hs/riscv32i/config.mk b/flow/designs/sky130hs/riscv32i/config.mk index 232ab3fbed2..22049cadbfb 100644 --- a/flow/designs/sky130hs/riscv32i/config.mk +++ b/flow/designs/sky130hs/riscv32i/config.mk @@ -10,6 +10,7 @@ export PLACE_DENSITY_LB_ADDON = 0.1 # many east pins cause global routing congestion export PLACE_PINS_ARGS=-min_distance 6 -min_distance_in_tracks export TNS_END_PERCENT = 100 +export SETUP_REPAIR_PHASES = PARALLEL_EVAL export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl diff --git a/flow/scripts/util.tcl b/flow/scripts/util.tcl index 0310f3ca54a..065e4e58957 100644 --- a/flow/scripts/util.tcl +++ b/flow/scripts/util.tcl @@ -32,6 +32,7 @@ proc repair_timing_helper { args } { append_env_var additional_args SETUP_SLACK_MARGIN -setup_margin 1 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 SETUP_REPAIR_PHASES -phases 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.json b/flow/scripts/variables.json index 2810d1ec80e..f5c5c00c266 100644 --- a/flow/scripts/variables.json +++ b/flow/scripts/variables.json @@ -1153,6 +1153,15 @@ "grt" ] }, + "SETUP_REPAIR_PHASES": { + "description": "Passed as -phases to repair_timing. This should be a string of setup repair phase names separated by spaces. Set to PARALLEL_EVAL to repair setup timing with the experimental parallel evaluation policy. When unset, repair_timing runs its default phases.\n", + "stages": [ + "cts", + "floorplan", + "grt", + "place" + ] + }, "SETUP_SLACK_MARGIN": { "default": 0, "description": "Specifies a time margin for the slack when fixing setup violations.\nThis option allows you to overfix or underfix(negative value, terminate\nretiming before 0 or positive slack).\nSee HOLD_SLACK_MARGIN for more details.\n", diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index 4d71623a358..d0634da90d6 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -858,6 +858,17 @@ SETUP_MOVE_SEQUENCE: - cts - floorplan - grt +SETUP_REPAIR_PHASES: + description: > + Passed as -phases to repair_timing. This should be a string of setup + repair phase names separated by spaces. Set to PARALLEL_EVAL to repair + setup timing with the experimental parallel evaluation policy. When + unset, repair_timing runs its default phases. + stages: + - cts + - floorplan + - grt + - place SKIP_GATE_CLONING: description: > Do not use gate cloning transform to fix timing violations (default: use