BeginnerQuestion 157 of 157Source: Synopsys PrimeTime User Guide: ECO Flow, Writing Change Lists; Synopsys ICC2 Implementation User Guide: ECO Flow

What does PrimeTime's `write_changes` produce, and how is it applied in ICC2?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

write_changes (PT) writes every netlist change made during the PrimeTime session as a change list, in a format chosen with -format. For ICC2 the format is icctcl, a Tcl script of netlist edits; ICC2 sources it, then places the changed cells with place_eco_cells -eco_changed_cells (ICC2) and reconnects them with route_eco (ICC2). The file is only a list of edits, so ICC2 still has to make them physically legal.

Technical Reference DiagramWhat does PrimeTime's `write_changes` produce, and how is it applied in ICC2?
Two lanes: PrimeTime runs write_changes -format icctcl (PT) and a pt_eco.tcl file crosses to the ICC2 lane, where source, place_eco_cells -eco_changed_cells (ICC2) and route_eco (ICC2) apply it.

Technical Explanation

  • The change list covers all ECO changes made in the PT session, not only the last command. Writing after setup fixing and again after hold fixing gives two files where the second repeats the first.
  • Formats are ptsh (the default, a PT Tcl script), text, dctcl, icctcl for IC Compiler or IC Compiler II, eco (a binary read back by read_eco_changes (PT)) and aprtcl for third-party tools. Only icctcl is meant for ICC2.
  • In physically aware mode the file carries locations; the PT user guide example shows an insert_buffer line with a -location coordinate pair and an add_buffer_on_route line with its location. Physically aware ECO needs a PrimeTime-ADV license (PT user guide, ECO chapter).
  • In ICC2 you source (ICC2) the file. Each edited cell gets an ECO change status such as create_cell, add_buffer, change_link or size_cell, which is what place_eco_cells -eco_changed_cells (ICC2) picks up.
  • place_eco_cells -eco_changed_cells -legalize_only (ICC2) only legalizes changed cells that already have a location, which suits a physically aware change list; any changed cell that is still unplaced is skipped with warning EPL-021, so search the log for it. For a logic-only change list, run it without -legalize_only so ICC2 places the new cells itself.
  • After placement, insert fillers into the gaps, then run route_eco (ICC2) to reconnect the modified nets. Check legality and routing before extraction.
  • With multiply instantiated module ECO enabled through eco_enable_mim (PT), write_changes (PT) writes a separate change list per module, prefixed with the module name, so check the file list, not only the file you named.

What To Check

  • The format and the number of edits in the file, by type.
  • Errors or warnings while sourcing in ICC2, such as unknown library cells or missing pins.
  • Every ECO cell placed and legal after place_eco_cells (ICC2), with displacement in the expected range.
  • No opens or DRCs after route_eco (ICC2).

Command Checks & Actions

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

Writes all session changes as an IC Compiler II Tcl script.

ICC2 (icc2_shell)source pt_eco.tcl

Applies the netlist edits and sets the ECO change status on each cell.

ICC2 (icc2_shell)place_eco_cells -eco_changed_cells

Places new cells and legalizes changed ones.

ICC2 (icc2_shell)check_legality

Confirms every cell sits on a legal site after ECO placement.

ICC2 (icc2_shell)route_eco

Reconnects the nets touched by the ECO.

ICC2 (icc2_shell)check_routes

Reports opens and routing DRCs after ECO routing.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): The script sources with no errors, every one of the changed cells is placed and legal, maximum displacement stays within a few microns and check_routes (ICC2) reports no opens.
  • Suspicious (illustrative): Sourcing warns about a library cell name that matches in two libraries; set the PT variables that prepend library names and rewrite.
  • Hard stop: Unplaced ECO cells after place_eco_cells (ICC2), or source errors that stop the script halfway. Do not route or extract a half-applied ECO.

Common Mistake

The Trap: Writing one change list after setup fixing and another after hold fixing, then sourcing both in ICC2. write_changes (PT) is cumulative, so the second file repeated every setup edit. The resizes were harmless, but the 38 setup buffers went in a second time under suffixed names, nobody diffed the files, and the re-extracted PT run showed new setup violations on exactly those nets. Source only the last file written in a session.

What The Interviewer Is Testing

  • Knowing the format ICC2 needs, and what the default format is.
  • Can you explain how ICC2 knows which cells to place after sourcing?
  • Understanding that the change list is cumulative for the PT session.

Follow-up Question & Model Response

"When would you use the eco binary format instead of icctcl?"

Candidate Model Response: The eco format is read back into PrimeTime with read_eco_changes (PT), not into ICC2. Replaying a change list in PrimeTime needs a PrimeTime-ADV license (PT UG licensing table). It is useful to replay an ECO in a fresh or restored PT session, for example to check the changes in other scenarios before implementing them. The PT user guide describes this flow: write eco, restore the session, replay, assess, then write icctcl for implementation. It is also how block-level ECOs are combined at the top level.

Practical Example

Tapeout Scenario: After fixing, write_changes -format icctcl -output pt_eco.tcl (PT) writes 57 size_cell edits and 94 inserted buffers, 151 changes in total (illustrative). Sourcing in ICC2 runs without errors, and place_eco_cells -eco_changed_cells (ICC2) places all 151 changed cells, with the largest move 1.8 µm. Fillers are re-inserted, route_eco (ICC2) reconnects 263 nets, and check_routes (ICC2) reports 0 opens and 0 shorts. The block goes to StarRC and a new PT run.

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