From 415cad5f501ee3d8fc4ec2298b8125d970178788 Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Fri, 10 Jul 2026 14:47:46 +0900 Subject: [PATCH 1/8] Bump OpenROAD: rsz rebuffering estimation-accuracy series Point tools/OpenROAD at the rsz rebuffering-accuracy series (private OR branch secure-rsz-buffering-boost-orfs = ORFS-master OR pin + the series) so ORFS picks up the improved rebuffer delay/slew estimation. OR base = ORFS-master's current OR pin (f5df0085) + only the rsz series, so ORFS CI isolates this change from master drift. Signed-off-by: Minju Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index f5df0085c2..9db775e5c7 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit f5df0085c27b1efaf0af4ab2950bfafa5a73bbb6 +Subproject commit 9db775e5c7a1d55dae3ff2cb6cd7711c6b437b39 From cfbd57c53e875d6a00e5ff7c02e21df68f2459b8 Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Sun, 12 Jul 2026 23:00:56 +0900 Subject: [PATCH 2/8] Update flow metric goldens for rsz rebuffering estimation-accuracy series Regenerate rules-base.json for the 13 CI designs whose metrics shifted after the OpenROAD bump (Private ORFS CI build #1). The improved rebuffer delay/slew estimation moved setup-TNS (and routing/area/buffer-count) metrics; goldens regenerated with `make update_rules` (--failing --tighten) from the CI run's metadata.json. Designs: asap7/{aes,ethmac,ethmac_lvt,mock-alu}, gf180/{aes,aes-hybrid}, nangate45/{ariane133,swerv}, sky130hd/{aes,microwatt,riscv32i}, sky130hs/{jpeg,riscv32i}. Note: swerv_wrapper/asap7 also failed CI but is NOT a golden shift -- it SIGSEGVs in PrimaDelayCalc::simulate1 during replace_arith_modules (delay-calc, unrelated to rebuffering); tracked separately. Signed-off-by: Minju Kim --- flow/designs/asap7/aes/rules-base.json | 6 ++--- flow/designs/asap7/ethmac/rules-base.json | 4 ++-- flow/designs/asap7/ethmac_lvt/rules-base.json | 16 +++++++------- flow/designs/asap7/mock-alu/rules-base.json | 10 ++++----- flow/designs/gf180/aes-hybrid/rules-base.json | 10 ++++----- flow/designs/gf180/aes/rules-base.json | 16 +++++++------- .../nangate45/ariane133/rules-base.json | 22 +++++++++---------- flow/designs/nangate45/swerv/rules-base.json | 22 +++++++++---------- flow/designs/sky130hd/aes/rules-base.json | 4 ++-- .../sky130hd/microwatt/rules-base.json | 22 +++++++++---------- .../designs/sky130hd/riscv32i/rules-base.json | 18 +++++++-------- flow/designs/sky130hs/jpeg/rules-base.json | 2 +- .../designs/sky130hs/riscv32i/rules-base.json | 8 +++---- 13 files changed, 80 insertions(+), 80 deletions(-) diff --git a/flow/designs/asap7/aes/rules-base.json b/flow/designs/asap7/aes/rules-base.json index 961cbd0fd6..3c99fb5fa0 100644 --- a/flow/designs/asap7/aes/rules-base.json +++ b/flow/designs/asap7/aes/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -119.0, + "value": -246.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -164.0, + "value": -266.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -74,7 +74,7 @@ "compare": ">=" }, "detailedroute__route__wirelength": { - "value": 57961, + "value": 57633, "compare": "<=" }, "detailedroute__route__drc_errors": { diff --git a/flow/designs/asap7/ethmac/rules-base.json b/flow/designs/asap7/ethmac/rules-base.json index e96077cce2..4d0c16bb3b 100644 --- a/flow/designs/asap7/ethmac/rules-base.json +++ b/flow/designs/asap7/ethmac/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -1480.0, + "value": -1470.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -1500.0, + "value": -1580.0, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/asap7/ethmac_lvt/rules-base.json b/flow/designs/asap7/ethmac_lvt/rules-base.json index bdff6b82ed..40ae3a16f8 100644 --- a/flow/designs/asap7/ethmac_lvt/rules-base.json +++ b/flow/designs/asap7/ethmac_lvt/rules-base.json @@ -18,11 +18,11 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 8327, + "value": 8298, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { - "value": 65193, + "value": 64816, "compare": "<=" }, "detailedplace__design__violations": { @@ -30,11 +30,11 @@ "compare": "==" }, "cts__design__instance__count__setup_buffer": { - "value": 5669, + "value": 5636, "compare": "<=" }, "cts__design__instance__count__hold_buffer": { - "value": 5669, + "value": 5636, "compare": "<=" }, "cts__timing__setup__ws": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -86.3, + "value": -233.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -308.0, + "value": -397.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -60.2, + "value": -197.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 8698, + "value": 8670, "compare": "<=" } } \ No newline at end of file diff --git a/flow/designs/asap7/mock-alu/rules-base.json b/flow/designs/asap7/mock-alu/rules-base.json index 5dc374caa2..a5a49647e9 100644 --- a/flow/designs/asap7/mock-alu/rules-base.json +++ b/flow/designs/asap7/mock-alu/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -18100.0, + "value": -18500.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -58,11 +58,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -303.0, + "value": -300.0, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -19400.0, + "value": -19800.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -300.0, + "value": -291.0, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -19700.0, + "value": -20300.0, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/gf180/aes-hybrid/rules-base.json b/flow/designs/gf180/aes-hybrid/rules-base.json index 6992544146..f3c2e1d56c 100644 --- a/flow/designs/gf180/aes-hybrid/rules-base.json +++ b/flow/designs/gf180/aes-hybrid/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -122.0, + "value": -123.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -135.0, + "value": -140.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -74,7 +74,7 @@ "compare": ">=" }, "detailedroute__route__wirelength": { - "value": 1483452, + "value": 1477431, "compare": "<=" }, "detailedroute__route__drc_errors": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -130.0, + "value": -135.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 725846, + "value": 720794, "compare": "<=" } } \ No newline at end of file diff --git a/flow/designs/gf180/aes/rules-base.json b/flow/designs/gf180/aes/rules-base.json index eca90d0da7..d96551b05e 100644 --- a/flow/designs/gf180/aes/rules-base.json +++ b/flow/designs/gf180/aes/rules-base.json @@ -18,11 +18,11 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 746496, + "value": 745269, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { - "value": 22190, + "value": 22187, "compare": "<=" }, "detailedplace__design__violations": { @@ -30,11 +30,11 @@ "compare": "==" }, "cts__design__instance__count__setup_buffer": { - "value": 1930, + "value": 1929, "compare": "<=" }, "cts__design__instance__count__hold_buffer": { - "value": 1930, + "value": 1929, "compare": "<=" }, "cts__timing__setup__ws": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -87.3, + "value": -90.4, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -100.0, + "value": -112.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -0.918, + "value": -0.902, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -97.6, + "value": -106.0, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/nangate45/ariane133/rules-base.json b/flow/designs/nangate45/ariane133/rules-base.json index 8cde2d298a..70c46dbb03 100644 --- a/flow/designs/nangate45/ariane133/rules-base.json +++ b/flow/designs/nangate45/ariane133/rules-base.json @@ -18,11 +18,11 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 826932, + "value": 821946, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { - "value": 194494, + "value": 187936, "compare": "<=" }, "detailedplace__design__violations": { @@ -30,11 +30,11 @@ "compare": "==" }, "cts__design__instance__count__setup_buffer": { - "value": 16912, + "value": 16342, "compare": "<=" }, "cts__design__instance__count__hold_buffer": { - "value": 16912, + "value": 16342, "compare": "<=" }, "cts__timing__setup__ws": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -743.0, + "value": -798.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -54,7 +54,7 @@ "compare": ">=" }, "globalroute__antenna_diodes_count": { - "value": 189, + "value": 183, "compare": "<=" }, "globalroute__timing__setup__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -994.0, + "value": -807.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -74,7 +74,7 @@ "compare": ">=" }, "detailedroute__route__wirelength": { - "value": 8397160, + "value": 7951750, "compare": "<=" }, "detailedroute__route__drc_errors": { @@ -86,7 +86,7 @@ "compare": "<=" }, "detailedroute__antenna_diodes_count": { - "value": 189, + "value": 184, "compare": "<=" }, "finish__timing__setup__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -1010.0, + "value": -781.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 836049, + "value": 830957, "compare": "<=" } } \ No newline at end of file diff --git a/flow/designs/nangate45/swerv/rules-base.json b/flow/designs/nangate45/swerv/rules-base.json index 17193eb3c2..c9f4197b57 100644 --- a/flow/designs/nangate45/swerv/rules-base.json +++ b/flow/designs/nangate45/swerv/rules-base.json @@ -18,11 +18,11 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 177447, + "value": 177137, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { - "value": 98028, + "value": 97158, "compare": "<=" }, "detailedplace__design__violations": { @@ -30,11 +30,11 @@ "compare": "==" }, "cts__design__instance__count__setup_buffer": { - "value": 8524, + "value": 8448, "compare": "<=" }, "cts__design__instance__count__hold_buffer": { - "value": 8524, + "value": 8448, "compare": "<=" }, "cts__timing__setup__ws": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -319.0, + "value": -426.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -54,15 +54,15 @@ "compare": ">=" }, "globalroute__antenna_diodes_count": { - "value": 101, + "value": 100, "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -0.699, + "value": -0.685, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -299.0, + "value": -354.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -0.672, + "value": -0.659, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -359.0, + "value": -369.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 183342, + "value": 183302, "compare": "<=" } } \ No newline at end of file diff --git a/flow/designs/sky130hd/aes/rules-base.json b/flow/designs/sky130hd/aes/rules-base.json index a45b0a5aa4..901cae97c7 100644 --- a/flow/designs/sky130hd/aes/rules-base.json +++ b/flow/designs/sky130hd/aes/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -4.6, + "value": -9.45, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -2.38, + "value": -6.09, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/sky130hd/microwatt/rules-base.json b/flow/designs/sky130hd/microwatt/rules-base.json index 74034aa4b0..1ba85b2961 100644 --- a/flow/designs/sky130hd/microwatt/rules-base.json +++ b/flow/designs/sky130hd/microwatt/rules-base.json @@ -18,11 +18,11 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 5432658, + "value": 5418926, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { - "value": 184133, + "value": 182096, "compare": "<=" }, "detailedplace__design__violations": { @@ -30,11 +30,11 @@ "compare": "==" }, "cts__design__instance__count__setup_buffer": { - "value": 16012, + "value": 15834, "compare": "<=" }, "cts__design__instance__count__hold_buffer": { - "value": 16012, + "value": 15834, "compare": "<=" }, "cts__timing__setup__ws": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -331.0, + "value": -317.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -54,7 +54,7 @@ "compare": ">=" }, "globalroute__antenna_diodes_count": { - "value": 1692, + "value": 2158, "compare": "<=" }, "globalroute__timing__setup__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -315.0, + "value": -303.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -82,11 +82,11 @@ "compare": "<=" }, "detailedroute__antenna__violating__nets": { - "value": 1, + "value": 4, "compare": "<=" }, "detailedroute__antenna_diodes_count": { - "value": 1295, + "value": 1488, "compare": "<=" }, "finish__timing__setup__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -307.0, + "value": -288.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -106,7 +106,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 5575637, + "value": 5566368, "compare": "<=" } } \ No newline at end of file diff --git a/flow/designs/sky130hd/riscv32i/rules-base.json b/flow/designs/sky130hd/riscv32i/rules-base.json index 66aac29df7..68f3da238d 100644 --- a/flow/designs/sky130hd/riscv32i/rules-base.json +++ b/flow/designs/sky130hd/riscv32i/rules-base.json @@ -18,11 +18,11 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 81836, + "value": 81619, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { - "value": 8404, + "value": 8365, "compare": "<=" }, "detailedplace__design__violations": { @@ -30,11 +30,11 @@ "compare": "==" }, "cts__design__instance__count__setup_buffer": { - "value": 731, + "value": 727, "compare": "<=" }, "cts__design__instance__count__hold_buffer": { - "value": 731, + "value": 727, "compare": "<=" }, "cts__timing__setup__ws": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -128.0, + "value": -143.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -58,11 +58,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -1.55, + "value": -1.45, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -224.0, + "value": -338.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -1.37, + "value": -1.21, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -114.0, + "value": -186.0, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/sky130hs/jpeg/rules-base.json b/flow/designs/sky130hs/jpeg/rules-base.json index 6be2fc85c1..43caf34799 100644 --- a/flow/designs/sky130hs/jpeg/rules-base.json +++ b/flow/designs/sky130hs/jpeg/rules-base.json @@ -82,7 +82,7 @@ "compare": "<=" }, "detailedroute__antenna__violating__nets": { - "value": 0, + "value": 1, "compare": "<=" }, "detailedroute__antenna_diodes_count": { diff --git a/flow/designs/sky130hs/riscv32i/rules-base.json b/flow/designs/sky130hs/riscv32i/rules-base.json index 4fcf9631e7..ee88b1099b 100644 --- a/flow/designs/sky130hs/riscv32i/rules-base.json +++ b/flow/designs/sky130hs/riscv32i/rules-base.json @@ -18,7 +18,7 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 112530, + "value": 112245, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -1.68, + "value": -88.5, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -291.0, + "value": -469.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -146.0, + "value": -252.0, "compare": ">=" }, "finish__timing__hold__ws": { From 7a0dfd1636d7feef1cff8c45fecf1a531beb2c03 Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Mon, 13 Jul 2026 10:31:58 +0900 Subject: [PATCH 3/8] Update gf12/aes area goldens for rsz rebuffering series Secure CI area metrics exceeded the padded ceilings after the rebuffering estimation-accuracy change. Regenerate with the standard 15% padding (make update_rules): placeopt__design__instance__area 4159 -> 4810 finish__design__instance__area 4236 -> 4886 Signed-off-by: Minju Kim --- flow/designs/gf12/aes/rules-base.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flow/designs/gf12/aes/rules-base.json b/flow/designs/gf12/aes/rules-base.json index f5962177c7..6995df0560 100644 --- a/flow/designs/gf12/aes/rules-base.json +++ b/flow/designs/gf12/aes/rules-base.json @@ -8,7 +8,7 @@ "compare": "==" }, "placeopt__design__instance__area": { - "value": 4159, + "value": 4810, "compare": "<=" }, "placeopt__design__instance__count__stdcell": { @@ -96,7 +96,7 @@ "compare": ">=" }, "finish__design__instance__area": { - "value": 4236, + "value": 4886, "compare": "<=" } } \ No newline at end of file From 1cebfb94637ee298977b3c357ab29224a89eb663 Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Mon, 13 Jul 2026 17:22:43 +0900 Subject: [PATCH 4/8] Bump OpenROAD: rsz rebuffering estimation-accuracy series Pin tools/OpenROAD at the rsz rebuffering estimation-accuracy series head (The-OpenROAD-Project/OpenROAD#10866, upstream author Martin Poviser). This drops the earlier SparseLU-guard bump so the submodule pin resolves against public OpenROAD for ORFS CI. Signed-off-by: Minju Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 878184fe6c..17d1e1d0f2 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 878184fe6c638124ed4a2e7cbb7ae14fd46627aa +Subproject commit 17d1e1d0f2569fb9e61a3e983eef69fe339039a9 From 1f66fae4478db4a0d568a5f31514ed17c9c42b30 Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Mon, 13 Jul 2026 20:23:18 +0900 Subject: [PATCH 5/8] flow: update asap7/mock-alu setup tns rule The rsz rebuffering estimation-accuracy series (OpenROAD#10866) shifts asap7/mock-alu finish__timing__setup__tns to -20481.5. Regenerate the rule bound to -20541.5 (period_padding, 20% of the 300ps clock period). Signed-off-by: Minju Kim --- flow/designs/asap7/mock-alu/rules-base.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/designs/asap7/mock-alu/rules-base.json b/flow/designs/asap7/mock-alu/rules-base.json index a5a49647e9..204b7a0533 100644 --- a/flow/designs/asap7/mock-alu/rules-base.json +++ b/flow/designs/asap7/mock-alu/rules-base.json @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -20300.0, + "value": -20541.5, "compare": ">=" }, "finish__timing__hold__ws": { From 17ca8f766a7b8b7252913bb6aad359097fa01bff Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Tue, 21 Jul 2026 00:39:17 +0900 Subject: [PATCH 6/8] Bump OpenROAD to rsz rebuffering series (no-fix) on 20d2d5c Update tools/OpenROAD 17d1e1d -> 0cb1ec3d3c: the rsz rebuffering estimation-accuracy series WITHOUT the slew_shape_factor fix (reverted on OR #3585/#10866), based on the OR commit ORFS master pins (20d2d5c). This corrects the prior pin which sat on an older OR master (missing the policy/optimizer refactor). Design metric goldens (rules-base.json) regenerated in a follow-up commit per CI-flagged churn. Signed-off-by: Minju Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 17d1e1d0f2..0cb1ec3d3c 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 17d1e1d0f2569fb9e61a3e983eef69fe339039a9 +Subproject commit 0cb1ec3d3c74a4e8f542cc10a323b806fe841553 From d1f14c576182603f3e047378cfb79e76a1185377 Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Tue, 21 Jul 2026 12:27:59 +0900 Subject: [PATCH 7/8] Bump OpenROAD to 3df136f12d (rsz buffering-boost re-merged onto OR master f9a281cbef) OR PR #10866 head advanced after merging OR master f9a281cbef (incl #10835 hold-buffer count fix); repoint submodule from c2188b7bc6. Signed-off-by: Minju Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index c2188b7bc6..3df136f12d 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit c2188b7bc64b516f33f0f9c921a64c09211fe611 +Subproject commit 3df136f12d603c28f3d99361fcae1cca7c054628 From b7d747b4d766215b0e9c23d22f888d93e14dfb6a Mon Sep 17 00:00:00 2001 From: Minju Kim Date: Tue, 21 Jul 2026 14:41:00 +0900 Subject: [PATCH 8/8] test: rebase failing metric rules to PR-4347 build #9 (pin 3df136f12d) Regenerate the 18 designs failing metric checks in Jenkins PR-4347-head #9 using the genRuleFile period_padding convention (setup tns pad 20%, ws pad 5%) against each design's clock period. Antenna rules are approximate (route-net-dependent): globalroute/detailedroute antenna_diodes_count padded ~10%; sky130hd/microwatt detailedroute__antenna__violating__nets relaxed 3->10 (padding 30%) accepts a real antenna DRC regression under this OR pin. Signed-off-by: Minju Kim --- flow/designs/asap7/aes-block/rules-base.json | 4 ++-- flow/designs/asap7/aes-mbff/rules-base.json | 4 ++-- flow/designs/asap7/aes/rules-base.json | 4 ++-- flow/designs/asap7/ethmac/rules-base.json | 4 ++-- flow/designs/asap7/mock-alu/rules-base.json | 6 +++--- flow/designs/asap7/riscv32i/rules-base.json | 4 ++-- flow/designs/asap7/uart/rules-base.json | 6 +++--- flow/designs/gf180/aes-hybrid/rules-base.json | 6 +++--- flow/designs/gf180/aes/rules-base.json | 8 ++++---- flow/designs/nangate45/jpeg/rules-base.json | 12 ++++++------ .../nangate45/mempool_group/rules-base.json | 4 ++-- flow/designs/nangate45/swerv/rules-base.json | 12 ++++++------ flow/designs/sky130hd/chameleon/rules-base.json | 16 ++++++++-------- flow/designs/sky130hd/jpeg/rules-base.json | 8 ++++---- flow/designs/sky130hd/microwatt/rules-base.json | 8 ++++---- flow/designs/sky130hs/aes/rules-base.json | 6 +++--- flow/designs/sky130hs/ibex/rules-base.json | 8 ++++---- flow/designs/sky130hs/riscv32i/rules-base.json | 8 ++++---- 18 files changed, 64 insertions(+), 64 deletions(-) diff --git a/flow/designs/asap7/aes-block/rules-base.json b/flow/designs/asap7/aes-block/rules-base.json index 9a4f8fbab4..0ff2508441 100644 --- a/flow/designs/asap7/aes-block/rules-base.json +++ b/flow/designs/asap7/aes-block/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -92.5, + "value": -292.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 6746, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/aes-mbff/rules-base.json b/flow/designs/asap7/aes-mbff/rules-base.json index 669f6c531a..cab585e268 100644 --- a/flow/designs/asap7/aes-mbff/rules-base.json +++ b/flow/designs/asap7/aes-mbff/rules-base.json @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -130.0, + "value": -277.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 1897, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/aes/rules-base.json b/flow/designs/asap7/aes/rules-base.json index bac0577d9d..381872dac3 100644 --- a/flow/designs/asap7/aes/rules-base.json +++ b/flow/designs/asap7/aes/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -248.0, + "value": -339.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 1663, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/ethmac/rules-base.json b/flow/designs/asap7/ethmac/rules-base.json index da54029f5e..200ecbe60c 100644 --- a/flow/designs/asap7/ethmac/rules-base.json +++ b/flow/designs/asap7/ethmac/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -1410.0, + "value": -1700.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 9358, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/mock-alu/rules-base.json b/flow/designs/asap7/mock-alu/rules-base.json index 56f2d65580..f1063b245f 100644 --- a/flow/designs/asap7/mock-alu/rules-base.json +++ b/flow/designs/asap7/mock-alu/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -18100.0, + "value": -21800.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -19800.0, + "value": -24200.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 1858, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/riscv32i/rules-base.json b/flow/designs/asap7/riscv32i/rules-base.json index b33d8efc4d..a710525cfb 100644 --- a/flow/designs/asap7/riscv32i/rules-base.json +++ b/flow/designs/asap7/riscv32i/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -206.0, + "value": -1480.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 3050, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/uart/rules-base.json b/flow/designs/asap7/uart/rules-base.json index 24e6070440..2ce4c48328 100644 --- a/flow/designs/asap7/uart/rules-base.json +++ b/flow/designs/asap7/uart/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -1510.0, + "value": -2030.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -889.0, + "value": -1250.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 118, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/gf180/aes-hybrid/rules-base.json b/flow/designs/gf180/aes-hybrid/rules-base.json index f3c2e1d56c..4f95680433 100644 --- a/flow/designs/gf180/aes-hybrid/rules-base.json +++ b/flow/designs/gf180/aes-hybrid/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -140.0, + "value": -169.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -135.0, + "value": -168.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 720794, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/gf180/aes/rules-base.json b/flow/designs/gf180/aes/rules-base.json index d96551b05e..cb25d985db 100644 --- a/flow/designs/gf180/aes/rules-base.json +++ b/flow/designs/gf180/aes/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -90.4, + "value": -110.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -112.0, + "value": -135.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -106.0, + "value": -129.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 804777, "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 ef6767d67a..49a64c7659 100644 --- a/flow/designs/nangate45/jpeg/rules-base.json +++ b/flow/designs/nangate45/jpeg/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -44.0, + "value": -65.6, "compare": ">=" }, "cts__timing__hold__ws": { @@ -58,11 +58,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -0.165, + "value": -0.228, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -55.5, + "value": -80.5, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -0.164, + "value": -0.223, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -51.7, + "value": -71.8, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 105092, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/nangate45/mempool_group/rules-base.json b/flow/designs/nangate45/mempool_group/rules-base.json index c2b06ab9db..9f510b3ad8 100644 --- a/flow/designs/nangate45/mempool_group/rules-base.json +++ b/flow/designs/nangate45/mempool_group/rules-base.json @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -11900.0, + "value": -14400.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 453619, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/nangate45/swerv/rules-base.json b/flow/designs/nangate45/swerv/rules-base.json index 7be4f4cf0d..e9a1135c86 100644 --- a/flow/designs/nangate45/swerv/rules-base.json +++ b/flow/designs/nangate45/swerv/rules-base.json @@ -38,11 +38,11 @@ "compare": "<=" }, "cts__timing__setup__ws": { - "value": -0.671, + "value": -0.772, "compare": ">=" }, "cts__timing__setup__tns": { - "value": -351.0, + "value": -519.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -58,11 +58,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -0.671, + "value": -0.825, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -417.0, + "value": -566.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -452.0, + "value": -600.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 182894, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/sky130hd/chameleon/rules-base.json b/flow/designs/sky130hd/chameleon/rules-base.json index c6e1513d3d..af39080e88 100644 --- a/flow/designs/sky130hd/chameleon/rules-base.json +++ b/flow/designs/sky130hd/chameleon/rules-base.json @@ -38,11 +38,11 @@ "compare": "<=" }, "cts__timing__setup__ws": { - "value": -2.14, + "value": -2.67, "compare": ">=" }, "cts__timing__setup__tns": { - "value": -10.7, + "value": -373.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -54,15 +54,15 @@ "compare": ">=" }, "globalroute__antenna_diodes_count": { - "value": 100, + "value": 161, "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -1.88, + "value": -2.35, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -7.91, + "value": -363.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -90,11 +90,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -1.77, + "value": -2.15, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -5.15, + "value": -354.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 6519902, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/sky130hd/jpeg/rules-base.json b/flow/designs/sky130hd/jpeg/rules-base.json index ce413ca11f..2b3d28c816 100644 --- a/flow/designs/sky130hd/jpeg/rules-base.json +++ b/flow/designs/sky130hd/jpeg/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -102.0, + "value": -159.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -151.0, + "value": -225.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -84.9, + "value": -111.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 518717, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/sky130hd/microwatt/rules-base.json b/flow/designs/sky130hd/microwatt/rules-base.json index c2b6876634..1b1aa392bc 100644 --- a/flow/designs/sky130hd/microwatt/rules-base.json +++ b/flow/designs/sky130hd/microwatt/rules-base.json @@ -54,7 +54,7 @@ "compare": ">=" }, "globalroute__antenna_diodes_count": { - "value": 3209, + "value": 5162, "compare": "<=" }, "globalroute__timing__setup__ws": { @@ -82,11 +82,11 @@ "compare": "<=" }, "detailedroute__antenna__violating__nets": { - "value": 3, + "value": 10, "compare": "<=" }, "detailedroute__antenna_diodes_count": { - "value": 1631, + "value": 2411, "compare": "<=" }, "finish__timing__setup__ws": { @@ -109,4 +109,4 @@ "value": 5570244, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/sky130hs/aes/rules-base.json b/flow/designs/sky130hs/aes/rules-base.json index a7783938c8..8ef42cd587 100644 --- a/flow/designs/sky130hs/aes/rules-base.json +++ b/flow/designs/sky130hs/aes/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -3.45, + "value": -4.37, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -0.565, + "value": -1.19, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 176005, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/sky130hs/ibex/rules-base.json b/flow/designs/sky130hs/ibex/rules-base.json index a93536f00d..b3b8f4a2f3 100644 --- a/flow/designs/sky130hs/ibex/rules-base.json +++ b/flow/designs/sky130hs/ibex/rules-base.json @@ -58,11 +58,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -0.525, + "value": -0.89, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -101.0, + "value": -338.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -3.4, + "value": -62.1, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 243893, "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 f4a54d9a36..6cc90e6831 100644 --- a/flow/designs/sky130hs/riscv32i/rules-base.json +++ b/flow/designs/sky130hs/riscv32i/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -19.6, + "value": -163.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -317.0, + "value": -525.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -170.0, + "value": -359.0, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 120021, "compare": "<=" } -} \ No newline at end of file +}