IntermediateQuestion 213 of 222Source: Synopsys ICC2 Implementation User Guide X-2025.06-SP2: Performing Real Metal Fill Extraction; Synopsys ICC2 Timing Analysis User Guide X-2025.06-SP2: Performing Parasitic Extraction

Why extract parasitics with real metal fill before final STA?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Metal fill sits beside and above your signal wires, so it adds capacitance that routing-stage extraction did not see. Before fill you estimate that effect with emulation TLUPlus or virtual metal fill; after fill, the real shapes are what will be on silicon. Final timing should use extraction that includes them, which in ICC2 means non-emulation TLUPlus plus set_extraction_options -real_metalfill_extraction floating (ICC2).

Technical Reference DiagramWhy extract parasitics with real metal fill before final STA?
A cross-section of three M3 signal wires with floating metal fill shapes beside them and on the layers above and below, showing the extra capacitance paths the fill adds, next to the same wires extracted with no fill.

Technical Explanation

  • Fill shapes are floating or grounded metal placed to meet density rules. Each one near a signal wire adds capacitance to it, which raises wire delay and changes coupling. The effect is largest on long nets on layers with dense fill.
  • ICC2 reads two kinds of TLUPlus files. Emulation TLUPlus is meant for use before fill insertion; non-emulation TLUPlus can be used before and after, with fill accounted for through virtual metal fill before insertion or real metal fill after.
  • -real_metalfill_extraction (ICC2) takes none, floating, grounded or auto. The default is none, which ignores fill capacitance; auto detects the fill type and applies it.
  • The guide gives two steps. Associate non-emulation TLUPlus files with each timing corner through set_parasitic_parameters (ICC2), then set set_extraction_options -real_metalfill_extraction floating (ICC2). Each corner takes one early and one late model, and you may switch them after fill.
  • Before fill, -virtual_metalfill_extraction (ICC2) with a VMF parameter file estimates fill without inserting it, and the guide's VMF examples set real fill extraction to none at the same time. Once real fill exists, switch to real fill extraction and stop relying on the estimate.
  • Floating and grounded fill behave differently. Grounded fill adds capacitance to ground, while floating fill couples neighbouring conductors to each other through the fill. Use the model that matches how the foundry's fill is built, or auto.
  • Signoff timing runs in PrimeTime on StarRC SPEF, and the StarRC command file has a matching metal fill polygon setting. The ICC2 setting keeps route_opt and ECO timing close to what PrimeTime will report, so the final run holds no surprise.

What To Check

  • report_extraction_options (ICC2) shows the intended real fill setting.
  • report_parasitic_parameters (ICC2) shows non-emulation TLUPlus on every corner after fill.
  • Setup and hold change on the top critical paths between pre-fill and post-fill extraction.
  • The signoff SPEF was extracted from the filled layout with fill handling enabled.
  • Timing-driven fill kept fill away from the nets you marked critical, if you used it.

Command Checks & Actions

ICC2 (icc2_shell)set_parasitic_parameters -early_spec nonemul_cmax -late_spec nonemul_cmax -corners {ss_125c}

Associates non-emulation TLUPlus models with a corner after fill (model and corner names illustrative).

ICC2 (icc2_shell)set_extraction_options -real_metalfill_extraction floating

Includes the capacitance of inserted fill, modelled as floating, in extraction.

ICC2 (icc2_shell)report_extraction_options

Confirms the fill extraction setting.

ICC2 (icc2_shell)report_parasitic_parameters

Confirms which TLUPlus models each corner uses.

ICC2 (icc2_shell)report_timing -delay_type max -max_paths 20

Compares the worst setup paths before and after real-fill extraction.

PrimeTime (pt_shell)report_annotated_parasitics -check

In PrimeTime, confirms the post-fill SPEF annotated every net.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Post-fill WNS moves by a few ps, for example +9 ps to +3 ps after timing-driven refill, and no endpoint turns negative.
  • Suspicious (illustrative): A loss of 10 ps or more concentrated on long buses with dense fill, enough to turn endpoints negative, which calls for timing-driven fill or rerouting before signoff.
  • Hard stop: Final STA run on a SPEF extracted without fill, or -real_metalfill_extraction (ICC2) still at its default of none after fill.

Common Mistake

The Trap: Signing off on the post-route SPEF from before fill because fill only adds a little capacitance. A long bus on M5 with dense fill on both sides picks up several percent more capacitance, a path with +10 ps of slack drops to -6 ps with real fill, and nobody sees it until silicon shows a speed path at that corner.

What The Interviewer Is Testing

  • Understanding that fill adds capacitance and why emulation estimates must give way to real fill.
  • Knowing the default for -real_metalfill_extraction (ICC2) is none.
  • Linking this to signoff: the SPEF used in PrimeTime must come from the filled layout.

Follow-up Question & Model Response

"When would you use virtual metal fill instead?"

Candidate Model Response: Before fill exists, through route_opt and early ECOs, when you want timing to anticipate fill without inserting real fill on every iteration. set_extraction_options -virtual_metalfill_extraction floating -virtual_metalfill_parameter_file vmf.param (ICC2) models fill from a parameter file. It is an estimate, so once fill is inserted I switch to real fill extraction for the final numbers. The guide's VMF examples set -real_metalfill_extraction none (ICC2) at the same time.

Practical Example

Tapeout Scenario: A 7 nm block closes route_opt at WNS +9 ps with emulation TLUPlus (illustrative). After signoff fill, extraction with non-emulation TLUPlus and -real_metalfill_extraction floating (ICC2) shows total capacitance up 4% on M3 to M5 nets and WNS at -5 ps on 12 endpoints, all on 600 um buses with dense fill on both sides. Timing-driven refill with -timing_preserve_setup_slack_threshold (ICC2) keeps fill away from those nets, WNS returns to +3 ps, and PrimeTime on the filled StarRC SPEF agrees within 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.

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