BeginnerQuestion 169 of 187Source: Synopsys ICC2 Implementation User Guide: Chip Finishing and Design for Manufacturing (Inserting Filler Cells)

Why are filler cells inserted, and what must be true first?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Filler cells fill the empty sites in standard-cell rows so that power rails, wells and implant layers run continuously and density rules on the base layers are met. The placement must be legal first: the guide says to confirm this with check_legality (ICC2) before insertion. After insertion, fillers must be connected to the power and ground nets with connect_pg_net -automatic (ICC2).

Technical Reference DiagramWhy are filler cells inserted, and what must be true first?
Plan view of a standard-cell row with gaps between placed cells and broken rail and well shapes, then the same row after filler insertion with continuous VDD and VSS rails and a continuous N-well, labelled with check_legality (ICC2) before and connect_pg_net (ICC2) after.

Technical Explanation

  • Placement leaves gaps between cells. Where there is no cell, there is no rail, well or implant shape, so the N-well and implant layers break and the rows fail base-layer DRC such as minimum well width, spacing and implant rules.
  • A filler cell is a physical-only cell with no logic. It carries rail, well and implant geometry so the row looks continuous. Some fillers also contain metal, as many decap fillers do; the guide inserts these metal fillers before nonmetal fillers.
  • check_legality (ICC2) comes first. Filler insertion uses the placement legalizer, and illegal cells leave gaps that no filler can fill or cause overlap. The guide notes that check_legality (ICC2) assumes any cell with design_type filler can be used, while create_stdcell_fillers (ICC2) inserts only the cells in -lib_cells (ICC2), so gaps can remain even after a clean legality check.
  • create_stdcell_fillers -lib_cells $FILLER_CELLS (ICC2) tries the cells in the order given and inserts the first one that fits each gap. For the best results list them largest to smallest; the guide shows sorting them by area with sort_collection -descending (ICC2).
  • connect_pg_net -automatic (ICC2) connects the new filler PG pins to the supply nets; the guide runs it after each filler insertion step. Skipping it leaves those pins with no net in the design database. For a plain filler with no devices the drawn rails still abut the row rails, so the geometry is unchanged, but connectivity checks and rail analysis read the database and can report the fillers as unconnected. Decap fillers do contain devices, so any netlist written with their supply pins open no longer matches the layout.
  • remove_stdcell_fillers_with_violation (ICC2) checks the metal fillers and removes those with DRC violations. Removing some can expose new violations, so the guide says it may need more than one run.
  • Fillers go in late, after the last placement and timing change, because every later ECO must first remove fillers to make room.

What To Check

  • check_legality (ICC2) is clean before insertion.
  • The filler list is ordered largest to smallest and includes a 1-site filler so no gap is left.
  • No unfilled sites remain in the rows after insertion.
  • Every filler PG pin is connected after connect_pg_net -automatic (ICC2).
  • Base-layer DRC such as well and implant rules is clean on the filled rows.

Command Checks & Actions

ICC2 (icc2_shell)check_legality

Confirms the placement is legal before filler insertion.

ICC2 (icc2_shell)create_stdcell_fillers -lib_cells $FILLER_CELLS

Inserts fillers from an ordered list, trying the largest first in each gap.

ICC2 (icc2_shell)connect_pg_net -automatic

Connects the inserted fillers to the power and ground nets.

ICC2 (icc2_shell)remove_stdcell_fillers_with_violation

Checks metal fillers for DRC violations and removes the violating ones; may need repeating.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Legality clean, every site filled, all filler PG pins connected and base-layer DRC clean.
  • Suspicious (illustrative): A few 1-site gaps remain next to a cell with special abutment needs; handle them with required fillers or a local adjustment.
  • Hard stop: Hundreds of unfilled sites, or filler PG pins left with no net because connect_pg_net -automatic (ICC2) was skipped.

Common Mistake

The Trap: Passing the filler list smallest first. The command fits a 1-site filler into every gap from the left, so a 16-site gap gets sixteen 1-site fillers. The instance count jumps by a million, the database grows, and runtime for every later DRC and stream-out rises with it.

What The Interviewer Is Testing

  • Knowing why fillers exist beyond "filling space".
  • The ordering rule for the filler list and the legality prerequisite.
  • Remembering the PG connection step after insertion.

Follow-up Question & Model Response

"Why can gaps remain after insertion even though check_legality was clean?"

Candidate Model Response: The guide explains the mismatch: check_legality (ICC2) treats every library cell with a design_type of filler as available when judging whether the block is fillable. create_stdcell_fillers (ICC2) only uses the cells you list in -lib_cells (ICC2). If the list lacks the smallest filler, or a width needed next to a particular cell, some gaps cannot be filled. Adding the missing sizes to the list usually fixes it.

Practical Example

Tapeout Scenario: A block has 1.4 million placed cells and 18% of row sites empty after the final ECO (illustrative). check_legality (ICC2) reports zero violations. Insertion with fillers of 16, 8, 4, 2 and 1 sites, in that order, adds 410,000 cells and leaves 0 empty sites. connect_pg_net -automatic (ICC2) connects them. One pass of remove_stdcell_fillers_with_violation (ICC2) removes 38 metal fillers near macro edges; a second pass removes 3 more, and nonmetal fillers fill those gaps.

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