IntermediateQuestion 305 of 142Source PDF page undefined

What are the key options for controlling how add_spare_cells distributes spare logic across a design?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

add_spare_cells takes -cell_name (naming prefix) plus either -lib_cell with -num_instances (same count per cell type) or -num_cells {CELL count ...} (different counts per type). -repetitive_window {w h} repeats a window of spare cells throughout the placement area at that pitch. Distribution control includes -hier_cell, -boundary, -voltage_areas, -random_distribution (ignore cell density), and -density_aware_ratio (default 100% density-based placement).

Technical Reference DiagramWhat are the key options for controlling how add_spare_cells distributes spare logic across a design?
What are the key options for controlling how add_spare_cells distributes spare logic across a design?, illustrating the physical design concept.

Technical Explanation

  • -cell_name sets a naming prefix; either -lib_cell with -num_instances (same count per cell type) or -num_cells {CELL count ...} (different counts per type) specifies how many spare cells of each kind to add.
  • -repetitive_window {w h} repeats a defined window of spare cells throughout the placement area at that pitch -- combinable with either counting method.
  • Distribution control: -hier_cell (distribute within a hierarchical block's bounds), -boundary, -voltage_areas, -ignore_blockage_types (default honors all blockages).
  • -random_distribution ignores cell density entirely for placement; -density_aware_ratio (default 100%) controls what fraction of spare cells are placed based on cell density versus randomly.

Common Mistake

The Trap: Using a uniform -num_instances count across all spare cell types when the design actually needs different quantities of different gate types (AND2 vs OR2 vs NAND2) -- -num_cells gives per-type control that -num_instances doesn't.

Follow-up Question & Model Response

"Why would -density_aware_ratio matter for how effectively spare cells can actually be used in a future ECO?"

Candidate Model Response: Because a future ECO fix needs a spare cell physically near the location that needs fixing -- purely random distribution risks leaving some regions of the design with no nearby spare cells at all, while density-aware placement spreads them more evenly relative to where real logic (and therefore future ECO needs) actually is.

Practical Example

Practical Example: add_spare_cells -cell_name spare -num_cells {NAND2 200 NOR 150} -repetitive_window {20 20} distributes 200 NAND2 and 150 NOR spare cells in a repeating 20x20-micron window pattern across the placement area.

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.