What does mark_clock_trees actually let you control beyond just "this tree is done"?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
mark_clock_trees can scope to specific clocks (-clocks, default is all clocks/modes/active scenarios), mark a tree synthesized (-synthesized, the default) or clear that (-clear), apply or remove dont_touch, propagate non-default clock routing rules or clock cell spacing rules, mark clock sinks fixed, and freeze routing of clock nets. It's a multi-purpose flagging command, not just a single boolean toggle.
Technical Explanation
- -clocks scopes the command to specific clocks; the default is all clocks across all modes and active scenarios.
- -synthesized marks the tree as synthesized (the default behavior); -clear removes that mark; -dont_touch/-clear -dont_touch apply or remove dont_touch on the tree.
- -routing_rules and -clock_cell_spacing propagate non-default clock routing rules (set_clock_routing_rules) and clock cell spacing rules (set_clock_cell_spacing) onto the marked tree.
- -fix_sinks marks clock sinks fixed; -freeze_routing freezes routing of the clock nets -- both protect the tree from further movement/rerouting.
Common Mistake
The Trap: Treating mark_clock_trees as a single synthesized/not-synthesized toggle, when it actually controls several independent protections (dont_touch, fixed sinks, frozen routing, rule propagation) at once.
Follow-up Question & Model Response
"Why would you want to freeze routing on a clock tree separately from marking it dont_touch?"
Candidate Model Response: Because dont_touch protects the cells and structure from optimization changes, but a design could still get physically rerouted (e.g. by a later routing pass) without route freezing specifically preventing that -- the two protections cover different failure modes.
Practical Example
Debug Scenario: A clock tree is finalized and needs protection from a later ECO accidentally disturbing it. mark_clock_trees -clocks [get_clocks clkA] -dont_touch -fix_sinks -freeze_routing locks down placement, sink locations, and routing all at once, not just the synthesized flag.
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