ExpertQuestion 320 of 111Source PDF page undefined

What's the actual difference between track_pattern mode and siteId_based mode for variant cell swapping, and what does 2-Variants vs N-Variants mean within siteId_based mode?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Variant cells differ only in mask color (or small geometry) from a master variant, with identical timing data. In track_pattern mode, the variant type id is derived from the library cell's first track offset plus pitch value, starting from 0 (e.g. type 0 = master/mask_one at 1/2 site width, type 1 = mask_two at 1/6 site width). In siteId_based mode, mapping info is defined explicitly in the cell group -- with two sub-flows: 2-Variants (traditional, max 2 master/variant per group, only a mapping id is set, flipped id derived from mapping id plus cell width) and N-Variants (both mapping id and flipped mapping id are set explicitly, supporting more than 2 variants per group).

Technical Reference DiagramWhat's the actual difference between track_pattern mode and siteId_based mode for variant cell swapping, and what does 2-Variants vs N-Variants mean within siteId_based mode?
What's the actual difference between track_pattern mode and siteId_based mode for variant cell swapping, and what does 2-Variants vs N-Variants mean within siteId_based mode?, illustrating the physical design concept.

Technical Explanation

  • Variant cells differ from a master cell only in mask color (or small geometry), with IDENTICAL timing data -- swapping between them is purely a manufacturing/DRC consideration, never a timing consideration.
  • track_pattern mode derives the variant type id from the library cell's first track offset plus pitch value, starting at 0 -- e.g. type 0 = master (mask_one, 1/2 site width), type 1 = mask_two at 1/6 site width, and so on, purely computed from track geometry.
  • siteId_based mode instead defines mapping info explicitly in the cell group (viewable via report_cell_groups), rather than deriving it from track geometry.
  • Within siteId_based mode, 2-Variants is the traditional sub-flow: max 2 master/variant per group, only a mapping id is set, and the flipped id is DERIVED from the mapping id plus cell width.
  • N-Variants supports more than 2 variants per group by setting BOTH mapping id and flipped mapping id explicitly -- more flexible, but requires more explicit setup than the 2-Variants shortcut.

What To Check

  • Warning sign: a variant cell swap during legalization produces an unexpected result for a design using more than 2 variants per cell group.
  • Inspect: confirm whether siteId_based mode's N-Variants sub-flow was actually configured (both mapping id and flipped mapping id explicitly set), or whether the simpler 2-Variants assumption was mistakenly applied to a >2-variant group.
  • Correct: for genuinely >2-variant groups, ensure N-Variants configuration (both ids explicit) rather than relying on 2-Variants' automatic derivation, which only correctly handles the 2-variant case.

Command Checks & Actions

ICC2report_cell_groups

Shows the variant/flipped mapping info defined for siteId_based mode cell groups, confirming whether 2-Variants or N-Variants configuration is actually in effect.

ICC2eco_change_legal_reference

Checks whether a placed cell's current reference is legal for its location, and swaps to a legal reference from the variant cell group if not.

Healthy, Suspicious & Hard-stop Results

  • Expected: cell groups with more than 2 variants use N-Variants configuration (both mapping id and flipped mapping id explicit), and report_cell_groups confirms the intended mapping.
  • Investigate: a variant swap in a >2-variant group behaves unexpectedly -- check whether 2-Variants' automatic id derivation was mistakenly relied on instead of explicit N-Variants configuration.
  • Stop: a cell group known to have more than 2 variants is configured only with a mapping id (2-Variants style) and no explicit flipped mapping id -- that configuration doesn't correctly support the N-variant case.

Common Mistake

The Trap: Assuming track_pattern mode and siteId_based mode are interchangeable ways to achieve the same result -- they use fundamentally different mechanisms (computed from track geometry vs explicitly defined in the cell group), and siteId_based mode specifically enables the N-Variants case that track_pattern mode's simple geometric derivation doesn't support.

What The Interviewer Is Testing

Whether you know the real mechanism difference between track_pattern and siteId_based modes, and specifically why N-Variants needs more explicit setup than the 2-Variants shortcut.

Practical Example

Debug Scenario: A cell group with 4 mask-color variants shows incorrect swap behavior during legalization. Checking via report_cell_groups reveals only a single mapping id was set (the 2-Variants pattern), when this group's real 4-variant structure required the N-Variants sub-flow with both mapping id and flipped mapping id explicitly configured.

Physical Design & Planning Handbook

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