What's the practical difference between symmetric and user-controlled tap driver configuration in an H-tree?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
cts.multisource.tap_selection defaults to user, meaning tap positions follow what you specify. Setting it to symmetric produces a symmetric tap configuration automatically instead -- useful when you want the tool to enforce structural symmetry across the H-tree rather than trust manually-specified tap boxes to be symmetric themselves.
Technical Explanation
- cts.multisource.tap_selection defaults to user -- tap positions follow whatever you explicitly specify via -tap_boxes or -tap_locations.
- Setting it to symmetric instead produces a symmetric tap configuration automatically, enforced by the tool rather than relying on your manually-specified positions to already be symmetric.
- This matters because H-tree symmetry is exactly what gives it its skew-robustness advantage -- an asymmetric tap layout undermines the reason you chose an H-tree topology in the first place.
- The symmetric tap-selection mode is set with
set_app_options -name cts.multisource.tap_selection -value symmetric-- naming the option (cts.multisource.tap_selection) alone never actually configures it without this wrapping.
Common Mistake
The Trap: Manually specifying tap positions and assuming they're automatically symmetric just because you're building an H-tree -- symmetry has to be either explicitly designed in or explicitly requested via tap_selection = symmetric.
Follow-up Question & Model Response
"If H-tree symmetry is what gives it skew robustness, why would tap_selection default to user instead of symmetric?"
Candidate Model Response: Because forcing symmetry isn't always what's wanted -- a floorplan with genuine physical asymmetry (an off-center macro, an irregular voltage area) may need user-controlled tap positions that don't fit a symmetric pattern, so the tool defaults to respecting explicit user intent rather than imposing symmetry unconditionally.
Practical Example
Debug Scenario: An H-tree built with manually-specified tap_boxes shows unexpected skew across the mesh -- checking the tap positions reveals they were never actually symmetric despite the H-tree topology, and switching cts.multisource.tap_selection to symmetric fixes it.
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