Why Learn About Wire Delay? In older chips, transistors were slow and wires were almost free. Today it is often the other way round: a signal can cross dozens of gates in the time it takes to travel a few millimetres of on-chip wire. Long buses in large SoCs need several clock cycles just to cross the die, and repeater buffers can make up a noticeable share of all the cells on a large chip. Understanding why wires are slow is the first step from digital theory to real chip design. In this tutorial, you'll learn the RC model of a wire and how designers keep long wires fast, in under 13 minutes.

An on-chip wire is not an ideal connection. It has resistance, because current must push through a thin strip of metal, and capacitance, because the wire sits above the substrate and next to other wires. Charging that capacitance through that resistance takes time. Both grow with wire length, so the delay of an unbuffered wire grows with the square of its length. Long wires are therefore broken into shorter segments by repeater buffers.

13 min read | Intermediate Level

What You'll Learn

  • Where a wire's resistance and capacitance come from
  • Why wire delay grows with the square of length
  • How repeaters turn quadratic delay into linear delay
  • What real repeater spacing, delay and energy numbers look like, and how long wires shape the design

A Wire Has Resistance and Capacitance

PropertyPhysical causeGrows withShrinks with
Resistance RCurrent flowing through a narrow, thin metal stripLengthWider or thicker wire, lower-resistivity metal
Capacitance CThe wire acts as a plate above the substrate and beside neighbouring wiresLength, closer neighboursMore spacing, thinner wire, lower-k insulator

A chip has a stack of metal layers. The lowest layers are thin and closely packed: good for short local connections, but highly resistive. Upper layers are thicker and wider, with much lower resistance per millimetre, so they carry long global signals, clocks, and power.

The RC Model

Because resistance and capacitance are spread evenly along the wire, it is modelled as a ladder of many small resistors and capacitors - a distributed RC line:

Distributed RC model of an on-chip wire
A wire modelled as a ladder of small resistors and capacitors. Charging the far end means pushing current through the whole resistance while charging the whole capacitance, which is why delay grows with length squared.

A lumped model, with all the resistance in front of all the capacitance, reaches 50% of its final voltage after about 0.69 × R × C. A distributed line is faster than that - about 0.38 × R × C - because the capacitance near the driver charges through only a small part of the resistance. Either way, delay is proportional to the product R × C.

Why wire delay grows with length squared

  R  proportional to  length
  C  proportional to  length
  delay  proportional to  R x C  proportional to  length x length

  length x2   ->  delay x4
  length x3   ->  delay x9
  length /2   ->  delay /4

Quick Check

Q: An unbuffered 1 mm wire has a delay of 25 ps. Estimate the delay of an unbuffered 3 mm wire on the same layer.

Show Answer

Delay grows with length squared: 32 = 9, so about 9 × 25 = 225 ps.

Why Wires Did Not Scale Like Transistors

When a process shrinks, transistors get faster. Wires shrink too, but a narrower, thinner wire has a smaller cross-section and therefore more resistance per millimetre. Local wires get shorter as the logic gets denser, so they keep up. Global wires, which still have to cross the whole die, do not get shorter, and their delay relative to a gate delay grows with every process generation.

Where Does Wire Delay Dominate?

In a large SoC, a bus from a processor cluster to a memory controller on the far side of the die can be several millimetres long. At gigahertz clock rates, such a wire cannot be crossed in one cycle even with ideal buffering, so architects plan for multi-cycle transfers from the start, with register stages along the route. On-chip networks that connect many IP blocks are designed around this limit.

Repeaters: Making Delay Linear

Because delay grows with length squared, splitting a long wire into shorter segments helps dramatically. Inserting a buffer (a repeater) between segments restarts the RC charging: each segment only has to charge its own capacitance through its own resistance.

Wire delay versus length with and without repeaters
Illustrative wire delay versus length. Without repeaters, delay grows with the square of length; with repeaters every 1 mm, it grows linearly, so long wires become far faster.
Repeater arithmetic (illustrative: 30 ps per mm^2 of wire, 15 ps per repeater)

  4 mm unbuffered   : 30 x 4^2                  = 480 ps
  4 x 1 mm segments : 4 x (30 x 1^2 + 15)       = 180 ps
  2 x 2 mm segments : 2 x (30 x 2^2 + 15)       = 270 ps

  With the segment length fixed, total delay grows LINEARLY with wire length.
  Too many repeaters add buffer delay, area and power; there is an optimum spacing.

Upsizing the driver alone does not fix a long wire. A stronger driver reduces the driver's own resistance, but the wire's resistance is still in series with every picofarad of wire capacitance. Only splitting the wire attacks the quadratic term.

Repeaters in Practice

The best repeater spacing is a compromise, and real numbers show how it works. For a wire on a middle metal layer in a 65 nm process (200 Ω/mm and 0.2 pF/mm, with a 15 ps FO4 inverter delay), a text such as CMOS VLSI Design works out an optimally repeated wire at about 41 ps per mm. That needs a repeater about every 0.45 mm, each driven by a large inverter (about 180 times the minimum size).

Design goalSpacingDelay per mmEnergy per bit per mm
Minimum delay0.45 mm41 ps0.4 pJ
Minimum energy x delay0.8 mm47 ps0.26 pJ

Minimum delay is expensive: the repeaters add about 87% to the switching energy of an unrepeated wire. Allowing the delay to grow by 14% lets the repeaters be spaced 1.7 times farther apart and cuts the energy a lot. Because delay is a weak function of the spacing, designers also place repeaters wherever the floorplan has room.

Practical repeater rules

  inverters as repeaters : fastest, but a wire needs an EVEN number of them
                           (or the receiver must accept an inverted signal)
  buffers (inverter pair): no polarity problem, about 8% slower per mm
  one direction only     : a repeater drives the wire one way, so bidirectional
                           and tri-state buses cannot use simple repeaters

How the Design Flow Handles Wires

The logic design never mentions wires, and logic synthesis only estimates their effect, because it does not yet know where cells will be placed. Physical implementation does the real work:

How the implementation flow handles wires

  1. Synthesis     : estimates wire load from fanout or rough placement
  2. Placement     : cells get real positions -> wire lengths become known
  3. Optimization  : insert repeaters on long nets, upsize drivers,
                     assign long nets to upper (lower-resistance) metal layers
  4. Routing       : real wire shapes are drawn
  5. Extraction    : R and C of every wire are computed from the layout
  6. Timing sign-off with the extracted parasitics

What the designer can do is make sure no single-cycle path has to cross the whole chip. If a signal must travel far, add register stages so each cycle only covers part of the distance. A chain of register slices adds one cycle of latency per stage but no logic:

Register slices along a long route (3 stages)

  source --> [FF] ---- wire ----> [FF] ---- wire ----> [FF] --> destination
              hop 1                hop 2                hop 3

  each clock cycle the data advances one hop
  each hop is 1/3 of the length, so its wire delay is only about 1/9 of the
                   whole route's (delay grows with the square of length)
  cost           = 3 cycles of latency and W x 3 flip-flops for a W-bit bus

The benefit comes only if place-and-route spreads the stages along the route, so large designs often guide the placement of such slices. The cost is latency, which the surrounding protocol must tolerate.

Where Are Register Slices Used?

On-chip interconnect fabrics insert register slices on long links between blocks, trading a cycle or two of latency for a higher clock rate. Clock distribution uses thick upper metal and carefully spaced repeaters to keep edges sharp across the whole die.

Common Mistakes

Mistake #1: Assuming wire delay grows linearly with length

For an unbuffered wire, doubling the length multiplies the delay by about four, not two. Linear scaling only appears once repeaters are inserted at a roughly fixed spacing.

Mistake #2: Trusting timing from synthesis alone

Synthesis uses estimated wire loads. After placement, long nets can be much slower than predicted. Timing is not closed until it has been checked with parasitics extracted from the real layout.

Mistake #3: Fixing a long wire by upsizing only the driver

A bigger driver helps with the load but not with the wire's own distributed resistance. For long wires, repeaters and upper metal layers are the effective fixes.

Mistake #4: Planning single-cycle paths across the whole die

At high clock rates, crossing a large die can take more than one cycle even with optimal repeaters. If the architecture assumes a one-cycle transfer, no amount of physical optimization will close timing. Plan register stages into the architecture.

Practice Exercise

Challenge: Buffer a Long Route

On a certain metal layer, an unbuffered wire has a delay of 30 ps per mm2 of length squared, and each repeater adds 15 ps.

  1. What is the delay of an unbuffered 6 mm wire?
  2. What is the delay with repeaters every 1 mm, and every 1.5 mm?
  3. The design runs at 1 GHz, and 400 ps of each cycle is already used by logic at both ends. Can this route be a single-cycle path?
Hint

Each segment of length s costs 30 × s2 + 15 ps. Count the segments.

Solution
1. Unbuffered: 30 x 6^2 = 1080 ps

2. Every 1 mm  : 6 segments x (30 x 1   + 15) = 6 x 45    = 270 ps
   Every 1.5 mm: 4 segments x (30 x 2.25 + 15) = 4 x 82.5  = 330 ps

3. Cycle = 1000 ps; 400 ps used by logic leaves 600 ps.
   Buffered wire (270 ps) fits; unbuffered (1080 ps) never could.
   With less margin, a register slice in the middle would split the route.
  

Summary

In this tutorial, you learned:

  • On-chip wires have resistance and capacitance, both proportional to length
  • Wire delay is proportional to R x C, so an unbuffered wire's delay grows with length squared
  • A distributed RC line reaches 50% in about 0.38 RC, about half the lumped-model estimate
  • Global wires get relatively slower with each process generation, while local wires keep up
  • Repeaters split long wires into segments and make delay grow linearly with length
  • Place-and-route inserts repeaters and picks metal layers; the design should add register stages for long cross-chip paths
Did you find what you were looking for?

Quiz

No quiz questions available for this article.