From 2965a4713460c2c6172891fe614b57add14e36db Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Wed, 8 Jul 2026 10:38:55 +0900 Subject: [PATCH 1/7] tools: Bump OpenROAD submodule Update the OpenROAD submodule to the RSZ latch time-borrow repair branch without the OpenSTA submodule update. This keeps the ORFS PR focused on the RSZ fix and avoids carrying the unrelated STA update commit. Signed-off-by: Jaehyun Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index f4e5e40f47..58289619c3 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit f4e5e40f4755f135fea8e567c8c6822136b48729 +Subproject commit 58289619c3d52d63f2fdefb3e6af684fc9d8291f From bb8d53625d6782f05ca6c2639f2223d799912087 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Wed, 8 Jul 2026 19:59:45 +0900 Subject: [PATCH 2/7] tools: Bump OpenROAD submodule Update the OpenROAD submodule to the RSZ latch time-borrow repair branch after merging latest master. This restores the OpenSTA scene/mode object update required by ORFS save_images.tcl while keeping the RSZ time-borrow fixes on the branch. Signed-off-by: Jaehyun Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 58289619c3..f58686f39e 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 58289619c3d52d63f2fdefb3e6af684fc9d8291f +Subproject commit f58686f39e7dbb603810f33f7f06331ddedc7409 From 5b3c46075dd44c21dc12b1470c09cbeaa040bd87 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Thu, 9 Jul 2026 00:24:28 +0900 Subject: [PATCH 3/7] flow: Update QoR rules for OpenROAD bump Update only the metadata rules that failed in public PR-4339-merge build 4 after the OpenROAD submodule bump. The new thresholds match the archived Jenkins metadata for nangate45/tinyRocket and sky130hd/microwatt so local metadata checks pass without changing unrelated rules. Signed-off-by: Jaehyun Kim --- flow/designs/nangate45/tinyRocket/rules-base.json | 8 ++++---- flow/designs/sky130hd/microwatt/rules-base.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/flow/designs/nangate45/tinyRocket/rules-base.json b/flow/designs/nangate45/tinyRocket/rules-base.json index 2675dbcf47..b039844dec 100644 --- a/flow/designs/nangate45/tinyRocket/rules-base.json +++ b/flow/designs/nangate45/tinyRocket/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -32.4, + "value": -37.3637, "compare": ">=" }, "cts__timing__hold__ws": { @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -53.9, + "value": -56.3263, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -46.6, + "value": -47.9277, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 62067, "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 f511144e80..88d32944ee 100644 --- a/flow/designs/sky130hd/microwatt/rules-base.json +++ b/flow/designs/sky130hd/microwatt/rules-base.json @@ -62,7 +62,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -295.0, + "value": -312.055, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -86,7 +86,7 @@ "compare": "<=" }, "detailedroute__antenna_diodes_count": { - "value": 1274, + "value": 1296, "compare": "<=" }, "finish__timing__setup__ws": { @@ -94,7 +94,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -258.0, + "value": -309.073, "compare": ">=" }, "finish__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 5575637, "compare": "<=" } -} \ No newline at end of file +} From 969ea649d2ad1429d7db3fbf5a29015b85fe93ec Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Thu, 9 Jul 2026 04:30:24 +0900 Subject: [PATCH 4/7] flow: Update mempool group QoR rule Update the cts setup TNS rule that failed in public PR-4339-merge build 5 after the previous QoR rule update allowed the flow to progress further. The updated threshold matches the archived Jenkins metadata for nangate45/mempool_group and leaves unrelated rules unchanged. Signed-off-by: Jaehyun Kim --- flow/designs/nangate45/mempool_group/rules-base.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flow/designs/nangate45/mempool_group/rules-base.json b/flow/designs/nangate45/mempool_group/rules-base.json index ae9133af02..5dd1d18eaf 100644 --- a/flow/designs/nangate45/mempool_group/rules-base.json +++ b/flow/designs/nangate45/mempool_group/rules-base.json @@ -42,7 +42,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -12400.0, + "value": -12425.7, "compare": ">=" }, "cts__timing__hold__ws": { @@ -109,4 +109,4 @@ "value": 453697, "compare": "<=" } -} \ No newline at end of file +} From 5d76a7e3b497206080f93b8751f347255ca5e52b Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Fri, 10 Jul 2026 23:20:07 +0900 Subject: [PATCH 5/7] tools: Bump OpenROAD submodule Update the OpenROAD submodule to pick up the multi-level transparent latch fanin repair on the RSZ time-borrow branch. Included OpenROAD commits: rsz: Use current slack in TNS endpoint repair (db9596e895), rsz: Share latch data path helper (2355a48959), rsz: Walk chained latch fanin paths (2aa25ef338). Signed-off-by: Jaehyun Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index f58686f39e..2aa25ef338 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit f58686f39e7dbb603810f33f7f06331ddedc7409 +Subproject commit 2aa25ef338270ad0ba1ff828448e2f9e17e169d8 From 94ebcff536fba643a91d0353f8840dc2118ea4c2 Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 13 Jul 2026 09:44:49 +0900 Subject: [PATCH 6/7] tools: Bump OpenROAD submodule Update the OpenROAD submodule to include the latest secure-rsz-time-borrow-opt merge with master. This brings in the latch time-borrow setup path optimization updates on top of current OpenROAD master so ORFS CI can validate the integrated flow. Only the OpenROAD submodule pointer is changed. Signed-off-by: Jaehyun Kim --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 2aa25ef338..8b4264b0b6 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 2aa25ef338270ad0ba1ff828448e2f9e17e169d8 +Subproject commit 8b4264b0b6e3d2fbdbe5c8508376b949a0bcccd8 From 5ec5169ffd465059879e2142e389d6de7e42bcfb Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Mon, 13 Jul 2026 15:26:28 +0900 Subject: [PATCH 7/7] flow: Update rules for synth hash metrics Refresh warning-level synth netlist hash rules for the public ORFS designs reported by PR-4339 Jenkins metadata checks. The rules now match the metadata generated by the current secure-rsz-time-borrow-opt flow while leaving non-hash QoR limits unchanged. Verified the affected metadata.json artifacts from PR-4339-merge/10 with checkMetadata.py and confirmed zero metadata warnings for the updated rules. Signed-off-by: Jaehyun Kim --- flow/designs/asap7/aes-block/rules-base.json | 4 ++-- flow/designs/asap7/riscv32i-mock-sram/rules-base.json | 4 ++-- flow/designs/gf180/uart-blocks/rules-base.json | 4 ++-- flow/designs/gt2n/aes/rules-base.json | 6 +++--- flow/designs/gt2n/gcd/rules-base.json | 6 +++--- flow/designs/gt2n/jpeg/rules-base.json | 6 +++--- flow/designs/ihp-sg13g2/i2c-gpio-expander/rules-base.json | 4 ++-- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/flow/designs/asap7/aes-block/rules-base.json b/flow/designs/asap7/aes-block/rules-base.json index 8812d352d3..e0403308c0 100644 --- a/flow/designs/asap7/aes-block/rules-base.json +++ b/flow/designs/asap7/aes-block/rules-base.json @@ -1,6 +1,6 @@ { "synth__canonical_netlist__hash": { - "value": "3fc8a6d24fdb16116484d2eed15ff2dbe4531126", + "value": "19acb7d687b178ee91ab01ad07af25e3abedb535", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 6750, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/asap7/riscv32i-mock-sram/rules-base.json b/flow/designs/asap7/riscv32i-mock-sram/rules-base.json index c3f4aafc32..5a087de011 100644 --- a/flow/designs/asap7/riscv32i-mock-sram/rules-base.json +++ b/flow/designs/asap7/riscv32i-mock-sram/rules-base.json @@ -1,6 +1,6 @@ { "synth__canonical_netlist__hash": { - "value": "fb786d77e841d2488f5a6b7db514abf2010cf808", + "value": "9f7d39ee0f440924eabd30155a544d8efcc50841", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 2367, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/gf180/uart-blocks/rules-base.json b/flow/designs/gf180/uart-blocks/rules-base.json index 2e88c899e0..768b3667cc 100644 --- a/flow/designs/gf180/uart-blocks/rules-base.json +++ b/flow/designs/gf180/uart-blocks/rules-base.json @@ -1,6 +1,6 @@ { "synth__canonical_netlist__hash": { - "value": "6539c6f38d2e14aa6b73a233552bb9e77150c29e", + "value": "e210b6053e7d9b8ec2bee901b225bfcccb372a8e", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 71942, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/gt2n/aes/rules-base.json b/flow/designs/gt2n/aes/rules-base.json index 8048fd38e7..c7818af022 100644 --- a/flow/designs/gt2n/aes/rules-base.json +++ b/flow/designs/gt2n/aes/rules-base.json @@ -1,11 +1,11 @@ { "synth__canonical_netlist__hash": { - "value": "e9426c391e35d86c9f9023e814fd4826714b89b5", + "value": "b5cb62181bb94986892fda8e1365619061e48646", "compare": "==", "level": "warning" }, "synth__netlist__hash": { - "value": "93f9e9316090c4b4b44bf35599036a9c5cdfe109", + "value": "ea6d1e1b8dfb6a178bcd19185426c4d458de61db", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 1636, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/gt2n/gcd/rules-base.json b/flow/designs/gt2n/gcd/rules-base.json index 8f74aa3411..cea42c9509 100644 --- a/flow/designs/gt2n/gcd/rules-base.json +++ b/flow/designs/gt2n/gcd/rules-base.json @@ -1,11 +1,11 @@ { "synth__canonical_netlist__hash": { - "value": "94435b2c79066c9133b4aed43b6f5abf1ec21003", + "value": "108e2de983c01ded46ab267946b5516413d044ad", "compare": "==", "level": "warning" }, "synth__netlist__hash": { - "value": "102bf37d6da7bc1aa234e916ebbf91984197836d", + "value": "b93b42902bb727f11898a7e24cd3ba60e4d9d132", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 73, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/gt2n/jpeg/rules-base.json b/flow/designs/gt2n/jpeg/rules-base.json index 4e6b25d1bf..f9c6e3e051 100644 --- a/flow/designs/gt2n/jpeg/rules-base.json +++ b/flow/designs/gt2n/jpeg/rules-base.json @@ -1,11 +1,11 @@ { "synth__canonical_netlist__hash": { - "value": "39cc69c759997747b607f7a6d205bc6b27432dce", + "value": "51457652a38612abc81c6f24d04adbd8156dac64", "compare": "==", "level": "warning" }, "synth__netlist__hash": { - "value": "eda4f7adafcd818f9ad0d4da7c8f3dd4089ea87b", + "value": "366edccbe4bd276e7aec2ed99938c43c1276ca73", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 7407, "compare": "<=" } -} \ No newline at end of file +} diff --git a/flow/designs/ihp-sg13g2/i2c-gpio-expander/rules-base.json b/flow/designs/ihp-sg13g2/i2c-gpio-expander/rules-base.json index 44cd7d43ef..203e663aa8 100644 --- a/flow/designs/ihp-sg13g2/i2c-gpio-expander/rules-base.json +++ b/flow/designs/ihp-sg13g2/i2c-gpio-expander/rules-base.json @@ -1,6 +1,6 @@ { "synth__canonical_netlist__hash": { - "value": "2145f9fd37063135e1bf5bef2eb081c962b4c279", + "value": "809b3e13fb7db39aac4af944ae07eb3e07e9c905", "compare": "==", "level": "warning" }, @@ -109,4 +109,4 @@ "value": 42094, "compare": "<=" } -} \ No newline at end of file +}