What's the practical difference between symmetric and user-controlled tap driver configuration in an H-tree?
From PDVerse PnR Interview Handbook, part of the 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.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
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.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising