From f953347c3941c28ae2c87198437631a2b9ebc5ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Povi=C5=A1er?= Date: Wed, 11 Mar 2026 14:37:40 +0100 Subject: [PATCH 1/7] Add final check all drivers have parasitic annotation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin PoviĊĦer --- flow/scripts/final_report.tcl | 3 +++ flow/scripts/util.tcl | 31 +++++++++++++++++++++++++++++++ tools/OpenROAD | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/flow/scripts/final_report.tcl b/flow/scripts/final_report.tcl index 928e92bf2b..2567aa1433 100644 --- a/flow/scripts/final_report.tcl +++ b/flow/scripts/final_report.tcl @@ -53,6 +53,9 @@ if { } else { puts "IR drop analysis for ground nets is skipped because GND_NETS_VOLTAGES is undefined" } + + # Check all drivers have parasitic annotation with exception of those with no connected loads + check_parasitic_annotation } else { puts "OpenRCX is not enabled for this platform." puts "Falling back to global route-based estimates." diff --git a/flow/scripts/util.tcl b/flow/scripts/util.tcl index af92dbe0c2..53a0148e45 100644 --- a/flow/scripts/util.tcl +++ b/flow/scripts/util.tcl @@ -290,3 +290,34 @@ proc orfs_write_sdc { output_file } { } log_cmd write_sdc -no_timestamp $output_file } + +proc check_parasitic_annotation { } { + foreach scene [sta::scenes] { + set nmissing 0 + set example "NULL" + foreach pin [get_pins *] { + if { [$pin is_leaf] && [$pin is_driver] } { + if { ![sta::parasitics_annotated $pin $scene] } { + set has_loads false + set pin_iter [$pin connected_pin_iterator] + while { [$pin_iter has_next] } { + set other_pin [$pin_iter next] + if { [$other_pin is_leaf] && [$other_pin is_load] && $other_pin != $pin } { + set has_loads true + break + } + } + $pin_iter finish + if { $has_loads } { + set nmissing [expr $nmissing + 1] + set example $pin + } + } + } + } + if { $nmissing > 0 } { + error "Missing parasitic annotation in scene $scene on $nmissing \ + driver pins, for example [get_full_name $example]" + } + } +} diff --git a/tools/OpenROAD b/tools/OpenROAD index fe1aa0f9d0..6718108ced 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit fe1aa0f9d0254fac87b82c886c04ee1544e46885 +Subproject commit 6718108ced511e3aa5057ac7a52c95c299f3abe4 From 590b8159a1d62a6c45e77c8d5edb220688c43ae5 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Thu, 12 Mar 2026 21:55:23 +0000 Subject: [PATCH 2/7] fix missing para on dbterm Signed-off-by: dsengupta0628 --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 6718108ced..679ef5a056 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 6718108ced511e3aa5057ac7a52c95c299f3abe4 +Subproject commit 679ef5a0568c25e7515ae3ac0fcd5fe79b2a2d6c From 503c0d7e06394297d22a593c14e19926b34a1942 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Mon, 23 Mar 2026 20:22:09 +0000 Subject: [PATCH 3/7] update openroad- again! Signed-off-by: dsengupta0628 --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 73558abfb6..51a1bb5969 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 73558abfb6c4d8d99d31fb151d63845c9545b990 +Subproject commit 51a1bb59697acd55b75fef1cb21717bcaeeb22b2 From 176bd4bdd5b1be6b581443de05deeb83a5908cf8 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Mon, 23 Mar 2026 21:58:46 +0000 Subject: [PATCH 4/7] revert the proc to check missing para Signed-off-by: dsengupta0628 --- flow/scripts/final_report.tcl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/flow/scripts/final_report.tcl b/flow/scripts/final_report.tcl index 908af22b3f..a78791a043 100644 --- a/flow/scripts/final_report.tcl +++ b/flow/scripts/final_report.tcl @@ -54,9 +54,7 @@ if { } else { puts "IR drop analysis for ground nets is skipped because GND_NETS_VOLTAGES is undefined" } - - # Check all drivers have parasitic annotation with exception of those with no connected loads - check_parasitic_annotation + } else { puts "OpenRCX is not enabled for this platform." puts "Falling back to global route-based estimates." From fe4b43aecf60e75428ebbe4a02f4be0f895fbf9f Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Wed, 25 Mar 2026 03:47:45 +0000 Subject: [PATCH 5/7] update openroad Signed-off-by: dsengupta0628 --- tools/OpenROAD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/OpenROAD b/tools/OpenROAD index 51a1bb5969..ea8cf58229 160000 --- a/tools/OpenROAD +++ b/tools/OpenROAD @@ -1 +1 @@ -Subproject commit 51a1bb59697acd55b75fef1cb21717bcaeeb22b2 +Subproject commit ea8cf582291a65546bb23513f66d89f581e4b5af From 2f5d5917546ef90f53fcfbe69ef99a6c72150292 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Wed, 25 Mar 2026 04:10:31 +0000 Subject: [PATCH 6/7] revert the final_report.tcl to original Signed-off-by: dsengupta0628 --- flow/scripts/final_report.tcl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/flow/scripts/final_report.tcl b/flow/scripts/final_report.tcl index a78791a043..13f1ab19d1 100644 --- a/flow/scripts/final_report.tcl +++ b/flow/scripts/final_report.tcl @@ -53,8 +53,7 @@ if { } } else { puts "IR drop analysis for ground nets is skipped because GND_NETS_VOLTAGES is undefined" - } - + } } else { puts "OpenRCX is not enabled for this platform." puts "Falling back to global route-based estimates." From b17fc9a7bf59317394e3f94aba6d84745091f6bb Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Wed, 25 Mar 2026 04:11:29 +0000 Subject: [PATCH 7/7] revert the final_report.tcl to original Signed-off-by: dsengupta0628 --- flow/scripts/final_report.tcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/scripts/final_report.tcl b/flow/scripts/final_report.tcl index 13f1ab19d1..d81acc986e 100644 --- a/flow/scripts/final_report.tcl +++ b/flow/scripts/final_report.tcl @@ -53,7 +53,7 @@ if { } } else { puts "IR drop analysis for ground nets is skipped because GND_NETS_VOLTAGES is undefined" - } + } } else { puts "OpenRCX is not enabled for this platform." puts "Falling back to global route-based estimates."