Hardware Engineering · Board Design

Termination Topologies and the Reflection They Absorb

Series, parallel, Thevenin, and active termination compared by what they do to the incident wave, what they cost in DC current, and where each one fails on a multi-drop bus.

A reflection exists because a wave travelling along a line meets a change in impedance and cannot deliver all of its energy forward. Termination is the deliberate introduction of a matched load so that the wave is absorbed instead. The physical principle is simple; the engineering is in choosing where to put the resistor, what value it takes, and how much current the design can afford to burn continuously.

What a terminator actually has to do

At the receiving end of a line with characteristic impedance $Z_0$, a load of exactly $Z_0$ gives a reflection coefficient of zero and absorbs the incident wave completely. Any other load reflects an amount given by

$$\Gamma = \frac{Z_L - Z_0}{Z_L + Z_0}$$

An open end gives $\Gamma = +1$ and doubles the voltage; a short gives $\Gamma = -1$ and cancels it. The intermediate values are what terminations exploit.

At the driving end the same expression applies with the source impedance in place of $Z_L$. A driver with output resistance $R_S$ sees a reflection coefficient of $(R_S - Z_0)/(R_S + Z_0)$ for waves returning from the far end. A driver whose output resistance equals $Z_0$ absorbs the returning wave completely, which is the basis of series termination.

The two ends are independent. A design may terminate at the source, at the load, at both, or at neither, and the choice determines how many round trips the signal makes before it settles.

Series termination at the source

The series resistor sits close to the driver and adds to the driver’s own output resistance to make up $Z_0$. A typical CMOS buffer has an output resistance of perhaps 10 to 30 Ω, so a 22 to 39 Ω resistor completes the match for a 50 Ω line.

The mechanism is worth following step by step. The driver, with the resistor, presents $Z_0$ to the line, so the incident wave has half the driver’s open-circuit step amplitude. It travels to the far end, where the high-impedance receiver reflects it with $\Gamma = +1$, doubling it back to the full intended level. That reflected wave travels back to the source, meets a matched source, and is absorbed. The load sees one clean transition after one time of flight; the source sees its own output at half amplitude until the reflection returns.

The costs are specific. The load reaches its final level after one time of flight, but the driver’s own pin sits at half amplitude until the reflected wave returns — one round trip later, about 13 ps per millimetre of trace — so the driver’s output node is unsettled for that whole interval. The half-amplitude incident wave means the net has half the noise margin during the outbound interval, which matters if an aggressor couples in during that window. And the resistor must be at the driver: a series resistor placed at the receiver terminates nothing and simply adds a low-pass filter.

The advantage is that series termination burns no static current. When the line is at a steady level the driver holds it through the resistor with no current flowing, so the power cost is only the dynamic energy of the line’s capacitance. That makes it the default choice for point-to-point CMOS nets, clocks, and any single-driver single-receiver route.

Parallel termination at the load

A resistor from the receiver’s input to a rail absorbs the incident wave at the far end, so the signal reaches its final value after one time of flight. The resistor value is $Z_0$, and the rail it terminates to determines the static current.

Terminating to ground is simple and works for any driver that can source current, but it forces the driver to hold the line high against a 50 Ω load. At 3.3 V that is 66 mA per net, held continuously whenever the line is high, which is unacceptable for anything but a handful of nets. Terminating to the supply rail has the same problem in the opposite polarity.

The Thevenin split — two resistors from the line to the supply and to ground — solves the DC problem at the cost of two parts. The pair is chosen so that their parallel combination equals $Z_0$ and their junction sits at the receiver’s switching threshold, which for a symmetric CMOS input is mid-supply. For a 3.3 V rail and a 50 Ω target that is 100 Ω to each rail. The static current when the line is held at either extreme is then $V/(2 Z_0)$ — 33 mA rather than the 66 mA a single 50 Ω resistor to ground would draw — because only one of the two resistors carries current at a time, and that one is 100 Ω. The benefit is not only the halved current: the quiescent point is centred, so the driver’s high and low drive strengths are used symmetrically and the terminator presents the same load in both states.

The real saving comes from referencing the terminator to mid-supply rather than to ground. A parallel terminator to a dedicated rail at, say, 1.2 V instead of ground reduces the current when the line is high without changing the AC impedance, at the cost of drawing current when the line is low; the worst case falls from $V/Z_0$ to $(V - V_{TT})/Z_0$. That is why DDR memory interfaces specify a termination voltage near half the I/O supply rather than the supply itself.

Active and nonlinear termination

A linear resistor is not the only absorber. Two other classes appear in real designs.

The first is an active clamp: a transistor biased to present a controlled impedance to the line over the signal’s range, with feedback setting the equivalent resistance. It costs an extra device and a bias network but allows the termination impedance to be programmed and, in some parts, adjusted for process and temperature. The memory and high-speed logic interface standards that specify such an arrangement define the termination as part of the interface rather than leaving it to the board, which is why their reference designs show a specific clamp rather than a resistor.

The second is a nonlinear clamp: a diode to a rail that only conducts when the line exceeds the rail by a forward drop. Diodes do not terminate a line — their impedance at normal signal levels is very high — but they limit overshoot and protect inputs. They are complementary to a resistor, not a substitute, and they introduce their own problems: a fast edge into a diode’s junction capacitance produces a brief current spike, and the stored charge must be removed before the diode turns off, which can produce a glitch on the line as the clamp releases.

Multi-drop buses and the topology problem

Everything above assumes one driver and one receiver at the ends of a single line. A bus with several devices hanging off a shared trace is a different structure: each device’s connection is a stub, and each stub presents a discontinuity.

A stub of length $l$ behaves as a capacitance for slow edges and as a resonant open-circuited line for fast ones. When the stub’s delay approaches a quarter of the edge’s rise time, the reflection it produces arrives back at the main line while the edge is still transitioning, which is the condition that produces the classic staircase and the non-monotonic edges that break receivers. The practical rule is to keep stubs shorter than about one-sixth of the rise-time length, the same criterion that decides whether a trace is a transmission line at all, discussed in Rise Time, Electrical Length, and When a Trace Stops Being a Wire.

For a bus that must span a real distance with several loads, the standard answer is to terminate at both physical ends and to keep the loads’ stubs short. The two end terminators absorb waves travelling in either direction; the intermediate loads see a line whose effective impedance is lowered by their combined capacitance, so the termination value is chosen for the loaded impedance rather than the bare trace’s. This is why memory bus termination values are not the 50 Ω of the unloaded trace.

The alternative is a fly-by topology, in which the main line passes each load in turn and only the far end is terminated, with the loads connected by very short stubs. It works because each stub’s reflection is small and arrives late relative to the edge; it fails when a stub must be lengthened to reach a device placed off the line.

Choosing a value, and the tolerance that matters

The nominal value is $Z_0$, but the useful question is how much error the link tolerates. A termination that is 20% off produces a reflection coefficient of about 0.1, meaning a tenth of the incident amplitude returns. On a point-to-point net with a series terminator that returning wave is absorbed at the source and the visible effect is a small perturbation of the final level. On a multi-drop bus the returning wave meets other discontinuities and the errors accumulate.

Resistor tolerance itself is usually less important than the variation in the driver’s output resistance, which changes with process corner, supply voltage, and temperature by a factor that can exceed two. A series terminator sized for a nominal 20 Ω driver is badly matched at the fast corner where the driver may be 10 Ω, which is why some interfaces allow the drive strength to be programmed and why the resistor value is chosen for the weak corner rather than the typical one.

def reflection(z_load, z0=50.0):
    return (z_load - z0) / (z_load + z0)

for r in (0, 22, 33, 47, 68):
    # series terminator: source impedance is driver plus resistor
    print(f"Rseries={r:2d} ohm, Rs=20 ohm -> gamma_src={reflection(20 + r):+.2f}")

The same arithmetic applies to the load end, where a parallel terminator of the wrong value is the dominant error. Both cases are worth running before the layout is frozen, because changing a termination after routing means cutting traces.

Where termination does not help

Termination absorbs reflections at the ends of a line. It does nothing for a discontinuity in the middle, which reflects the wave before it ever reaches the terminator. A connector, a via, or a plane split in the middle of a route produces a reflection that the end terminator cannot undo, and adding a terminator to such a net merely changes the pattern of the ringing. The fix is at the discontinuity, which is the subject of Via Transitions, Stubs, and Backdrilling and of the return-path discussion in Return Current Paths and Why Loop Area Sets Trace Inductance.

Termination also does nothing for crosstalk. A victim line with a perfect terminator at each end still receives the coupled noise injected along its length; the terminators simply absorb it cleanly instead of letting it ring. Separating the two mechanisms is the first step in debugging a link that fails intermittently.

References

  1. High-Speed Digital Design: A Handbook of Black Magic — Howard Johnson and Martin Graham, Prentice Hall
  2. Signal and Power Integrity — Simplified — Eric Bogatin, Prentice Hall