IntermediateQuestion 192 of 192Source: Synopsys ICC2 Implementation User Guide: ECO Flow, Fixing Multivoltage Violations

What breaks when an ECO adds cells across voltage areas, and how is it repaired?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

An ECO buffer on a net that crosses domains can land in a voltage area whose power domain does not match, get the wrong supply, sit on the wrong side of an isolation cell, or use a single-rail cell where a dual-rail cell is needed. Repair it with fix_mv_design -buffer (ICC2) for buffer trees and fix_mv_design -diode (ICC2) for diodes, and connect the supplies of new ECO cells with eco_update_supply_net (ICC2). Then check again, since the fixes are not guaranteed placement or timing legal.

Technical Reference DiagramWhat breaks when an ECO adds cells across voltage areas, and how is it repaired?
Two voltage areas with an ECO buffer placed in the wrong one and tied to the wrong supply in red, then corrected by fix_mv_design swapping it to the right cell and eco_update_supply_net connecting its supply.

Technical Explanation

  • What breaks: an ECO buffer's power domain may not match the voltage area it sits in, it may be a single-rail cell where the net needs a dual-rail one, it can create an isolation violation in a buffer tree, or its supply pins may never be connected.
  • eco_update_supply_net (ICC2) connects supply nets for cells added by size_cell (ICC2) in freeze-silicon mode, add_buffer (ICC2), add_eco_repeater (ICC2), split_fanout (ICC2) and add_buffer_on_route (ICC2). -cells restricts it to the named cells and the ECO buffer trees they belong to.
  • fix_mv_design -buffer (ICC2) fixes isolation violations and illegal library cells in buffer trees. It can swap single-rail and dual-rail cells, change backup supplies, change level-shifter input or output supplies (only with -level_shifter, since buffer trees stop at level shifters by default), and fix a domain and voltage area mismatch with a physical or logical feedthrough.
  • fix_mv_design -diode (ICC2) fixes power domain and voltage area mismatches for diodes by assigning a matching power domain. Only -report_only and -verbose go with it.
  • Limits: fix_mv_design (ICC2) does not insert isolation or level-shifter cells, and its changes do not create new isolation or voltage violations. It commits the UPF first if needed, keeps original placement unless -move_within_x or -move_within_y is given, and uses only supplies available in the voltage area. When it swaps a library cell it removes that cell's PG connections, so reconnect them with connect_pg_net (ICC2).
  • Its changes are not guaranteed placement or timing legal, so check legality and timing after it. -report_only shows proposed changes without making them.
  • Prevent it at the source: give PrimeTime the voltage areas through physical data so fixes land in the right area, and keep buffer lists to cells legal in each domain.

What To Check

  • check_mv_design (ICC2) after the ECO is applied.
  • Supply pin connections on every new ECO cell.
  • Domain against voltage area for every ECO buffer and diode.
  • Legality and timing after fix_mv_design (ICC2).

Command Checks & Actions

ICC2 (icc2_shell)check_mv_design

Reports multivoltage violations after the ECO.

ICC2 (icc2_shell)fix_mv_design -buffer -report_only

Lists buffer tree fixes without changing the netlist.

ICC2 (icc2_shell)fix_mv_design -buffer

Fixes isolation violations and illegal cells in buffer trees.

ICC2 (icc2_shell)fix_mv_design -diode

Fixes domain and voltage area mismatches on diodes.

ICC2 (icc2_shell)eco_update_supply_net -cells [get_cells eco_cell*]

Connects supply nets for the listed ECO cells.

ICC2 (icc2_shell)check_legality

Confirms placement is still legal after the fixes.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): check_mv_design (ICC2) clean after the ECO, with every new cell's supply pins connected.
  • Suspicious (illustrative): A few ECO buffers flagged for domain mismatch, all fixable by a cell swap.
  • Hard stop: Isolation violations the command cannot fix, because it does not insert isolation cells; the netlist or UPF must change.

Common Mistake

The Trap: Applying a PrimeTime change list, routing it, and moving on without eco_update_supply_net (ICC2) or check_mv_design (ICC2). New buffers inside a switched domain have unconnected supplies, and LVS catches it days later. Every ECO cell must then be revisited, and routing redone around the supply fixes.

What The Interviewer Is Testing

  • Can name the multivoltage failures an ECO buffer causes.
  • Knows what the -buffer and -diode modes of fix_mv_design (ICC2) fix and what the command will not do.
  • Checks placement and timing after the repair.

Follow-up Question & Model Response

"Why can fix_mv_design fix a mismatch with a feedthrough instead of moving the cell?"

Candidate Model Response: By default the command keeps the original placement of buffers and inverters. A physical or logical feedthrough lets the buffer belong to a power domain that matches the voltage area it sits in, which fixes the mismatch without disturbing placement. Moving is possible only if you ask for it with -move_within_x or -move_within_y, which shift a buffer into a nearby voltage area so it can stay single-rail, and the target voltage area must allow feedthroughs. If the result is still wrong for timing, re-plan the ECO and run the check again.

Practical Example

Tapeout Scenario: A PrimeTime hold ECO adds 22 buffers, 5 of them on nets crossing from an always-on domain into a switchable voltage area (illustrative). check_mv_design (ICC2) flags the 5 as domain and voltage area mismatches, and 2 as single-rail cells needing dual-rail. fix_mv_design -buffer (ICC2) swaps 2 cells to dual-rail and fixes the other 3 with feedthroughs, and eco_update_supply_net (ICC2) connects all 22. check_legality (ICC2) is clean, and hold slack on the 5 paths changes by under 2 ps.

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.

Low-Power VLSI & UPF Handbook — nine chaptersLow-Power & UPFDomains, isolation, retention, and multivoltage UPF. →