What does merged reporting in DMSA give you, and what can't be merged?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Merged reporting lets you run a report once at the manager and get one answer across every scenario in command focus, with duplicates removed, results sorted by slack and each line labelled with its scenario. It works with report_timing (PT), get_timing_paths (PT), report_constraint (PT), report_analysis_coverage (PT), report_si_bottleneck (PT), report_clock_timing (PT) and report_min_pulse_width (PT). The main exception is cover-design reporting: report_timing -cover_design (PT) runs at the workers but cannot be merged at the manager.
Technical Explanation
- Merged
report_timing(PT) treats the scenarios as one virtual PrimeTime run. When the same path appears in several scenarios it keeps only the most critical instance and names that scenario, and-nworstand-max_pathsapply to the merged set. - Two paths count as the same when path group, data pin sequence, transitions, launch clock, capture clock and constraint type all match.
-dont_merge_duplicateskeeps every copy. - Merging spreads the report across the design instead of listing one region that is critical in every scenario.
- Merged
report_analysis_coverage(PT) calls a check untested only if it is untested in all scenarios; one scenario that tests it makes it met or violated. - At the manager,
-from,-throughand-totake strings. Curly braces make the worker evaluate an expression, and-pre_commandsbuilds a collection in the same task. report_global_timing(PT) also works with DMSA. For the QoR TNS, both counting modes oftiming_report_union_tns(PT) take each endpoint's worst slack across all scenarios, so scenarios never double-count.- Cover design has to run inside
remote_execute(PT). Its output goes to the working directory, or to the console with-verbose. - Every merged report is a round of work on all workers, so with scenario swapping, fewer merged reports mean faster runs.
What To Check
- The scenario column on the worst paths.
- Whether a count is merged endpoints or per-scenario paths before comparing runs.
- For coverage, which scenarios were in focus.
Command Checks & Actions
report_timing -nworst 1 -max_paths 50Merged worst paths across the scenarios in focus.
report_timing -dont_merge_duplicates -max_paths 50Shows the same path from each scenario that has it.
report_global_timing -delay_type maxWNS and TNS summary across scenarios.
report_qorQoR overview; TNS takes each endpoint at its worst scenario.
report_constraint -all_violatorsMerged DRC violators across scenarios.
remote_execute -verbose {report_timing -cover_design}Runs cover design at the workers, since it cannot be merged.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Merged WNS equals the worst per-scenario WNS and each worst path names its scenario.
- Suspicious (illustrative): Coverage shows no untested checks while the test scenarios are not in focus; the merge sees only scenarios in focus.
- Hard stop: Signoff numbers taken from a merged report with a signoff scenario missing from the session.
Common Mistake
The Trap: Expecting report_timing -cover_design (PT) at the manager to give a merged report like other report_timing options. It only runs at the workers, so a script that parses the manager log for cover-design violations reads an empty result and signs off on it.
What The Interviewer Is Testing
- Which commands merge, and the cover-design exception.
- Whether you understand how duplicate paths merge and when to stop it.
- Reading merged coverage correctly.
Follow-up Question & Model Response
"Why does merged coverage report a check as tested if only one scenario tested it?"
Candidate Model Response: Many checks only mean something in one mode: scan paths are untested in functional mode and tested in test mode. If merged coverage flagged every check untested in any scenario, the report would fill with expected gaps. So a check is untested only if no scenario in focus tested it. The flip side is useful: if the one scenario that tests a check leaves the focus, the check turns untested, which is exactly the warning you want.
Practical Example
Tapeout Scenario: Four scenarios are in focus: func_ss, func_ff, test_ss and test_ff (illustrative). Merged report_timing -max_paths 50 (PT) returns 50 unique paths, 38 from func_ss and 12 from test_ss. With -dont_merge_duplicates, 19 of the first 50 lines are repeats of paths already shown from another scenario. Merged coverage shows 412 setup checks with 0 untested. When test_ss and test_ff are dropped from focus, 96 scan-enable checks turn untested.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

Continue practising