🔧 Physical Design Blog

Part 3 of 10

Power Planning

Building a robust power distribution network

By Praveen Kumar Vagala

1,039 views

Why Power Planning Matters

Power must reach every cell with minimal voltage drop (IR drop).

VDD at pad = 1.0V │ │ Wire resistance ▼ VDD at cell = 0.95V ← 5% drop = 50mV! If IR drop too high: • Cells run slower (setup violations) • May cause functional failures • Reliability issues

Power Network Structure

┌─────────────────────────────────────────────────────────────────┐ │ │ │ ═══════════════════════════════════════════════════ ← Ring │ │ ║ ║ (VDD) │ │ ║ ═══════════════════════════════════════════ ║ │ │ ║ ║ ║ ║ ← Ring │ │ ║ ║ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ║ ║ (VSS) │ │ ║ ║ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ║ ║ │ │ ║ ║ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ║ ║ ← Straps │ │ ║ ║ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ║ ║ (vertical)│ │ ║ ║ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ║ ║ │ │ ║ ═════════════════════════════════════════ ║ ← Straps │ │ ║ ║ (horiz) │ │ ═════════════════════════════════════════════════ │ │ │ │ ──VDD────────────────────────────────────────── ← Rails │ │ ──VSS────────────────────────────────────────── (in rows) │ │ ──VDD────────────────────────────────────────── │ │ │ └─────────────────────────────────────────────────────────────────┘

Power Network Components

ComponentLayerPurpose
Power RingTop metalsDistribute power around chip
Power StrapsUpper metalsCarry power across chip
Power RailsM1Supply power to standard cells
ViasBetween layersConnect different metal layers

Power Ring

Forms a ring around the core area on thick top metals.

# Create power ring (Innovus)
addRing \
  -nets {VDD VSS} \
  -type core_rings \
  -layer {top M9 bottom M9 left M8 right M8} \
  -width 5 \
  -spacing 2 \
  -offset 3

Power Straps

Vertical and horizontal metal lines that carry power from ring to cells.

# Add power straps (Innovus)
addStripe \
  -nets {VDD VSS} \
  -layer M6 \
  -direction vertical \
  -width 2 \
  -spacing 1 \
  -set_to_set_distance 50 \
  -start_from left \
  -start_offset 10

# Horizontal straps
addStripe \
  -nets {VDD VSS} \
  -layer M7 \
  -direction horizontal \
  -width 2 \
  -spacing 1 \
  -set_to_set_distance 50

Via Stacking

Power Pad │ ════════╪════════ M9 (Ring) │ ────────┼──────── M8 │ ════════╪════════ M7 (Strap) │ ────────┼──────── M6 │ ════════╪════════ M5 (Strap) │ ... │ ... │ ────────┴──────── M1 (Rail) │ Cells Via stack connects all layers!

Standard Cell Rails

Horizontal M1 rails in each row supply cells directly.

Row 2: ──VDD───────────────────────────────── ┌─────┐ ┌─────┐ ┌───────┐ ┌─────┐ │ INV │ │ BUF │ │ AND │ │ MUX │ └─────┘ └─────┘ └───────┘ └─────┘ ──VSS───────────────────────────────── Row 1: ──VDD───────────────────────────────── ┌─────┐ ┌───────┐ ┌─────┐ │ OR │ │ NOR │ │ XOR │ └─────┘ └───────┘ └─────┘ ──VSS─────────────────────────────────

IR Drop

IR Drop = Current × Resistance

VDD = 1.0V │ R1=10mΩ │ ▼ ┌───────┴───────┐ │ 0.99V │ │ │ R2 │ R3 │ ▼ ▼ 0.97V 0.98V Cells far from power pads see lower voltage!

IR Drop Guidelines

Electromigration (EM)

High current density causes metal atoms to move, eventually breaking wires.

EM Limits:
Each metal layer has maximum current density (mA/um).
Power straps must be wide enough to stay under limits!
Current density = Total current / Wire cross-section

If current = 100mA and wire width = 2um, thickness = 0.5um:
  Density = 100mA / (2 × 0.5) = 100 mA/um²
  
Check against library EM limits!

Macro Power Connections

Macros have their own power pins that must connect to the grid.

Power Strap (M6) │ ═════╪═════════════════════ │ ┌────┴────────────────────┐ │ VDD pin │ │ │ │ MACRO │ │ (SRAM) │ │ │ │ VSS pin │ └────┬────────────────────┘ │ ═════╪═════════════════════ │ Power Strap (M6)

Power Mesh Density

Block TypePower MeshReason
High-speed logicDense meshHigh switching current
Memory blocksDense meshMany cells switching
Low-power logicSparse meshLower current
Clock buffersDense meshHigh switching

Commands Summary (Innovus)

# Power planning flow
globalNetConnect VDD -type pgpin -pin VDD -all
globalNetConnect VSS -type pgpin -pin VSS -all

# Create ring
addRing -nets {VDD VSS} -type core_rings ...

# Create straps
addStripe -nets {VDD VSS} -layer M6 ...

# Special route (connect rails to straps)
sroute -connect corePin

# Verify
verifyConnectivity -nets {VDD VSS}
analyzeIRDrop

Summary

ComponentKey Point
Power RingAround core on top metals
Power StrapsCarry power across chip
Power RailsM1 rails to cells
IR DropKeep < 5% of VDD
EMStay under current limits