IntermediateQuestion 176 of 192Source: Synopsys PrimeTime User Guide U-2022.12-SP2: ECO Flow (Incremental ECO Flow Using Synopsys Tools, Writing Change Lists)

How does the incremental ECO flow avoid a full extraction on every iteration?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

ICC2 records only what the ECO changed, StarRC extracts only those changes, and PrimeTime applies them to a saved session instead of reloading the design. record_signoff_eco_changes (ICC2) tracks the edits, StarRC runs in ECO mode, and PrimeTime reads them with read_eco_changes (PT) and read_parasitics -eco (PT) before an incremental timing update. Final signoff still needs a full extraction and a full timing run.

Technical Reference DiagramHow does the incremental ECO flow avoid a full extraction on every iteration?
Three lanes for ICC2, StarRC and PrimeTime: ICC2 records changes between start and stop, StarRC extracts only changed nets in ECO mode, and PrimeTime restores a session, reads incremental changes and parasitics and updates incrementally, with a final full extraction for signoff.

Technical Explanation

  • A full loop writes the whole netlist, extracts every net and reloads PrimeTime from scratch, which takes hours on a large block. The incremental flow repeats only the changed part.
  • Initialize once: in ICC2 copy the block and run record_signoff_eco_changes -init -def (ICC2), which saves the design and writes Verilog and DEF. StarRC extracts it with ECO_MODE: YES, and PrimeTime does a full update and saves a session.
  • Each loop in ICC2 copies the block, starts recording with record_signoff_eco_changes -start -input pt-eco_inc1.tcl (ICC2), implements with minimum physical impact, and stops with -stop -def. That writes an incremental database for StarRC and an incremental change list for PT.
  • StarRC then extracts only the changes and writes an incremental parasitic file.
  • PrimeTime restores the session, reads the change list with read_eco_changes (PT) and the parasitics with read_parasitics -eco (PT), and update_timing (PT) runs incrementally by default.
  • read_eco_changes (PT) is PrimeTime only. It also replays a write_changes -format eco (PT) binary between PT sessions, which needs a PrimeTime-ADV license; ICC2 has no such command.
  • Hierarchical designs read each block's change list and parasitics, and hierarchy is applied automatically. With DMSA, scenarios are created from saved images and the reads run in remote_execute (PT).
  • Anything edited outside the start and stop window is not in the incremental data. The PT UG requires a final full extraction and full timing run for signoff, and that run is what catches such an edit.

What To Check

  • ICC2 wrote the incremental change list and DEF at stop.
  • StarRC ran in ECO mode on the right block.
  • No unannotated nets after the incremental read.
  • Timing change against what the ECO was expected to fix.

Command Checks & Actions

ICC2 (icc2_shell)record_signoff_eco_changes -init -def

Saves the baseline and writes Verilog and DEF for the flow.

ICC2 (icc2_shell)record_signoff_eco_changes -start -input pt-eco_inc1.tcl

Starts tracking and applies the PT change list.

ICC2 (icc2_shell)place_eco_cells -legalize_mode minimum_physical_impact -eco_changed_cells -legalize_only -displacement_threshold 10

Legalizes the changed cells at their PrimeTime locations with minimal disturbance, as in the ICC2 UG incremental signoff flow.

ICC2 (icc2_shell)route_eco

Routes the changed nets.

ICC2 (icc2_shell)record_signoff_eco_changes -stop -def

Stops tracking and writes the incremental data.

PrimeTime (pt_shell)restore_session eco_session1

Restores the saved PrimeTime session.

PrimeTime (pt_shell)read_eco_changes ndm_path/design.incr.pt

Applies the incremental netlist changes.

PrimeTime (pt_shell)read_parasitics -eco Block_eco1_inc.gpd

Applies the incremental parasitics.

PrimeTime (pt_shell)report_annotated_parasitics

Confirms every net is annotated after the incremental read.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Each loop takes about 45 minutes instead of 5 hours, and the final full run matches the last incremental session within a few picoseconds.
  • Suspicious (illustrative): Unannotated nets on ECO cells after the incremental read, so the incremental parasitics did not cover them.
  • Hard stop: Signing off on an incremental session without the final full extraction and timing run.

Common Mistake

The Trap: Fixing a short by hand in ICC2 after record_signoff_eco_changes -stop (ICC2). The edit is not in the incremental change list or the incremental extraction, so PrimeTime times a design that differs from the layout until the final full extraction finds it, usually in the week of tapeout.

What The Interviewer Is Testing

  • The three-tool loop and what each tool writes.
  • Is read_eco_changes (PT) correctly placed in PrimeTime?
  • Knowing full signoff is still required.

Follow-up Question & Model Response

"Why keep a full extraction for final signoff if the incremental flow is accurate?"

Candidate Model Response: The incremental flow is only as good as its change tracking. Any edit outside the recorded window, or any drift between the saved sessions and the real layout after many loops, can slip through. The PT UG states that final signoff needs a full extraction and full timing analysis. That run is the independent check that the last incremental answer was right.

Practical Example

Tapeout Scenario: A block needs four ECO loops (illustrative). A full loop of extraction plus a fresh PT load and update takes 5 hours 20 minutes. With the incremental flow, loop 1 changes 380 cells, StarRC extracts the changes in 25 minutes and the PT incremental update takes 12 minutes, so the loop takes about 45 minutes with ICC2 time. Four loops take 3 hours instead of about 21. The final full extraction and timing run reports setup WNS +3 ps against +4 ps in the last incremental session.

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