BeginnerQuestion 96 of 187

What does set_dont_touch_network actually protect by default, and how does -clock_only narrow that scope?

From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide

Short Answer

By default, set_dont_touch_network [get_clocks CLK] protects BOTH clock paths AND clock-as-data paths -- meaning a clock signal used somewhere as an ordinary data input is also protected. -clock_only narrows that to just the clock paths, leaving clock-as-data usage open to optimization. -clear removes the protection entirely.

Technical Reference DiagramWhat does set_dont_touch_network actually protect by default, and how does -clock_only narrow that scope?

Technical Explanation

  • By default, set_dont_touch_network [get_clocks CLK] protects BOTH clock paths AND clock-as-data paths -- a broader scope than just "the clock tree."
  • Clock-as-data paths means a clock signal used somewhere in the design as an ordinary data input, not as a clock -- the default behavior protects that usage too.
  • -clock_only narrows the protection to just the genuine clock paths, leaving any clock-as-data usage open to normal optimization.
  • -clear removes the dont_touch_network protection entirely, returning the clock network to normal optimization eligibility.

Common Mistake

The Trap: Assuming set_dont_touch_network only protects the clock tree itself -- by default it also protects any clock-as-data usage, which is broader than many people expect until they check.

Follow-up Question & Model Response

"Why might a design legitimately want to optimize a clock-as-data path even while keeping the true clock network protected?"

Candidate Model Response: Because a clock signal used as ordinary data (e.g. feeding a frequency-detection circuit) is functionally just a data signal at that point, and forcing it to stay unoptimized purely because its SOURCE happens to be a clock can leave real timing or area improvement unclaimed on that specific path.

Practical Example

Debug Scenario: A design uses a clock signal as a data input to a frequency-monitoring block elsewhere. Using the default set_dont_touch_network protects both the real clock tree AND this data usage -- switching to -clock_only lets the frequency-monitoring path be optimized normally while the actual clock tree stays protected.

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.