ExpertQuestion 237 of 111Source PDF page undefined

What ECO techniques are available after CTS if a hold violation shows up, and when do you use freeze-silicon ECO instead of a normal buffer insertion?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

For a normal post-CTS hold fix, add_buffer_on_route inserts a buffer directly on the existing route topology, or size_cell resizes an existing cell -- both are logic/metal-only changes to an already-placed, already-routed design. Freeze-silicon ECO is a different tier: it maps the fix onto pre-placed programmable spare cells (matched by psc_type_id) so the change requires only a metal-mask respin, not a full new mask set -- used specifically when the design has already taped out or is close enough that touching silicon layers is unacceptable.

Technical Reference DiagramWhat ECO techniques are available after CTS if a hold violation shows up, and when do you use freeze-silicon ECO instead of a normal buffer insertion?
What ECO techniques are available after CTS if a hold violation shows up, and when do you use freeze-silicon ECO instead of a normal buffer insertion?, illustrating the physical design concept.

Technical Explanation

  • For a normal post-CTS hold fix, add_buffer_on_route inserts a buffer directly on the existing route topology to minimize disturbance, and size_cell resizes an existing cell -- both are straightforward logic/metal changes on an already-placed, already-routed design.
  • Freeze-silicon ECO maps the fix onto pre-placed programmable spare cells (PSCs), matched to the ECO cell via the shared psc_type_id attribute.
  • PSCs let an ECO be implemented as a metal-mask-only respin, since transistor-level (silicon) layers don't change -- only the metal wiring connecting pre-placed transistors differently -- a fraction of the cost and turnaround of a full new mask set.
  • This is used specifically post-tapeout, or late enough that touching silicon layers is unacceptable -- not as a general substitute for normal ECO earlier in the flow.
  • place_freeze_silicon places each ECO cell and maps it to the nearest matching spare cell; cells deleted by ECO changes remain in the design as converted spare cells rather than being removed, since removal would mean touching the silicon layer.
  • check_freeze_silicon identifies ECO cells with no matching spare cell; create_freeze_silicon_leq_change_list generates a script mapping to a logically equivalent spare cell (a differently-named single spare cell, or up to two combined) when a direct match doesn't exist.

Formula Or Decision Rule

Normal post-CTS ECO (add_buffer_on_route / size_cell): use when the design has not yet reached mask-committed/tapeout-adjacent status -- no reason to constrain the fix to pre-placed spare cell capacity. Freeze-silicon ECO (place_freeze_silicon / map_freeze_silicon): use when touching silicon (implant/diffusion/poly) layers is unacceptable -- post-tapeout or equivalent late-stage constraint -- and the cost/turnaround of a metal-only respin is the deciding factor.

Command Checks & Actions

ICC2add_buffer_on_route

Inserts a buffer on the existing route topology for a normal post-CTS hold fix.

ICC2size_cell

Resizes an existing cell to a stronger or weaker library variant.

ICC2check_freeze_silicon

Identifies ECO cells with no matching pre-placed spare cell.

ICC2place_freeze_silicon

Places and maps ECO cells onto pre-placed programmable spare cells.

Healthy, Suspicious & Hard-stop Results

  • Expected: check_freeze_silicon reports every needed ECO cell has a matching spare cell (direct or LEQ) before place_freeze_silicon runs.
  • Investigate: check_freeze_silicon reports gaps -- resolve with create_freeze_silicon_leq_change_list before proceeding, rather than forcing a mismatched placement.
  • Stop: a freeze-silicon fix would require an ECO cell type with no matching or LEQ-mappable spare cell anywhere in the design -- that fix cannot be done as metal-only and needs a different approach entirely, not a forced substitution.

Common Mistake

The Trap: Reaching for freeze-silicon ECO as a default "safe" fix method regardless of design stage, when normal add_buffer_on_route/size_cell ECO is faster and has no spare-cell-capacity constraint -- freeze-silicon exists for a specific late-stage cost problem, not as a general best practice.

What The Interviewer Is Testing

Whether you know WHY freeze-silicon ECO exists (metal-only respin cost, post-tapeout constraint) and can distinguish it from normal ECO, rather than treating both as interchangeable "fix a violation" tools.

Practical Example

Tapeout Scenario: A hold violation is found during post-silicon bring-up on a design that has already taped out. A normal add_buffer_on_route fix would require a full new mask set. Instead, check_freeze_silicon confirms a matching spare cell exists near the violating path, and place_freeze_silicon maps the buffer fix onto it -- turning what would be a full respin into a metal-mask-only change.

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.