IntermediateQuestion 107 of 222

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 Reference DiagramWhat does mark_clock_trees actually let you control beyond just "this tree is done"?

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

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.

See what's inside the bundle
PnR Flow Physical Design Mentor Guide โ€” eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out.