BeginnerQuestion 147 of 157Source: Synopsys PrimeTime User Guide: ECO Flow; Synopsys ICC2 Implementation User Guide: Signoff ECO Flow

What is the PrimeTime ↔ ICC2 ECO loop?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

The ECO loop splits the job between the tool that signs off timing and the tool that owns the layout. PrimeTime finds and fixes violations with signoff parasitics and writes the edits with write_changes (PT); ICC2 sources that script, places the new or resized cells and reroutes the touched nets. After fresh extraction PrimeTime re-times the design, and the loop repeats until nothing is left to fix.

Technical Reference DiagramWhat is the PrimeTime ↔ ICC2 ECO loop?
Two swim lanes, PrimeTime and ICC2: fix_eco_timing (PT) produces a write_changes (PT) file that crosses to source, place_eco_cells (ICC2) and route_eco (ICC2), and a StarRC parasitics arrow returns to PrimeTime for re-timing.

Technical Explanation

  • Before fixing, the block should be fully placed and routed with clock trees built, and PrimeTime should have the netlist, the signoff parasitics and the constraints for every scenario that matters.
  • fix_eco_timing -type setup (PT) uses cell sizing only by default and works on data paths only. Hold fixing with -type hold uses sizing and buffer insertion. Setup fixing honors DRC and may change hold, while hold fixing honors setup slack and DRC.
  • Order matters. The PT user guide recommends power recovery first, then DRC and noise with fix_eco_drc (PT), then timing, then a final leakage recovery by Vt swap that does not touch the layout.
  • In physically aware mode PT also reads placement data, places new or resized cells (open_site mode uses free sites only), and records their locations in the change list. This mode needs a PrimeTime-ADV license (PT UG licensing table).
  • write_changes -format icctcl (PT) writes a Tcl script of netlist edits for IC Compiler II. In ICC2 you source (ICC2) it, run place_eco_cells -eco_changed_cells (ICC2) on every cell whose ECO status is set, insert fillers, and then run route_eco (ICC2).
  • Extraction then produces new parasitics, and PrimeTime reloads them and re-times. Only now do you know whether the ECO worked, because ICC2 may have moved cells and real routes replaced PT's estimates.
  • Each pass should shrink the violation count. If it stalls or oscillates, stop and find out why, such as no free space, conflicting scenarios or a constraint problem, instead of running more passes.

What To Check

  • Violation counts per type and scenario before the ECO, from report_constraint -all_violators (PT) and report_timing (PT).
  • The size of the change list and how many cells are new rather than resized.
  • The ICC2 placement result: every changed cell placed and legal, and how far cells moved.
  • Opens and DRCs after route_eco (ICC2).
  • The same PT reports after re-extraction, compared with what PT predicted before writing the changes.

Command Checks & Actions

PrimeTime (pt_shell)report_constraint -all_violators

Baseline count of setup, hold and DRC violators before fixing.

PrimeTime (pt_shell)fix_eco_timing -type setup

Fixes setup violations, by sizing only unless told otherwise.

PrimeTime (pt_shell)fix_eco_timing -type hold

Fixes hold violations with sizing and buffer insertion while protecting setup.

PrimeTime (pt_shell)write_changes -format icctcl -output pt_eco.tcl

Writes all changes made in this session as an ICC2 Tcl script.

ICC2 (icc2_shell)source pt_eco.tcl

Applies the netlist edits in ICC2.

ICC2 (icc2_shell)place_eco_cells -eco_changed_cells

Places new cells and legalizes resized ones.

ICC2 (icc2_shell)route_eco

Reconnects the nets touched by the ECO.

ICC2 (icc2_shell)check_routes

Confirms no opens or routing DRCs remain after ECO routing.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Violations fall every pass, for example 146 → 14 → 0 setup endpoints, with no new hold or DRC violations and every ECO cell placed and legal.
  • Suspicious (illustrative): PT predicts WNS +3 ps after fixing but the re-extracted run shows −8 ps, which usually means cells moved further than expected or routes detoured around congestion.
  • Hard stop: Violation counts do not fall after two passes, or ICC2 leaves ECO cells unplaced for lack of free sites. Stop and change the approach.

Common Mistake

The Trap: Fixing setup in one PT session and hold in another, then writing two change files. The hold session never saw the setup edits, so three of its buffers landed on paths the setup ECO had just resized, and the next re-time showed setup violations on paths that had been clean. One session, fixed in order, writes one change list that covers both.

What The Interviewer Is Testing

  • Knowing which tool does which part, and which file passes between them.
  • Can you name the recommended fixing order, and explain why hold fixing comes after setup?
  • Strong answers treat extraction plus a PT re-time as the only real proof that an ECO worked.

Follow-up Question & Model Response

"Why doesn't PrimeTime's own post-fix timing count as the answer?"

Candidate Model Response: PT estimates the effect of each change with the parasitics it has, and in logic-only mode it does not know where ICC2 will put a new buffer. ICC2 then places and legalizes cells, possibly moving them, and routes real wires that differ from the estimate. Only fresh extraction of the implemented layout and a new PT run show the real slack. Physically aware mode narrows the gap but does not remove it, so the re-time is still required.

Practical Example

Tapeout Scenario: Pass 1 (illustrative): PrimeTime shows 146 setup endpoints at WNS −37 ps and 310 hold endpoints at worst −21 ps. After fix_eco_timing (PT) for setup and then hold, PT predicts 9 setup and 0 hold violations, and write_changes (PT) writes 64 resized cells and 188 new buffers. ICC2 places all 252 changed cells with at most 2.4 µm displacement, and route_eco (ICC2) reconnects 431 nets with no opens. The re-extracted PT run shows 14 setup endpoints at WNS −6 ps and 2 hold endpoints at −3 ps. Pass 2 resizes 11 cells and adds 2 buffers, and the third PT run is clean.

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. →