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 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
report_cell_groupsShows the variant/flipped mapping info defined for siteId_based mode cell groups, confirming whether 2-Variants or N-Variants configuration is actually in effect.
eco_change_legal_referenceChecks 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
Master ASIC Physical Design Planning & Floorplanning
Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.
Continue practising