From 39a510741a0bf3025e8ddbaf7c26b1ebd33d51a6 Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Wed, 22 Apr 2026 08:50:34 +0000 Subject: [PATCH 01/11] update OR Signed-off-by: Augusto Berndt --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 0504146ce6..0de3ff1d61 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 0504146ce69e43d3cc104bfa3bf3c126d04a69fb +Subproject commit 0de3ff1d61f67c5a35346a7d410382b56138507b From d5ea65a4e2a7796d2940f420d4707a233b355abd Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Wed, 22 Apr 2026 16:37:28 +0000 Subject: [PATCH 02/11] update OR Signed-off-by: Augusto Berndt --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 0de3ff1d61..fb507b5266 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 0de3ff1d61f67c5a35346a7d410382b56138507b +Subproject commit fb507b5266e8602704d737065607988d1f57011b From 9920eab34441adbd5c7256f6a7be4cabdfa08204 Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Thu, 23 Apr 2026 09:19:09 +0000 Subject: [PATCH 03/11] update OR Signed-off-by: Augusto Berndt --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index fb507b5266..f23796e91d 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit fb507b5266e8602704d737065607988d1f57011b +Subproject commit f23796e91dbd0cae28351a48621ac6ff1b028b2e From 0ba57a888e160f247a677f09ddbe734c77abe320 Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Thu, 23 Apr 2026 17:26:43 +0000 Subject: [PATCH 04/11] decrease utilization to enable DPL negotiation as default Signed-off-by: Augusto Berndt --- flow/designs/nangate45/swerv/config.mk | 2 +- flow/designs/sky130hd/aes/config.mk | 2 +- flow/designs/sky130hd/gcd/config.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flow/designs/nangate45/swerv/config.mk b/flow/designs/nangate45/swerv/config.mk index 2a76357c5a..4b87608659 100644 --- a/flow/designs/nangate45/swerv/config.mk +++ b/flow/designs/nangate45/swerv/config.mk @@ -4,7 +4,7 @@ export PLATFORM = nangate45 export VERILOG_FILES = $(DESIGN_HOME)/src/$(DESIGN_NAME)/swerv_wrapper.sv2v.v export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/constraint.sdc -export CORE_UTILIZATION = 65 +export CORE_UTILIZATION = 64 export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 5 diff --git a/flow/designs/sky130hd/aes/config.mk b/flow/designs/sky130hd/aes/config.mk index 77fa88992e..2a12809950 100644 --- a/flow/designs/sky130hd/aes/config.mk +++ b/flow/designs/sky130hd/aes/config.mk @@ -7,7 +7,7 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. export PLACE_PINS_ARGS = -min_distance 4 -min_distance_in_tracks -export CORE_UTILIZATION = 35 +export CORE_UTILIZATION = 34 export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 2 diff --git a/flow/designs/sky130hd/gcd/config.mk b/flow/designs/sky130hd/gcd/config.mk index 9c1e215a1c..9e88a8464d 100644 --- a/flow/designs/sky130hd/gcd/config.mk +++ b/flow/designs/sky130hd/gcd/config.mk @@ -7,7 +7,7 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. # Adders degrade GCD export ADDER_MAP_FILE := -export CORE_UTILIZATION = 40 +export CORE_UTILIZATION = 39 export TNS_END_PERCENT = 100 export SWAP_ARITH_OPERATORS = 1 export OPENROAD_HIERARCHICAL = 1 From fb0786edc454cfd8a63c261d1fea6a8114a9836c Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Thu, 23 Apr 2026 21:01:39 +0000 Subject: [PATCH 05/11] update OR Signed-off-by: Augusto Berndt --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index f23796e91d..0b51559f7f 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit f23796e91dbd0cae28351a48621ac6ff1b028b2e +Subproject commit 0b51559f7f7b83a673b7b9ada416b788dc0442b9 From ca0c0446f1537a31f002d7538981634d0e292e5c Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Thu, 23 Apr 2026 21:17:45 +0000 Subject: [PATCH 06/11] invert logic between DPL algorithm options, replace USE_NEGOTIATION for DPL_USE_OLD_DIAMOND, since the OR submodule now does not have -use_negotiation anymore for dpl, and has -use_old_diamond, the default is negotiation legalizer Signed-off-by: Augusto Berndt --- flow/scripts/cts.tcl | 2 +- flow/scripts/detail_place.tcl | 2 +- flow/scripts/global_route.tcl | 4 +++- flow/scripts/variables.json | 4 ++-- flow/scripts/variables.yaml | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/flow/scripts/cts.tcl b/flow/scripts/cts.tcl index f079bb5f10..fc835c4de1 100644 --- a/flow/scripts/cts.tcl +++ b/flow/scripts/cts.tcl @@ -47,7 +47,7 @@ set_placement_padding -global \ -right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) set dpl_args {} -append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0 +append_env_var dpl_args DPL_USE_OLD_DIAMOND -use_old_diamond 0 set result [catch { log_cmd detailed_placement {*}$dpl_args } msg] if { $result != 0 } { save_progress 4_1_error diff --git a/flow/scripts/detail_place.tcl b/flow/scripts/detail_place.tcl index 0e7c3b9794..0fdff2b0b0 100644 --- a/flow/scripts/detail_place.tcl +++ b/flow/scripts/detail_place.tcl @@ -16,7 +16,7 @@ proc do_dpl { } { -left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \ -right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) set dpl_args [env_var_or_empty DETAIL_PLACEMENT_ARGS] - append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0 + append_env_var dpl_args DPL_USE_OLD_DIAMOND -use_old_diamond 0 log_cmd detailed_placement {*}$dpl_args if { $::env(ENABLE_DPO) } { diff --git a/flow/scripts/global_route.tcl b/flow/scripts/global_route.tcl index 3534fde65f..48994c9b7b 100644 --- a/flow/scripts/global_route.tcl +++ b/flow/scripts/global_route.tcl @@ -62,8 +62,10 @@ proc global_route_helper { } { # Running DPL to fix overlapped instances # Run to get modified net by DPL set dpl_args {} - append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0 + append_env_var dpl_args DPL_USE_OLD_DIAMOND -use_old_diamond 0 log_cmd global_route -start_incremental + #set_debug_level DPL negotiation 1 + dpl::detailed_placement_debug log_cmd detailed_placement {*}$dpl_args # Route only the modified net by DPL log_cmd global_route -end_incremental {*}$res_aware \ diff --git a/flow/scripts/variables.json b/flow/scripts/variables.json index 85ddc5accf..8aec6975b5 100644 --- a/flow/scripts/variables.json +++ b/flow/scripts/variables.json @@ -1417,9 +1417,9 @@ "default": 0, "description": "Whether to perform metal density filling.\n" }, - "USE_NEGOTIATION": { + "DPL_USE_OLD_DIAMOND": { "default": 0, - "description": "Enable using negotiation legalizer for detailed placement.\n" + "description": "Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer.\n" }, "VERILOG_DEFINES": { "description": "Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`\n", diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index afcab989d4..768ae301b0 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -600,9 +600,9 @@ DPO_MAX_DISPLACEMENT: description: | Specifies how far an instance can be moved when optimizing. default: 5 1 -USE_NEGOTIATION: +DPL_USE_OLD_DIAMOND: description: | - Enable using negotiation legalizer for detailed placement. + Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer. default: 0 GPL_TIMING_DRIVEN: description: | From d641ef38a8e5313651b7b388a86e0f1714d0844c Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Fri, 24 Apr 2026 10:45:43 +0000 Subject: [PATCH 07/11] update OR Signed-off-by: Augusto Berndt --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 0b51559f7f..02889ee784 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 0b51559f7f7b83a673b7b9ada416b788dc0442b9 +Subproject commit 02889ee784f3aa4f4bc4c67da08bd1f52151d932 From afbcb1afc4f7b8a9225fd1c63ae5159bb220282f Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Fri, 24 Apr 2026 19:05:09 +0000 Subject: [PATCH 08/11] update OR Signed-off-by: Augusto Berndt --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 02889ee784..6e0009fb32 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 02889ee784f3aa4f4bc4c67da08bd1f52151d932 +Subproject commit 6e0009fb32b3fd0cd69a0a515da950132a243e0e From 635593a55a81f4851ead889839b48bd899548940 Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Fri, 24 Apr 2026 21:00:09 +0000 Subject: [PATCH 09/11] remove accidental debug code Signed-off-by: Augusto Berndt --- flow/scripts/global_route.tcl | 2 -- 1 file changed, 2 deletions(-) diff --git a/flow/scripts/global_route.tcl b/flow/scripts/global_route.tcl index 48994c9b7b..3a67030690 100644 --- a/flow/scripts/global_route.tcl +++ b/flow/scripts/global_route.tcl @@ -64,8 +64,6 @@ proc global_route_helper { } { set dpl_args {} append_env_var dpl_args DPL_USE_OLD_DIAMOND -use_old_diamond 0 log_cmd global_route -start_incremental - #set_debug_level DPL negotiation 1 - dpl::detailed_placement_debug log_cmd detailed_placement {*}$dpl_args # Route only the modified net by DPL log_cmd global_route -end_incremental {*}$res_aware \ From 13573540065a124ba221e142aaed6cb2fc0e22bf Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Fri, 24 Apr 2026 21:11:07 +0000 Subject: [PATCH 10/11] update docs for DPL_USE_OLD_DIAMOND Signed-off-by: Augusto Berndt --- docs/user/FlowVariables.md | 6 ++++-- flow/scripts/variables.yaml | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 80d3073bc5..47eadea8d0 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -140,6 +140,7 @@ configuration file. | DISABLE_VIA_GEN| Passed as -disable_via_gen to detailed_route.| | | DONT_BUFFER_PORTS| Do not buffer input/output ports during floorplanning.| 0| | DONT_USE_CELLS| Dont use cells eases pin access in detailed routing.| | +| DPL_USE_OLD_DIAMOND| Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer.| 0| | DPO_MAX_DISPLACEMENT| Specifies how far an instance can be moved when optimizing.| 5 1| | EARLY_SIZING_CAP_RATIO| Ratio between the input pin capacitance and the output pin load during initial gate sizing.| | | ENABLE_DPO| Enable detail placement with improve_placement feature.| 1| @@ -321,7 +322,6 @@ configuration file. | TNS_END_PERCENT| Default TNS_END_PERCENT value for post CTS timing repair. Try fixing all violating endpoints by default (reduce to 5% for runtime). Specifies how many percent of violating paths to fix [0-100]. Worst path will always be fixed.| 100| | UNSET_ABC9_BOX_CELLS| List of cells to unset the abc9_box attribute on| | | USE_FILL| Whether to perform metal density filling.| 0| -| USE_NEGOTIATION| Enable using negotiation legalizer for detailed placement.| 0| | VERILOG_DEFINES| Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`| | | VERILOG_FILES| The path to the design Verilog/SystemVerilog files providing a description of modules.| | | VERILOG_INCLUDE_DIRS| Specifies the include directories for the Verilog input files.| | @@ -462,6 +462,7 @@ configuration file. - [CLUSTER_FLOPS_ARGS](#CLUSTER_FLOPS_ARGS) - [DETAIL_PLACEMENT_ARGS](#DETAIL_PLACEMENT_ARGS) - [DONT_BUFFER_PORTS](#DONT_BUFFER_PORTS) +- [DPL_USE_OLD_DIAMOND](#DPL_USE_OLD_DIAMOND) - [EARLY_SIZING_CAP_RATIO](#EARLY_SIZING_CAP_RATIO) - [FLOORPLAN_DEF](#FLOORPLAN_DEF) - [GLOBAL_PLACEMENT_ARGS](#GLOBAL_PLACEMENT_ARGS) @@ -507,6 +508,7 @@ configuration file. - [CTS_SNAPSHOT](#CTS_SNAPSHOT) - [CTS_SNAPSHOTS](#CTS_SNAPSHOTS) - [DETAILED_METRICS](#DETAILED_METRICS) +- [DPL_USE_OLD_DIAMOND](#DPL_USE_OLD_DIAMOND) - [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) - [LEC_AUX_VERILOG_FILES](#LEC_AUX_VERILOG_FILES) - [LEC_CHECK](#LEC_CHECK) @@ -531,6 +533,7 @@ configuration file. - [CELL_PAD_IN_SITES_DETAIL_PLACEMENT](#CELL_PAD_IN_SITES_DETAIL_PLACEMENT) - [DETAILED_METRICS](#DETAILED_METRICS) +- [DPL_USE_OLD_DIAMOND](#DPL_USE_OLD_DIAMOND) - [ENABLE_RESISTANCE_AWARE](#ENABLE_RESISTANCE_AWARE) - [GLOBAL_ROUTE_ARGS](#GLOBAL_ROUTE_ARGS) - [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) @@ -660,5 +663,4 @@ configuration file. - [TAP_CELL_NAME](#TAP_CELL_NAME) - [TECH_LEF](#TECH_LEF) - [USE_FILL](#USE_FILL) -- [USE_NEGOTIATION](#USE_NEGOTIATION) diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index 8de53c7425..e9f3bdbf03 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -626,6 +626,10 @@ DPL_USE_OLD_DIAMOND: description: | Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer. default: 0 + stages: + - place + - cts + - grt GPL_TIMING_DRIVEN: description: | Specifies whether the placer should use timing driven placement. From d3fc6ad1676746fd92d85ac91ec823d11c8d10f5 Mon Sep 17 00:00:00 2001 From: Augusto Berndt Date: Sat, 25 Apr 2026 08:01:07 +0000 Subject: [PATCH 11/11] fix lint Signed-off-by: Augusto Berndt --- flow/scripts/variables.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/flow/scripts/variables.json b/flow/scripts/variables.json index 5baf7ce534..971e569b7b 100644 --- a/flow/scripts/variables.json +++ b/flow/scripts/variables.json @@ -306,6 +306,15 @@ "DONT_USE_CELLS": { "description": "Dont use cells eases pin access in detailed routing.\n" }, + "DPL_USE_OLD_DIAMOND": { + "default": 0, + "description": "Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer.\n", + "stages": [ + "place", + "cts", + "grt" + ] + }, "DPO_MAX_DISPLACEMENT": { "default": "5 1", "description": "Specifies how far an instance can be moved when optimizing.\n" @@ -1430,10 +1439,6 @@ "default": 0, "description": "Whether to perform metal density filling.\n" }, - "DPL_USE_OLD_DIAMOND": { - "default": 0, - "description": "Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer.\n" - }, "VERILOG_DEFINES": { "description": "Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`\n", "stages": [