IntermediateQuestion 170 of 192Source: Synopsys PrimeTime User Guide U-2022.12-SP2: Managing Performance and Capacity (Distributed Multi-Scenario Analysis); ECO Flow (Running ECO Scenarios on Fewer Hosts)

What is DMSA, and why fix ECOs across all scenarios at once?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Distributed multi-scenario analysis runs one PrimeTime manager and several workers, each worker analyzing one scenario, where a scenario is one combination of operating condition and mode. The manager sets up, hands out tasks and merges results, but does no timing analysis itself. ECOs are fixed across all scenarios together because a change that fixes setup in the slow corner can break hold in the fast corner or timing in test mode, and only a run that sees every scenario can refuse that change.

Technical Reference DiagramWhat is DMSA, and why fix ECOs across all scenarios at once?
Lanes showing one PrimeTime manager on top and N worker lanes below, one scenario per worker, with create_scenario, start_hosts and remote_execute arrows down and merged reports and ECO checks returning up.

Technical Explanation

  • Scenario count is operating condition sets times modes. create_scenario (PT) names each one with -common_data scripts shared across scenarios, which go into a baseline image, and -specific_data scripts for that scenario only.
  • The flow is: start pt_shell with -multi_scenario, create scenarios, configure hosts with set_host_options (PT), check them with report_host_usage (PT), bring them online with start_hosts (PT), pick scenarios with current_session (PT), then run reports and ECOs.
  • set_host_options (PT) takes -num_processes, -max_cores and -protocol, such as ssh, lsf or sge. One manager can control up to 256 workers.
  • For best runtime, match workers, scenarios in focus and CPUs. With fewer workers than scenarios, workers swap scenario images in and out, which costs time.
  • current_scenario (PT) narrows the command focus for interactive work, and current_scenario -all (PT) restores every scenario in the session.
  • remote_execute (PT) runs commands in the worker context. Curly braces make variables and expressions evaluate at the worker.
  • ECO commands at the manager check every scenario in focus. With more scenarios than hosts, set eco_enable_more_scenarios_than_hosts (PT) to true, which needs at least four hosts.

What To Check

  • Every worker ONLINE in report_host_usage (PT).
  • Scenarios in the session and in command focus.
  • The merged error log for per-scenario setup failures.
  • Every signoff scenario present before fixing.

Command Checks & Actions

PrimeTime (pt_shell)create_scenario -name func_ss -common_data {common.pt} -specific_data {func_ss.pt}

Defines one scenario from shared and scenario-specific scripts.

PrimeTime (pt_shell)set_host_options -name farm -num_processes 11 -max_cores 4 -protocol lsf

Configures 11 workers with 4 cores each on the farm.

PrimeTime (pt_shell)report_host_usage

Shows host options, worker status, memory and CPU use.

PrimeTime (pt_shell)start_hosts

Requests the compute resources and brings workers online.

PrimeTime (pt_shell)current_session {func_ss func_ff test_ss}

Selects the scenarios for this session.

PrimeTime (pt_shell)current_scenario -all

Restores command focus to every scenario in the session.

PrimeTime (pt_shell)remote_execute {update_timing}

Runs the timing update in every worker.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): All 11 workers online, one scenario each, and a full update finishing close to the slowest single scenario.
  • Suspicious (illustrative): 8 workers for 24 scenarios, so every remote_execute (PT) swaps images and runtime triples.
  • Hard stop: A signoff scenario missing from the session. No ECO from that run can honour it.

Common Mistake

The Trap: Fixing hold in a standalone fast-corner PT session and setup in a separate slow-corner session. Each run is blind to the other, so setup fixes reopen hold paths and hold buffers eat setup margin, and the loop runs four times instead of once.

What The Interviewer Is Testing

  • Manager versus worker roles, and session versus command focus.
  • Why ECOs need every scenario in one run.
  • Can the candidate size hosts sensibly against scenarios?

Follow-up Question & Model Response

"What happens if you have more scenarios than hosts?"

Candidate Model Response: Workers swap scenarios in and out, saving a current image to disk each time, which costs runtime. For ECO fixing you set eco_enable_more_scenarios_than_hosts (PT) to true. The PT UG requires at least four hosts and recommends at least eight or a quarter of the scenario count, whichever is larger, plus enough disk for every scenario's session. Merging remote_execute (PT) blocks and cutting down merged reports reduces the swapping.

Practical Example

Tapeout Scenario: A block has 3 modes and 6 corners, 18 scenarios, of which 11 matter for signoff (illustrative). The team runs 11 workers with 4 cores each, one scenario per worker. A full update takes 50 minutes, close to the slowest scenario at 46. fix_eco_timing -type hold (PT) at the manager fixes 230 fast-corner hold violations while checking setup in all 11 scenarios, and the merged report afterwards shows zero new setup violations.

PnR Flow Mentor Guide

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.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →