Skip to main content

5 min readPhysical Design

Hierarchical SoC Floorplanning Strategies

Master the art of hierarchical floorplanning to optimize area, timing, and routability in large-scale System-on-Chip (SoC) designs for advanced nodes.

  • Physical Design
  • SoC
  • Floorplanning
  • VLSI
  • ASIC Design

ShareLinkedInX

Introduction to Hierarchical Floorplanning

As semiconductor designs push into the sub-7nm regime, the sheer volume of transistors and the complexity of interconnects make flat floorplanning virtually impossible for large-scale System-on-Chip (SoC) designs. Hierarchical floorplanning emerges as the critical strategy for managing this complexity. By decomposing a massive design into smaller, manageable blocks—or partitions—engineers can parallelize the physical implementation process, improve tool convergence, and ensure a more predictable path to timing closure.

In a flat design, the tool attempts to place millions of standard cells and thousands of macros globally. This often leads to catastrophic routing congestion and an inability for the optimizer to find a global minimum for wirelength. Hierarchical floorplanning replaces this global chaos with a structured approach: the top-level floorplan defines the boundaries and connectivity of the blocks, while the block-level floorplans optimize the internal circuitry. The success of this approach depends on the quality of the boundary definitions and the alignment between the logical architecture and the physical layout.

Defining Logical vs. Physical Partitions

One of the most frequent mistakes in SoC design is conflating logical partitioning (the way the RTL is structured) with physical partitioning (how cells are grouped on the silicon). While a logical partition is defined by data flow and clock domains, a physical partition is defined by routability, power delivery, and timing budgets. Effective physical partitioning requires a deep understanding of the connectivity matrix.

High-bandwidth buses and tightly coupled modules should reside within the same physical block to minimize long-haul routing. Conversely, modules that are logically separate but share a common power domain might be grouped together to simplify the power grid. The goal is to create "coherent blocks"—partitions where the internal connectivity is dense and the external connectivity is sparse. When partitions are poorly defined, the top-level routing becomes a bottleneck, often necessitating costly design iterations to move blocks or redefine boundaries.

Pin Placement and Connectivity Optimization

In a hierarchical flow, the pins of a block are the primary interface between the partition and the rest of the SoC. Poor pin placement is a leading cause of routing congestion at the top level. If pins are clustered in one corner of a block, the router is forced to create "bottlenecks" where thousands of nets compete for a limited number of routing tracks.

Optimal pin placement follows the principle of "connectivity-driven alignment." Pins should be placed on the block boundaries closest to the blocks they communicate with. For example, if Block A is placed to the left of Block B, the output pins of A and the input pins of B should be aligned along their shared boundary. Furthermore, designers must manage pin density.

Overloading a single boundary can lead to local congestion that prevents the router from completing the design, even if the overall chip has plenty of routing resources. Using "pin-padding" or distributing pins across multiple sides of the block helps alleviate this pressure and provides the router with more flexibility to find optimal paths.

Managing Macro Distribution and Congestion

Macros—such as SRAMs, PLLs, and Analog IPs—are the "anchor points" of any floorplan. Their placement dictates the flow of standard cells and the overall routing topology. In hierarchical designs, macro distribution must be handled with extreme care to avoid creating routing "shadows" where standard cells cannot be placed or routed. A common strategy is the "peripheral placement" approach, where macros are pushed to the edges of the block, leaving the center clear for standard cell logic and routing channels.

However, for very large blocks, this can lead to excessively long wires from the center to the edges. In such cases, a "clustered" approach is better, where macros are grouped into functional islands with dedicated routing channels between them. Congestion is often a symptom of poor macro placement. When macros are placed too close together, they block the routing tracks needed for the logic between them.

Maintaining a consistent "halo" or keep-out zone around macros is essential. These zones ensure that the tool has enough space to route the macro pins without creating hot-spots of congestion that would otherwise degrade timing or cause DRC violations.

Power Grid Integration and IR-Drop Mitigation

Power delivery is the invisible backbone of the floorplan. In advanced nodes, the resistance of thin metal wires leads to significant IR drop (voltage sag), which can slow down cells and cause functional failures. Hierarchical floorplanning requires a coordinated power strategy between the top level and the blocks. The top-level power grid (the "mesh") provides the primary current paths. Each block must then integrate its internal power grid with this top-level mesh.

This is typically achieved through a system of "via ladders" and strap alignments. If the block-level straps do not align with the top-level straps, the current must take a detour, increasing the effective resistance and worsening the IR drop. To further mitigate voltage drop, designers strategically place Decoupling Capacitors (Decaps) in the floorplan. Decaps act as local energy reservoirs that supply current during high-switching events.

In a hierarchical flow, Decap placement is often an iterative process: the designer runs a power analysis tool, identifies areas of high dynamic IR drop, and then fills the available white space in those areas with Decap cells.

Timing Closure Strategies at the Boundary

Timing closure in a hierarchical design is a game of "budgeting." Since the top-level router cannot see the internal details of a block, the designer must provide a timing budget for the paths that cross block boundaries. This is usually handles via Virtual Clocks and Interface Logic Models (ILMs). Boundary timing failures often occur because the physical distance between the source pin of one block and the destination pin of another was underestimated during the partitioning phase.

To solve this, designers use "buffer insertion" at the boundaries. By placing repeaters on the long-haul nets between blocks, the signal integrity is maintained, and the transition times are kept within limits. Another critical aspect is the management of clock skew. In a hierarchical design, the clock tree is often built in two stages: a top-level distribution tree that brings the clock to the block pins, and a block-level tree that distributes it internally.

Ensuring that the clock arrives at all block boundaries with minimal skew is essential for maintaining synchronous operation across the SoC. This requires a tight coordination between the top-level clock tree synthesis (CTS) and the block-level timing constraints.

Conclusion: Balancing Modularity and Performance

Hierarchical floorplanning is a delicate balance between the need for modularity and the demand for peak performance. While partitioning allows for a structured and parallelized design flow, it introduces the risk of "fragmentation"—where the overhead of boundaries and interface logic degrades the overall area and timing of the chip. The key to a successful hierarchical floorplan is iteration. A design is rarely perfect on the first pass.

By using data-driven insights from congestion maps, IR-drop analysis, and timing reports, designers can refine their partitions, adjust pin placements, and optimize macro distribution. When executed correctly, hierarchical floorplanning transforms an impossible design challenge into a predictable engineering process, ensuring that the final SoC meets its PPA (Power, Performance, Area) targets without compromising on reliability or manufacturability.

Frequently asked questions

What is the main difference between flat and hierarchical floorplanning?

Flat floorplanning treats the entire design as a single entity, which is efficient for small designs but leads to tool divergence and routing congestion in large SoCs. Hierarchical floor hierarchical floorplanning divides the design into smaller partitions, allowing for parallel implementation and more controlled routing at the top level.

What are the common pitfalls of pin assignment in hierarchical designs?

The most common pitfalls are pin clustering, where too many pins are placed in a small area, and misalignment, where pins are placed far from the blocks they communicate with. Both lead to increased routing congestion and degraded timing at the top level.

How do you determine the optimal size for a physical partition?

The size is determined by balancing the complexity of the internal logic with the amount of external connectivity. A block should be large enough to contain functionally related modules to minimize long-haul routing, but small enough that the implementation tools can converge on timing and area within a reasonable timeframe.

HHow does floorplanning affect the final routing congestion?

Floorplanning defines the 'available space' for routing. Poor macro placement or incorrect block outlines can create 'bottlenecks' where thousands of nets compete for a few tracks. Proper macro distribution and strategic pin placement ensure a balanced routing density across the die.

More engineering notes

Working through a problem like this?

Tell us about your flow: the tools, the PDK, what is failing and when it needs to be clean.