You have 40 scenarios and 8 hosts. How do you run ECO efficiently?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Set eco_enable_more_scenarios_than_hosts (PT) to true so DMSA ECO can run with fewer hosts than scenarios. The hosts then swap scenarios in and out, which is slow, so the script has to minimise swaps: fewer merged reports, one batched remote_execute (PT) block, and change lists written from one scenario. Also check whether 40 scenarios are all needed.
Technical Explanation
- PrimeTime needs at least four available hosts for this mode, and recommends at least eight or one-fourth of the number of scenarios, whichever is larger. For 40 scenarios that is 10 hosts, so 8 is below the recommendation and runtime will suffer.
- Runtime grows linearly as available hosts decrease. The actual turnaround depends on design size, violation count, scenario type, network performance and disk space.
- Disk space is a hard requirement. The DMSA working directory must hold the session data of all scenarios, so 40 scenarios at 1 GB each need at least 40 GB there.
- Each
remote_execute(PT) command costs one round of scenario swapping. Merge all setup and reporting commands into a single block instead of several small ones. - Merged reporting commands, such as
report_timing(PT) andreport_analysis_coverage(PT) run from the manager, also trigger swapping. Keep manager-side reports to the minimum, for example onereport_constraint -all_violators(PT). - Write the change list from one scenario.
current_scenario(PT) to one scenario, thenwrite_changes(PT) insideremote_execute(PT), avoids another full swap; the netlist changes are the same in every scenario. - Reduce scenarios before buying hosts. Scenarios that are dominated in every check add runtime without adding coverage. PrimeTime mode merging (
create_merged_modes(PT)) can combine compatible modes, but the merged constraints must be reviewed before they are trusted.
What To Check
- Hosts available against max(8, scenarios/4).
- Free disk in the DMSA working directory against the sum of scenario session sizes.
- Number of separate
remote_execute(PT) blocks and manager-side reports in the ECO script. - Which scenarios never produce a unique worst violation and could be dropped or merged.
Command Checks & Actions
set_app_var eco_enable_more_scenarios_than_hosts trueAllows DMSA ECO to run with more scenarios than hosts.
set_host_optionsDefines the hosts or processes the manager can launch.
start_hostsStarts the worker processes.
remote_execute { report_analysis_coverage }Runs all scenario-side reports in one swap round.
report_constraint -all_violatorsSingle merged violation report at the manager.
current_scenario scen1Selects one scenario so the change list is written without another swap.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Ten hosts for 40 scenarios, 50 GB free for 40 GB of session data, and one merged remote_execute block per phase.
- Suspicious (illustrative): Eight hosts with six separate remote_execute blocks; turnaround is several times the full-host run.
- Hard stop: Fewer than four hosts available, or disk smaller than the total session data. The run cannot proceed.
Common Mistake
The Trap: Porting a script written for one-host-per-scenario DMSA unchanged. It has a report_timing (PT) after every fix step and a separate remote_execute (PT) for every setting, so each one triggers a full rotation of 40 scenarios through 8 hosts. The ECO that took two hours now takes a day, and the team blames the variable.
What The Interviewer Is Testing
- Do you know the host and disk requirements for scenario swapping?
- Understanding what triggers a swap and how to script around it.
- Questioning the scenario count before asking for hardware.
Follow-up Question & Model Response
"Why write changes from only one scenario?"
Candidate Model Response: In DMSA the netlist is shared: a netlist edit must be possible in all scenarios before it is committed to any of them, so every scenario holds the same changes. Writing the change list from one scenario gives the same file as writing from all of them. With fewer hosts than scenarios, asking every scenario to write would force another round of swapping for no new information.
Practical Example
Tapeout Scenario: A block with 40 scenarios and 8 hosts (illustrative). The first script had seven remote_execute (PT) blocks and four manager reports and took 19 hours. Merging into two blocks and one manager report brought it to 9 hours. Review showed 12 scenarios never held a unique worst violation across the last three signoff runs; after the owners agreed to drop them, 28 scenarios on 8 hosts, which meets max(8, 7), finished in 6 hours with 28 GB of session data.
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