Skip to content

fix(iSTA): improve RC timing accuracy and add optional minimum slew policy - #236

Merged
yipeix merged 4 commits into
mainfrom
sta_timing_main
Sep 16, 2026
Merged

yipeix merged 4 commits into
mainfrom
sta_timing_main

Conversation

@yipeix

@yipeix yipeix commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Input-port RC delays and SDF data-pin slew selection produced significant local timing differences. This change evaluates the reduced RC network's step/ramp waveform for input ports and uses data slew, with a physical clock-waveform fallback, for SDF data checks. Explicit zero data slew remains valid.

It also adds init_sta -min_slew_degradation 0|1 consistently to Tcl, C++ and Python configuration. The default 1 retains calculated receiver slew. Experimental mode 0 uses moment-reduced pi resistance to select a driver-slew approximation for minimum analysis, only when the receiver has matching slew thresholds and derate. Mixed conventions retain their physical waveform. Wire-delay threshold corrections, maximum analysis, resistance loops and DMP fallback keep their existing behavior. The approximation remains opt-in and does not claim full PrimeTime alignment.

Merged the latest main (c63838af1, including the Abseil-to-STL migration) into sta_timing_main. OpenSTA was consulted for behavior; the implementation is original.

Validation:

  • Release ecc_bin build and all 9 local CTests pass on the integrated code, covering RC waveforms, configuration validation, mixed receiver conventions, caching, SDF checks, Liberty buses and SDC semantics.
  • The new mixed-convention regression fails with the prior approximation and passes with the fix.
  • All 8 integrated-main reruns passed: GCD and example6, TT/SS, policies 0/1. Every SDF is byte-identical to its pre-integration reference except for the DATE line, and every QoR JSON is equal. Thus the listed SDF accuracy results are preserved after the STL migration.
  • Test-directory changes are intentionally excluded from this PR and remain local.

Example6 SDF evidence from the validated implementation, using the same PT reference and pairing by instance, pins, transition, condition and min/max (absolute differences, ps):

Metric TT SS
Input-port fix: maximum INTERCONNECT difference, before → default after 29.351208 → 4.539550 48.245978 → 4.951897
Default vs experimental mode: mean IOPATH difference 0.110289 → 0.101860 0.255862 → 0.241410
Default vs experimental mode: maximum IOPATH difference 19.816780 → 7.862680 36.831719 → 19.581127
Mixed-convention guard: affected SRAM receiver IOPATH difference, prior approximation → current 5.898994 → 1.681771 11.721534 → 4.107213

The experimental policy still worsens some values relative to the default. Remaining driver-model differences and SDF RETAIN, disabled-arc and conditional-check coverage are not hidden or considered resolved.

@yipeix yipeix changed the title fix(iSTA): improve input-port RC timing and SDF data slew fix(iSTA): improve RC timing accuracy and add optional minimum slew policy Sep 16, 2026
@yipeix
yipeix marked this pull request as ready for review September 16, 2026 04:00
@yipeix
yipeix merged commit a7e075e into main Sep 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant