Skip to content

(DO NOT MERGE) dbSta: Add delay calculator runtime regressions - #11200

Draft
jhkim-pii wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-compare-dcalc-runtime
Draft

(DO NOT MERGE) dbSta: Add delay calculator runtime regressions#11200
jhkim-pii wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-compare-dcalc-runtime

Conversation

@jhkim-pii

Copy link
Copy Markdown
Contributor

Adds Tcl regressions comparing dmp_ceff_elmore and dmp_ceff_lambert_w with full find_requireds timing updates

  • In a few -threads 64 tests, Lambert W dcalc is slower.

STA full timing update runtime

  • T1: -threads 1
  • T64: -threads t64
  • Default: dmp_ceff_elmore delay calculator
  • Lambert: dmp_ceff_lambert_w delay calculator
  • Runtime unit: ms

Runtime measurement

set_delay_calculator $model
set start_us [clock microseconds]
sta::find_requireds
set elapsed_us [expr {[clock microseconds] - $start_us}]
Regression design T1 Default T1 Lambert T1 delta T64 Default T64 Lambert T64 delta Default scaling (T1→T64) Lambert scaling (T1→T64)
asap7_aes 996.0 657.8 -34.0% 309.4 367.7 +18.8% 3.2x 1.8x
asap7_gcd 18.1 11.4 -36.7% 18.1 12.8 -29.4% 1.0x 0.9x
asap7_riscv 345.7 350.0 +1.2% 170.6 186.1 +9.1% 2.0x 1.9x
example1 0.1 0.1 -21.1% 0.1 0.1 -11.6% 0.9x 0.8x
gf180_jpeg 1950.3 1997.1 +2.4% 669.0 791.1 +18.2% 2.9x 2.5x
mock_array 485.4 435.9 -10.2% 359.4 369.2 +2.7% 1.4x 1.2x
nangate45_dynamic_node 338.2 346.0 +2.3% 189.9 210.0 +10.6% 1.8x 1.6x
nangate45_gcd 13.8 9.7 -29.8% 16.7 12.6 -24.2% 0.8x 0.8x
nangate45_ibex 785.8 799.2 +1.7% 405.1 442.6 +9.2% 1.9x 1.8x

How to run asap7/aes with 64 threads

bazel build //:openroad
cd src/dbSta/test
../../../bazel-bin/openroad -threads 64 -no_splash -no_init -exit dcalc_full_update_runtime_asap7_aes.tcl

Example output

...
average  model=dmp_ceff_elmore      runtime_us=    322024 wns=      -77.106266 tns=    -7171.530065
average  model=dmp_ceff_lambert_w   runtime_us=    363738 wns=      -11.645074 tns=      -74.446227
pass

Add pass/fail Tcl regressions that measure complete required-time updates with the default Elmore and Lambert-W delay models.

Share the measurement and QoR stability checks across nine existing timing fixtures and expose only the fixture data required by Bazel. Keep runtime ordering informational because it depends on design and thread count.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Add the required spacing to the empty Tcl argument list so tclfmt accepts the shared runtime helper. This restores fmt_tcl_test without changing test behavior.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
@jhkim-pii jhkim-pii self-assigned this Aug 21, 2026
@jhkim-pii jhkim-pii changed the title dbSta: Add delay calculator runtime regressions (DO NOT MERGE) dbSta: Add delay calculator runtime regressions Aug 21, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a suite of integration tests to compare the full timing-update runtimes of the Elmore and Lambert-W delay calculators across multiple designs, including ASAP7, Nangate45, and GF180. It adds several test scripts, helper utilities, and updates Bazel and CMake configurations to support these pass/fail tests. The review feedback suggests simplifying conditional expressions in the Bazel build file to direct booleans for better readability, and replacing lsearch with remove_from_collection in the Tcl test script to ensure robust handling of OpenSTA collections.

Comment thread src/dbSta/test/BUILD Outdated
Comment thread src/dbSta/test/dcalc_full_update_runtime_asap7_riscv.tcl Outdated
Simplify the PASSFAIL Bazel conditions and use the OpenSTA-native all_inputs -no_clocks option for the ASAP7 RISC-V constraints.

This keeps timing behavior unchanged while making the test setup more direct and readable.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant