Hierarchical Physical Design is the divide-and-conquer methodology for implementing large SoCs where the chip is partitioned into independently designed blocks (macros/partitions) that are separately placed-and-routed, then assembled at the top level — enabling parallel team execution, managing tool capacity for billion-transistor designs, and providing natural abstraction boundaries that keep implementation tractable, with modern SoCs typically having 10-50 hierarchical blocks assembled into a single chip.
Why Hierarchy Is Necessary
- Flat P&R of billion-gate SoC: Tool runtime = weeks, memory = terabytes → impractical.
- Hierarchical: Each block (50-200M gates) → manageable P&R in hours-days.
- Parallel execution: Multiple teams implement blocks simultaneously.
- IP reuse: Hard macro blocks (CPU, GPU, memory) used as-is.
Hierarchical Design Flow
<svg viewBox="0 0 435 397" xmlns="http://www.w3.org/2000/svg" style="max-width:100%;height:auto" role="img"><rect x="0" y="0" width="435" height="397" rx="12" fill="#0d1117"/><g font-family="ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace" font-size="14"><text xml:space="preserve" x="20" y="31.7"><tspan fill="#c9d1d9"> Chip Spec</tspan></text><text xml:space="preserve" x="20" y="50.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan></text><text xml:space="preserve" x="20" y="69.7"><tspan fill="#c9d1d9"> Top-Level Floorplan</tspan></text><text xml:space="preserve" x="20" y="88.7"><tspan fill="#c9d1d9"> (block placement, I/O, power grid)</tspan></text><text xml:space="preserve" x="20" y="107.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan></text><text xml:space="preserve" x="20" y="126.7"><tspan fill="#c9d1d9"> Budget Constraints to Blocks</tspan></text><text xml:space="preserve" x="20" y="145.7"><tspan fill="#c9d1d9"> (timing budgets, pin locations, power)</tspan></text><text xml:space="preserve" x="20" y="164.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan></text><text xml:space="preserve" x="20" y="183.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">┌──────────┬──────────┬──────────┐</tspan></text><text xml:space="preserve" x="20" y="202.7"><tspan fill="#c9d1d9"> Block A Block B Block C Block D</tspan></text><text xml:space="preserve" x="20" y="221.7"><tspan fill="#c9d1d9"> P&R P&R P&R P&R</tspan></text><text xml:space="preserve" x="20" y="240.7"><tspan fill="#c9d1d9"> (parallel) (parallel) (parallel) (parallel)</tspan></text><text xml:space="preserve" x="20" y="259.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan></text><text xml:space="preserve" x="20" y="278.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">┌──────────┴──────────┴──────────┘</tspan></text><text xml:space="preserve" x="20" y="297.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan></text><text xml:space="preserve" x="20" y="316.7"><tspan fill="#c9d1d9"> Top-Level Assembly</tspan></text><text xml:space="preserve" x="20" y="335.7"><tspan fill="#c9d1d9"> (top routing, filler, DRC/LVS)</tspan></text><text xml:space="preserve" x="20" y="354.7"><tspan fill="#c9d1d9"> </tspan><tspan fill="#6e7681">↓</tspan></text><text xml:space="preserve" x="20" y="373.7"><tspan fill="#c9d1d9"> Chip Signoff</tspan></text></g></svg>
Floorplanning Decisions
| Decision | Impact | Constraint |
|---|---|---|
| Block placement | Wirelength, timing, congestion | Data flow affinity |
| Block shapes | Aspect ratio, area utilization | Power grid alignment |
| Pin placement | Inter-block timing, routability | Feed-through, congestion |
| Power grid topology | IR drop, EM | Current per block |
| Channel width | Routing resources | Signal density |
Interface Budgeting
- Top-level creates timing budgets for each block boundary:
- Input arrival times at block input pins.
- Required arrival times at block output pins.
- Block must close timing within its budget.
- If block can't meet budget → renegotiate with top level → iterate.
Abstract Views
| View | Content | Used By |
|---|---|---|
| Physical abstract (LEF) | Block outline, pin locations, routing blockages | Top-level P&R |
| Timing abstract (Liberty) | Pin-to-pin timing arcs, constraints | Top-level STA |
| Power abstract | Current profile per mode | Top-level power analysis |
| Parasitic abstract | Simplified RC model | Top-level SI analysis |
Challenges of Hierarchical Design
- Interface timing closure: Block and top budgets must converge → requires iteration.
- Feed-through routing: Top-level signals may need to pass through block areas.
- Power grid alignment: Block and top-level power grids must connect seamlessly.
- Placement legality: Block boundaries must align to placement grid.
Hybrid Approaches
- Hard macros: Block layout frozen → used as black box at top level. No flexibility.
- Soft macros: Block placement is flexible → top-level tool can adjust in-context.
- Mixed: Some blocks are hard (reused IP), others soft (project-specific).
Hierarchical physical design is the only viable methodology for implementing modern SoCs — without hierarchical partitioning, the 10-50 billion transistors in flagship mobile and server processors would overwhelm any single EDA tool invocation, and the dozens of engineering teams working in parallel would have no structured way to integrate their work into a cohesive chip.
Explore 500+ Semiconductor & AI Topics
From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.