IntermediateQuestion 177 of 192Source: Synopsys ICC2 Implementation User Guide X-2025.06-SP2: ECO Flow (Freeze Silicon ECO Flow, Resizing Cells); Synopsys ICC2 Tool Commands: size_cell

How does size_cell behave in freeze-silicon mode?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

With design.eco_freeze_silicon_mode (ICC2) set to true, size_cell (ICC2) first looks for a compatible spare cell within five times the unit site height of the cell being sized, and if none exists it refuses to size. When it finds one, the original cell becomes a spare renamed with a _Spare suffix, and a new cell with the original name, connections and new library cell is placed over the matched spare. -max_distance_to_spare_cell changes the search radius and -not_spare_cell_aware switches the check off.

Technical Reference DiagramHow does size_cell behave in freeze-silicon mode?
A placement view with the target cell at the centre and a dashed search radius of five unit site heights around it, one compatible spare inside the radius that the resized cell overlaps and another spare outside it that is ignored.

Technical Explanation

  • Freeze silicon keeps the base layers and changes only metal and vias, so a resized cell must land on a spare that already exists in silicon.
  • The default radius is five unit site heights. If no valid spare lies within it, the command reports an error and leaves the cell unchanged.
  • On success the new cell overlaps the matched spare, both carry an fs_mapped_cell_name attribute recording the mapping, and the new cell has is_fs_eco_add set to true.
  • -max_distance_to_spare_cell sets a different radius and cannot be combined with -not_spare_cell_aware. A bigger radius finds more spares, but the reconnection wire gets longer and its delay can eat the gain from the stronger cell.
  • -not_spare_cell_aware sizes without the check, which leaves mapping to place_freeze_silicon (ICC2) or map_freeze_silicon (ICC2) later; check_freeze_silicon (ICC2) shows whether that mapping is possible.
  • The new library cell must be functionally compatible, have the same pin count and directions, and differ from the current one. To undo a sizing, revert_eco_changes (ICC2) restores the original reference, location and orientation; revert_cell_sizing (ICC2) is only for sizings that cause cell spacing rule violations.
  • size_cell (PT) exists too but has no spare awareness. A PT freeze-silicon ECO comes from fix_eco_timing -physical_mode freeze_silicon (PT), needing a PrimeTime-ADV license, and ICC2 sources the list with freeze-silicon mode on.

What To Check

  • Compatible spares near each target, using check_freeze_silicon (ICC2).
  • Error messages from sizings that were refused.
  • Distance to the mapped spare and the new wire length.
  • The mapping attributes on each ECO cell and spare.

Command Checks & Actions

ICC2 (icc2_shell)set_app_options -name design.eco_freeze_silicon_mode -value true

Enables freeze-silicon behaviour for netlist edits.

ICC2 (icc2_shell)size_cell U21 -lib_cell AND2X4

Sizes only if a compatible spare lies within five site heights.

ICC2 (icc2_shell)size_cell U21 -lib_cell AND2X4 -max_distance_to_spare_cell 6.0

Widens the spare search radius to 6 um.

ICC2 (icc2_shell)size_cell U21 -lib_cell AND2X4 -not_spare_cell_aware

Skips the spare check and leaves mapping for later.

ICC2 (icc2_shell)check_freeze_silicon

Analyzes how ECO cells map to spare cells.

ICC2 (icc2_shell)route_eco

Reconnects the mapped cells with metal-only routing.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Every sizing maps to a spare inside the default radius and check_freeze_silicon (ICC2) shows no unmapped ECO cells.
  • Suspicious (illustrative): Many sizings need a radius above 20 site heights, so spare density there is too low and the extra wire will cost timing.
  • Hard stop: A sizing made with -not_spare_cell_aware that place_freeze_silicon (ICC2) cannot map. It cannot be built without new base layers.

Common Mistake

The Trap: Sourcing a PT change list full of size_cell commands in ICC2 without turning freeze-silicon mode on. ICC2 sizes the cells in place like a normal ECO, the base layers change, and the metal-only respin quietly needs a full mask set.

What The Interviewer Is Testing

  • The five-site-height default and the refuse-if-none behaviour.
  • Whether you know the rename and overlap mechanics.
  • Separating ICC2 size_cell (ICC2) from size_cell (PT).

Follow-up Question & Model Response

"Why does ICC2 refuse to size rather than size now and map later?"

Candidate Model Response: In freeze-silicon mode a sizing is only buildable if a matching spare exists nearby. Refusing at the size_cell call catches an impossible change at once, instead of after the whole ECO is applied and mapping fails. It also keeps the new cell close to the original, so the reconnection routes stay short. If you want to defer mapping on purpose, -not_spare_cell_aware switches the check off.

Practical Example

Tapeout Scenario: Site height is 0.6 um, so the default radius is 3.0 um (illustrative). The PT change list has 14 size_cell commands. With freeze-silicon mode on, 11 find a compatible spare within 3.0 um and map at once. Two find one within 6 um, and rerunning them with -max_distance_to_spare_cell 6.0 maps them with 7 ps of extra wire delay, well inside the 20 ps the stronger cells gained. The last has no compatible spare within 30 um, so that path gets a different fix: a buffer on route mapped to a programmable spare cell.

PnR Flow Mentor Guide

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.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →