Module 118 min

The ECO Flow

Making small, surgical late-stage changes

Designs are never perfect on the first pass. Late in the flow you fix the last problems with an ECO, an Engineering Change Order: a small, targeted change that fixes what is broken without disturbing the rest of a nearly-finished design.

Two kinds of ECO

  • Functional ECO: the logic itself must change, for example a bug found late or a spec change. The netlist is edited.
  • Timing ECO: the logic is correct but a few paths still violate. You resize cells, add buffers, or adjust to close those paths.

Why surgical matters

By ECO time the design is placed, routed, and almost signed off. Re-running the whole flow would disturb everything and could create new violations. So an ECO changes only the few cells and nets involved and runs incremental placement and routing on just that area, leaving the rest untouched.

Pre-mask versus post-mask

Timing matters here. A pre-mask ECO, before the masks are made, can change anything. A post-mask ECO, after some masks already exist, must be a metal-only ECO: it can only rewire using existing spare cells and the metal layers, because changing the base layers would mean remaking expensive masks.

ECO typeCan changeCost
Pre-maskAny layer, add cells freelyLower (no masks made yet)
Post-mask (metal-only)Metal layers + spare cells onlyHigher, but cheaper than full respin

Spare cells

Designers scatter unused spare cells (and fill that can be turned into gates) across the chip in advance, precisely so that a post-mask ECO can implement a small logic fix by rewiring to those spares using only metal. It is insurance built into the floorplan.

Pro tip

the one-line summary: an ECO is a minimal change plus incremental place-and-route, and a post-mask ECO is metal-only using spare cells. Knowing why spare cells exist, to enable cheap late fixes without remaking masks, is a classic senior-level interview point.

Watch out

always re-verify after an ECO: re-run timing on the affected paths and check you did not create new violations or DRC problems nearby. A careless ECO that fixes one path and breaks two is worse than the original problem.