BeginnerQuestion 171 of 187Source: Synopsys ICC2 Implementation User Guide: Inserting Metal Fill With IC Validator In-Design

Why is metal fill required, and what do density rules check?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Chemical mechanical polishing flattens each metal layer, and it removes material unevenly when metal density varies across the die. Density rules check the fraction of each window covered by metal, with a minimum and a maximum, and often a limit on how much density can change between neighbouring windows. Metal fill adds floating shapes in empty areas so every window meets those limits.

Technical Reference DiagramWhy is metal fill required, and what do density rules check?
Plan view of a density window with sparse signal metal and an empty region on one side, and the same window after fill with floating fill shapes added, with a ledger showing metal density before and after against minimum and maximum limits.

Technical Explanation

  • During CMP, sparse areas dish and dense areas erode differently, so the surface ends up uneven. That changes wire thickness, hurts lithography focus for the layers above, and can leave shorts or opens.
  • The ICC2 guide lists the density rules IC Validator can check and fix: minimum density per checking window, density gradient between adjacent windows, and maximum open area, the largest empty square allowed.
  • Minimum density comes from the minDensity attribute in the DensityRule section of the technology file. If it is not defined for a layer, IC Validator uses a default of 10 percent. Gradient is checked only if maxGradientDensity is defined. The guide ties these in-design density checks to density error fixing, enabled with signoff.create_metal_fill.fix_density_errors (ICC2), which defaults to false.
  • signoff_create_metal_fill (ICC2) inserts fill through IC Validator In-Design and needs an IC Validator license. Pattern-based fill, the default, uses the foundry fill runset named in signoff.create_metal_fill.runset (ICC2). Track-based fill with -track_fill (ICC2) uses a runset derived from the technology file instead.
  • Save the block first, because the fill run reads the on-disk data. Fill shapes are stored in fill cells named FILL_INST_#, which you can list with get_fill_cells (ICC2).
  • Maximum density matters too. Very wide or very dense metal can exceed the upper limit; that is fixed with slotting or by spreading wires, not by fill.
  • By default the command removes existing fill from the whole block before inserting new fill, so rerunning it is a full replacement unless you use incremental options.

Formula Or Decision Rule

  • Window density = (metal area inside window) / (window area) × 100%.
  • Pass when min_density ≤ window density ≤ max_density for every window on the layer.
  • Gradient check (if defined): |density(window A) − density(adjacent window B)| ≤ max_gradient.
  • Fill needed in a window ≈ (min_density − current density) × window area, plus margin for spacing keep-outs.
  • Window size, step and limits are foundry values; the numbers used here are illustrative.

What To Check

  • Density violations per layer after fill, from a DRC run with the density rules enabled.
  • Whether any window is over the maximum, which fill cannot fix.
  • That fill avoids routing blockages and keep-out regions as intended.
  • That the block was saved before the fill run.
  • That fill is present in the final stream when the flow expects it there.

Command Checks & Actions

ICC2 (icc2_shell)set_app_options -name signoff.create_metal_fill.runset -value fill_runset.rs

Names the foundry fill runset for pattern-based fill.

ICC2 (icc2_shell)save_block

Saves the block, since the fill run uses on-disk data.

ICC2 (icc2_shell)signoff_create_metal_fill

Inserts metal and via fill through IC Validator In-Design; needs an IC Validator license.

ICC2 (icc2_shell)get_fill_cells -hierarchical

Lists the fill cells created, including those in lower hierarchy.

ICC2 (icc2_shell)signoff_check_drc

Rechecks the filled block, including density rules, on the saved design.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Every window between the minimum and maximum limits on all layers, with no gradient violations.
  • Suspicious (illustrative): A handful of windows just under minimum near large macros where fill is blocked; check whether the foundry allows them.
  • Hard stop: Windows over the maximum density on a wide power-strap layer; fill will not fix that and the grid needs changing.

Common Mistake

The Trap: Assuming that because the block looked dense, fill was not needed on the top routing layers. The block is streamed out without fill on M9 and M10, and the foundry density check at intake reports 3,000 windows under minimum. The team has to add fill, rerun extraction and timing, and resubmit.

What The Interviewer Is Testing

  • Can the candidate explain CMP as the reason, not just "the foundry requires it"?
  • Knowing both minimum and maximum limits, and the gradient check.
  • Whether they know fill is floating metal that adds capacitance.

Follow-up Question & Model Response

"If a window is above maximum density, can metal fill fix it?"

Candidate Model Response: No. Fill only adds metal, so it can raise density but never lower it. Above-maximum windows come from wide straps or tightly packed wide wires. The fix is to split or slot wide shapes as the rules allow, or spread the routing so the metal in that window drops. I would check this before fill so the grid design does not need to change late.

Practical Example

Tapeout Scenario: On M3, a 50 µm × 50 µm density window (2,500 µm²) near a macro has 450 µm² of signal metal, 18% density, against an illustrative minimum of 25% and maximum of 80%. It needs at least 175 µm² more metal. After signoff_create_metal_fill (ICC2), the window has 650 µm² of fill plus the 450 µm² of signal, 1,100 µm² in total, which is 44%. The adjacent window sits at 52%, a gradient of 8 points against an illustrative limit of 30.

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