What real problem does topological_ndr solve, and what's the actual sort order it enforces?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
Without the level-based rule, post-CTS NDR application at different tree levels can be discontinuous -- an internal net at one level might get a heavier NDR than the root net feeding it, which is physically backwards. With cts.compile.topological_ndr enabled, NDRs are topologically sorted: Root NDR > Internal NDR > Sink NDR, ensuring the NDR weight actually decreases as you move from source toward leaves, matching real current/EM demand.
Technical Explanation
- Without the level-based rule, post-CTS NDR application at different tree levels can be discontinuous -- an internal net could end up with a heavier NDR than the root net feeding it, which is physically backwards for current/EM demand.
- cts.compile.topological_ndr, when enabled, sorts NDRs topologically: Root NDR > Internal NDR > Sink NDR -- ensuring NDR weight decreases monotonically from source toward leaves.
- This is implemented only during initial CTS, not as a general post-hoc fix -- it shapes how NDRs get assigned as the tree is first built, not something you apply after the fact to a tree that already has discontinuous NDRs.
- The underlying assignment rules feeding this: nets connected to a pure sink get sink NDR, nets connected to both a sink and intermediate cells get internal NDR, nets at root level until the branch point get root NDR.
Formula Or Decision Rule
Enforced order with topological_ndr enabled: Root NDR > Internal NDR > Sink NDR (heaviest near the source, lightest near the leaves).
What To Check
- Warning sign: post-CTS NDR inspection shows an internal net with a heavier NDR than the root net feeding it.
- Inspect: check whether cts.compile.topological_ndr was enabled BEFORE the initial CTS run, not applied afterward.
- Correct: if the tree already exists with discontinuous NDR assignment, this option won't retroactively fix it -- the tree likely needs to be rebuilt with the option enabled from the start.
Command Checks & Actions
set_app_options -list {cts.compile.topological_ndr true}Enforces Root > Internal > Sink NDR ordering during initial CTS.
report_clock_qor -type drc_violatorsCan surface issues stemming from NDR discontinuity indirectly via DRC violations.
Healthy, Suspicious & Hard-stop Results
- Expected: NDR weight decreases monotonically from root nets through internal nets to sink nets across the whole tree.
- Investigate: an internal net shows a heavier NDR than its feeding root net -- check whether topological_ndr was ever enabled for this tree's initial CTS run.
- Stop: topological_ndr is enabled on an already-built tree expecting retroactive correction -- it doesn't work that way; the tree needs rebuilding with the option set beforehand.
Common Mistake
The Trap: Applying cts.compile.topological_ndr after CTS has already built a tree with discontinuous NDR assignment, expecting it to retroactively fix the existing assignment -- it's implemented only during initial CTS, not as a post-hoc correction.
What The Interviewer Is Testing
Whether you know topological_ndr is an initial-CTS-only mechanism with a specific enforced order (Root > Internal > Sink), not a general-purpose NDR-consistency fixer you can apply at any stage.
Practical Example
Debug Scenario: Post-CTS NDR inspection on a tree finds an internal net with a heavier NDR assignment than the root net feeding it -- physically backwards. Checking the build script, cts.compile.topological_ndr was never enabled before the initial CTS run that built this tree, so the discontinuity was never prevented in the first place.
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