ExpertQuestion 15 of 20Source PDF page 76

What is the difference between 'union' and 'every-group' TNS computation in report_global_timing, and why does this matter for DMSA (multi-scenario) results?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Technical Explanation

The timing_report_union_tns variable controls whether Total Negative Slack is computed as a 'union' (true, the default) across overlapping violation categories or as 'every- group' (false), summing each group's violations separately, which changes the reported TNS magnitude especially when combining results across DMSA scenarios.

Timing-path Reasoning

Union-mode TNS avoids double-counting when a single endpoint's violation could be attributed to multiple overlapping reporting groups, giving one consolidated negativeslack total per endpoint. Every-group mode instead sums violations per group independently, which can inflate the aggregate TNS if the same underlying violation is counted once per group it belongs to. In a DMSA context, where report_global_timing works across distributed multi-scenario analysis and simultaneous multivoltage analysis results, the choice of union vs every-group determines whether the merged, crossscenario TNS reflects a true single worst-case-per-endpoint picture or an inflated pergroup-per-scenario sum.

Command

report_global_timing; set timing_report_union_tns true|false

Switch-by-switch

timing_report_union_tns true selects union TNS computation (the default), avoiding double-counting overlapping violation groups. timing_report_union_tns false selects every-group TNS computation, summing each group's violations independently.

Expected Result

With union mode, TNS reflects a de-duplicated, single accounting of each endpoint's worst violation; with every-group mode, TNS can be larger since overlapping groups each contribute their own count of the same underlying violation.

Failure Symptoms

A DMSA merged report showing surprisingly large TNS values compared to individual scenario reports may be a symptom of every-group double-counting rather than a genuinely worse design, if the variable is set to false.

Root Cause

Overlapping reporting categories/groups counting the same endpoint's violation multiple times when every-group mode is used instead of a de-duplicated union computation.

Mentor Note — Debugging Procedure

Check the current setting of timing_report_union_tns before comparing TNS numbers across single-scenario and DMSA merged reports, and recompute or compare with the variable set consistently to avoid misreading an artifact of doublecounting as a real regression. Union TNS (the default) gives a de-duplicated, per-endpoint worst-case total, while every-group TNS sums overlapping groups independently — a distinction that becomes especially consequential when merging results across DMSA scenarios, where inconsistent settings can make designs look artificially worse or better than they are.

Visual explanationSTA context: What is the difference between 'union' and 'every-group' TNS computation in report_global_timing,…
STA context: What is the difference between 'union' and 'every-group' TNS computation in report_global_timing,…A three-step concept map summarizes the focus, core answer, and practical verification for What is the difference between 'union' and 'every-group' TNS computation in report_global_timing, and why does this matter for DMSA (multi-scenario) results?Question focusWhat is the differencebetween 'union' and'every-group' TNScomputation in…Core answerThetiming_report_union_tnsvariable controlswhether Total Negative…Verify in practicereport_global_timing;settiming_report_union_tnstrue|falseUnderstand → explain the mechanism → verify the assumptions

Continue learning free

Get a practical low-power chapter

Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.