ExpertQuestion 289 of 111Source PDF page undefined

How do you build more than one global H-tree in different parts of the same floorplan, and how are the sections actually defined?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

set_regular_multisource_clock_tree_options -htree_sections takes a list of section definitions, each with -section_name, -prefix, and either -tap_boundary (a bounding box) plus -tap_boxes (a symmetric grid within it) or explicit -tap_locations -- letting you build genuinely separate H-trees for genuinely separate floorplan regions instead of forcing one global tree to span an entire irregular floorplan.

Technical Reference DiagramHow do you build more than one global H-tree in different parts of the same floorplan, and how are the sections actually defined?
How do you build more than one global H-tree in different parts of the same floorplan, and how are the sections actually defined?, illustrating the physical design concept.

Technical Explanation

  • set_regular_multisource_clock_tree_options -htree_sections takes a list of section definitions -- one global H-tree per section, not one tree forced across the whole floorplan.
  • Each section is defined with -section_name, -prefix (for naming the resulting cells distinctly per section), and either -tap_boundary plus -tap_boxes (a symmetric grid within a bounding box) or explicit -tap_locations for non-grid placement.
  • This is the practical tool for a floorplan that's naturally divided into distinct regions (e.g. by a large macro, or by physical section) where one global H-tree spanning the whole thing wouldn't make structural sense.

Common Mistake

The Trap: Trying to force one global H-tree across a floorplan that's naturally divided into distinct sections, when -htree_sections exists specifically to build separate, properly-scoped trees per section instead.

Follow-up Question & Model Response

"Why would using -prefix per section matter beyond just naming convenience?"

Candidate Model Response: Distinct prefixes keep each section's generated cell names unambiguous and traceable back to their section during debug -- without it, cells from different sections could be harder to tell apart when reviewing the built structure.

Practical Example

Practical Example: set_regular_multisource_clock_tree_options -htree_sections [list [list -section_name sectionA_name -tap_boundary {{315.88 1275.8} {1750.04 2187.1}} -prefix sectionA -tap_boxes {4 4}] [list -section_name sectionB_name -tap_locations {{700 472} {1350 472}} -prefix section]] builds two independently-defined H-tree sections in one command.

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.