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 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
Master Signoff-Ready Static Timing Analysis
Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Continue practising