BeginnerQuestion 90 of 95Source: Synopsys PrimeTime User Guide: ECO Flow

What is an ECO, and when do you fix timing in PrimeTime instead of redoing place-and-route?

From PDVerse STA Mentor Guide ยท pdVerse Mentor Guide

Short Answer

An ECO โ€” engineering change order โ€” is a small, targeted set of netlist changes made late in the flow to fix specific violations, instead of rerunning the full place-and-route flow. A designer reaches for PrimeTime's ECO commands when only a handful of cells need resizing or a few buffers need inserting, because a full re-implementation would cost far more schedule time than the violations are worth.

Technical Reference DiagramWhat is an ECO, and when do you fix timing in PrimeTime instead of redoing place-and-route?
A before/after diagram: a placed block with six flagged hold-violation flops, then the same block with three small buffers inserted only near those flops, everything else unchanged.

Technical Explanation

Late in a project, the cost of a full re-run and the cost of a small surgical fix diverge sharply, and ECO exists for that gap.

  • fix_eco_timing (PT) fixes setup or hold violations by resizing cells or inserting buffers and inverter pairs, targeting only the specific violations you point it at.
  • The output is a list of changes, called the ECO itself, that gets written out with write_changes (PT) and applied back into the physical design rather than left only inside PrimeTime.
  • Redoing full place-and-route reconsiders every cell's placement and every net's route from scratch, which can shift thousands of other paths' timing along with the few you meant to fix.
  • An ECO instead touches a small, bounded set of cells and nets, keeping everything else in the design exactly as it was, physically as well as logically.
  • This bounded scope is why ECO is the standard fix late in a schedule, close to tapeout, when there is no time left to absorb a full re-implementation's ripple effects.
  • Early in a project, before placement is even final, a designer would normally fix a timing problem by adjusting constraints or logic and re-running the full flow instead, since nothing has been committed yet.

Common Mistake

The Trap: treating ECO as a shortcut available at any project stage.

  • Running an ECO on a design that has not even completed clock tree synthesis wastes the exercise, since a normal re-run would still change too much for the ECO's small fix to hold.
  • ECO earns its value specifically late, when the alternative โ€” a full re-run โ€” is the more expensive option.

Follow-up Question & Model Response

Once fix_eco_timing has picked a set of cell resizes and buffer insertions, does that fix take effect immediately in the physical layout?

Candidate Model Response: Not by itself. fix_eco_timing (PT) changes PrimeTime's internal netlist model and produces a change list; the physical tool still has to place, route, and legalize those added cells. write_changes (PT) hands that change list over in a format the place-and-route tool can consume. Only after the physical tool applies the changes and the design is re-extracted does the fix exist in silicon, which is why every ECO gets re-verified with a fresh timing run afterward.

Practical Example

Two weeks before tapeout, a block shows six hold violations, each under 30ps, scattered across one clock domain. Instead of re-running place-and-route on the whole block, the team runs fix_eco_timing -type hold (PT) targeted at those six endpoints, inserts small delay buffers, and re-verifies with a fresh signoff run rather than re-placing the entire block.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

VLSI Physical Design Planning Handbook โ€” fourteen chaptersDesign PlanningFourteen chapters, floorplanning through timing budgets. โ†’