RTL to GDSii: Congestion Reduction strategies

In ASIC physical design, congestion occurs when there are more routing demands than available resources (tracks) in a region, leading to routing failures, increased delays, and DRC violations. Managing congestion is crucial for achieving a routable design with optimal performance.


Methods to Reduce Congestion

  • Macro Placement Optimization
  • Place large macros (RAMs, CPUs) at the periphery to free up routing channels.
  • Avoid placing macros in high-density standard cell regions.
  • Use channel spacing between macros for smoother routing.
  • Hierarchical Floorplanning (Block-Level)
  • Divide the design into sub-blocks with controlled interconnect density.
  • Use fence regions to restrict cell placement near congested areas.
  • Power Grid Planning
  • Avoid overly dense power stripes that block routing tracks.
  • Use staggered power stripes instead of continuous ones.
  • Cell Spreading
  • Increase cell spacing in congested regions (e.g., setPlaceMode -place_global_cell_spacing in Cadence Innovus).
  • Use density screens (-uniformDensity) to prevent hot spots.
  • Utilization Control
  • Keep standard cell utilization ≤ 70-80% in congested areas.
  • Use partial placement blockage to restrict cell density.
  • Congestion-Driven Placement
  • Run global placement with congestion awareness (e.g., -timingDriven -congEffort high).
  • Use ECO placement to redistribute cells post-optimization.
  • Layer Assignment
  • Route local nets on lower metals (M1-M3) and global nets on higher metals (M4+).
  • Avoid excessive via stacking in dense regions.
  • Track Utilization Balancing
  • Use alternate routing directions (e.g., M1: Horizontal, M2: Vertical).
  • Avoid routing bottlenecks by spreading signals across layers.
  • Non-Default Rules (NDR)
  • Use double-width spacing for critical nets to reduce conflicts.
  • Apply shielding for noise-sensitive nets to prevent detours.
  • Buffer & Inserter (Buf/Inv) Tree Balancing
  • Reduce fanout congestion by inserting buffers in high-fanout nets.
  • Use clock tree synthesis (CTS) optimizations to minimize skew-induced congestion.
  • Logic Restructuring
  • Replicate high-fanout cells to distribute load.
  • Split long wires with repeaters to reduce routing pressure.
  • Net Weighting
  • Assign higher priority to timing-critical nets (setNetWeight).
  • Congestion-Aware Synthesis
  • Use physical synthesis tools (e.g., Fusion Compiler, Genus iSpatial) to optimize for routability.
  • Apply gate sizing to reduce cell density.
  • Post-Route ECOs
  • Perform minor placement legalization to relieve congestion.
  • Reroute problematic nets with manual guidance.
  • Pin Access Optimization
  • Use offset pins or middle-of-line (MOL) routing to ease pin access.
  • Avoid pin congestion by spreading pins in macros.
  • DFM (Design for Manufacturability) Adjustments
  • Follow metal density rules to avoid CMP (Chemical Mechanical Polishing) issues.
  • Use fill cells to maintain uniform density.

Early-Stage Checks:

  • Use global routing congestion maps (e.g., in Innovus, ICC2).
  • Identify hotspots (red/yellow zones) in congestion reports.

Metrics to Monitor:

  • Overflow (%): Percentage of unroutable nets.
  • Cell Density: Should be < 80% in most regions.
  • Track Utilization: Should not exceed 90%.

Common Fixes:

  • If congestion is localized: Adjust placement, add routing blockages.
  • If global: Reduce utilization, optimize netlist.


  1. Initial Floorplan → Identify congestion hotspots.
  2. Adjust Macro Placement → Free up routing channels.
  3. Run Congestion-Aware Placement → Spread cells uniformly.
  4. Optimize Power Grid → Avoid blocking routing tracks.
  5. Rerun Routing & Verify → Check overflow reduction.

Summary

Final Tip: Use iterative refinement—congestion fixes often require multiple placement/routing trials.

Facebook
Twitter
LinkedIn
Email
Signup our newsletter to get update information, news, insight or promotions.