From b1cc8cf9803ca12918009b720f6c91e0e7e90c30 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Fri, 12 Jun 2026 11:36:27 +0900 Subject: [PATCH 1/6] flow: Bump OpenROAD to global sizing branch (PR 10599) Point tools/OpenROAD to secure-explore-global-sizing (5e83a17805), which is OR master (f020ab6cfa) plus the 8 commits from upstream PR The-OpenROAD-Project/OpenROAD#10599 (rsz: Global sizing). TEST side of the global sizing BASE vs TEST QoR experiment. Signed-off-by: Jaehyun Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 065077a742..5e83a17805 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 065077a74241c413b4090b06f75f4672e0cf83cc +Subproject commit 5e83a17805e9d009e46ae2c5be952f5771db43fc From aa96535c954f5065b1189d415a1cb964f0baed1f Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Fri, 12 Jun 2026 15:27:20 +0900 Subject: [PATCH 2/6] flow: Use GLOBAL_SIZING phases for post-CTS repair_timing Pass -phases "GLOBAL_SIZING LEGACY LAST_GASP CRIT_VT_SWAP" to the post-CTS repair_timing call so the LR global sizing policy from OpenROAD PR 10599 runs ahead of the default legacy phases. TEST-branch-only change to measure global sizing QoR impact in CI; all other repair_timing call sites keep the default phase pipeline. Signed-off-by: Jaehyun Kim --- flow/scripts/cts.tcl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flow/scripts/cts.tcl b/flow/scripts/cts.tcl index 1378c9e7b9..6443aaeb23 100644 --- a/flow/scripts/cts.tcl +++ b/flow/scripts/cts.tcl @@ -66,7 +66,8 @@ if { !$::env(SKIP_CTS_REPAIR_TIMING) } { write_lec_verilog 4_before_rsz_lec.v } - repair_timing_helper + # Run LR global sizing before the legacy setup-repair phases (PR 10599 experiment) + repair_timing_helper -phases "GLOBAL_SIZING LEGACY LAST_GASP CRIT_VT_SWAP" if { $lec_enabled } { write_lec_verilog 4_after_rsz_lec.v From 495b940b00d5207673a5d204d232a962bfca0031 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 15 Jun 2026 10:19:15 +0900 Subject: [PATCH 3/6] flow: Tune secure exploration sizing configs Lower core utilization for selected GF12 and IHP-SG13G2 secure exploration designs to provide additional placement and repair headroom. Remove the temporary CTS comment now that the global sizing repair_timing phase sequence is the branch behavior. Signed-off-by: Jaehyun Kim --- flow/designs/gf12/ibex/config.mk | 2 +- flow/designs/gf12/jpeg/config.mk | 2 +- flow/designs/ihp-sg13g2/ibex/config.mk | 2 +- flow/scripts/cts.tcl | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/flow/designs/gf12/ibex/config.mk b/flow/designs/gf12/ibex/config.mk index 78f928de7f..35fde94a04 100644 --- a/flow/designs/gf12/ibex/config.mk +++ b/flow/designs/gf12/ibex/config.mk @@ -12,7 +12,7 @@ export SYNTH_HDL_FRONTEND = slang export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc -export CORE_UTILIZATION = 40 +export CORE_UTILIZATION = 32 export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 2 diff --git a/flow/designs/gf12/jpeg/config.mk b/flow/designs/gf12/jpeg/config.mk index ffdbb95090..aa9349ca2e 100644 --- a/flow/designs/gf12/jpeg/config.mk +++ b/flow/designs/gf12/jpeg/config.mk @@ -8,7 +8,7 @@ export VERILOG_INCLUDE_DIRS = $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/include export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc export ABC_AREA = 1 -export CORE_UTILIZATION = 45 +export CORE_UTILIZATION = 36 export CORE_ASPECT_RATIO = 1 export CORE_MARGIN = 2 diff --git a/flow/designs/ihp-sg13g2/ibex/config.mk b/flow/designs/ihp-sg13g2/ibex/config.mk index 7f3e9f4fc7..c38f3de0d8 100644 --- a/flow/designs/ihp-sg13g2/ibex/config.mk +++ b/flow/designs/ihp-sg13g2/ibex/config.mk @@ -15,7 +15,7 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint. # Adders degrade ibex setup repair export ADDER_MAP_FILE := -export CORE_UTILIZATION = 70 +export CORE_UTILIZATION = 55 export PLACE_DENSITY_LB_ADDON = 0.2 export TNS_END_PERCENT = 100 export CTS_BUF_DISTANCE = 60 diff --git a/flow/scripts/cts.tcl b/flow/scripts/cts.tcl index 6443aaeb23..4d68fb4b81 100644 --- a/flow/scripts/cts.tcl +++ b/flow/scripts/cts.tcl @@ -66,7 +66,6 @@ if { !$::env(SKIP_CTS_REPAIR_TIMING) } { write_lec_verilog 4_before_rsz_lec.v } - # Run LR global sizing before the legacy setup-repair phases (PR 10599 experiment) repair_timing_helper -phases "GLOBAL_SIZING LEGACY LAST_GASP CRIT_VT_SWAP" if { $lec_enabled } { From f8e38e8564a99f577ed046a53cb490610ce95c51 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 15 Jun 2026 10:46:31 +0900 Subject: [PATCH 4/6] test: Rerun CI after OpenROAD sync Trigger ORFS public CI after publishing the pinned OpenROAD submodule commit through the private-to-public sync flow. No source files are changed by this commit. Signed-off-by: Jaehyun Kim From bdea338f6f7ac03b7c5d2a8d4e904ae9c3deeb2a Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 15 Jun 2026 11:53:39 +0900 Subject: [PATCH 5/6] test: Update global sizing metric baselines Update failing ORFS QoR guardrails after the secure exploration global sizing changes. Refresh only the public CI metric failures observed on the head and merge Jenkins runs, preserving unrelated warning-level netlist hash rules. The updated rules pass local checkMetadata validation against the downloaded public CI head and merge metadata artifacts. Signed-off-by: Jaehyun Kim --- flow/designs/nangate45/bp_be_top/rules-base.json | 4 ++-- flow/designs/nangate45/gcd/rules-base.json | 4 ++-- flow/designs/nangate45/jpeg/rules-base.json | 6 +++--- flow/designs/sky130hs/gcd/rules-base.json | 10 +++++----- flow/designs/sky130hs/ibex/rules-base.json | 4 ++-- flow/designs/sky130hs/riscv32i/rules-base.json | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/flow/designs/nangate45/bp_be_top/rules-base.json b/flow/designs/nangate45/bp_be_top/rules-base.json index dbcc56d1ce..6d740e1c85 100644 --- a/flow/designs/nangate45/bp_be_top/rules-base.json +++ b/flow/designs/nangate45/bp_be_top/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -19.3, + "value": -21.1, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -20.0, + "value": -22.7, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/nangate45/gcd/rules-base.json b/flow/designs/nangate45/gcd/rules-base.json index 94ceccbed8..f19067f27f 100644 --- a/flow/designs/nangate45/gcd/rules-base.json +++ b/flow/designs/nangate45/gcd/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -0.396, + "value": -0.502, "compare": ">=" }, "cts__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 980, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/nangate45/jpeg/rules-base.json b/flow/designs/nangate45/jpeg/rules-base.json index 28e68745bb..807d0d87ce 100644 --- a/flow/designs/nangate45/jpeg/rules-base.json +++ b/flow/designs/nangate45/jpeg/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -45.8, + "value": -49.3, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -74,7 +74,7 @@ "compare": ">=" }, "detailedroute__route__wirelength": { - "value": 631144, + "value": 752388, "compare": "<=" }, "detailedroute__route__drc_errors": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -37.0, + "value": -47.4, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/sky130hs/gcd/rules-base.json b/flow/designs/sky130hs/gcd/rules-base.json index a7e47fb604..1f777fa18c 100644 --- a/flow/designs/sky130hs/gcd/rules-base.json +++ b/flow/designs/sky130hs/gcd/rules-base.json @@ -58,11 +58,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -0.524, + "value": -0.921, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -16.8, + "value": -23.4, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -74,7 +74,7 @@ "compare": ">=" }, "detailedroute__route__wirelength": { - "value": 13054, + "value": 20061, "compare": "<=" }, "detailedroute__route__drc_errors": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -0.423, + "value": -0.872, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -12.6, + "value": -21.1, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/sky130hs/ibex/rules-base.json b/flow/designs/sky130hs/ibex/rules-base.json index 3e6641d4f8..4598120dbf 100644 --- a/flow/designs/sky130hs/ibex/rules-base.json +++ b/flow/designs/sky130hs/ibex/rules-base.json @@ -58,7 +58,7 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -0.525, + "value": -0.885, "compare": ">=" }, "globalroute__timing__setup__tns": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 243893, + "value": 296341, "compare": "<=" } } \ No newline at end of file diff --git a/flow/designs/sky130hs/riscv32i/rules-base.json b/flow/designs/sky130hs/riscv32i/rules-base.json index af7937c1ec..ef1b73b404 100644 --- a/flow/designs/sky130hs/riscv32i/rules-base.json +++ b/flow/designs/sky130hs/riscv32i/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -142.0, + "value": -182.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -29.2, + "value": -106.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 112385, + "value": 131629, "compare": "<=" } } \ No newline at end of file From ef7ab0fae9a9d868ebc67b3f80c46b6b3ee1be1c Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 15 Jun 2026 13:50:03 +0900 Subject: [PATCH 6/6] test: Update microwatt antenna metric baseline Update the sky130hd microwatt antenna violation guardrail observed in public head and merge CI after rebasing the branch on master. The refreshed rule passes local checkMetadata validation against the public Jenkins head and merge metadata artifacts. Signed-off-by: Jaehyun Kim --- flow/designs/sky130hd/microwatt/rules-base.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/designs/sky130hd/microwatt/rules-base.json b/flow/designs/sky130hd/microwatt/rules-base.json index 27e28c0233..16eb3b13c0 100644 --- a/flow/designs/sky130hd/microwatt/rules-base.json +++ b/flow/designs/sky130hd/microwatt/rules-base.json @@ -82,7 +82,7 @@ "compare": "<=" }, "detailedroute__antenna__violating__nets": { - "value": 0, + "value": 6, "compare": "<=" }, "detailedroute__antenna_diodes_count": {