What layout does about it

Tell random mismatch from gradients and edge effects, see what common-centroid placement, interdigitation and dummy fingers cancel, and model each one on the simulator without a layout tool.

Lesson
E7.7
Time
25 min
Runs on
ngspice
Check
6 questions

An input pair was drawn as two transistors side by side, and every die from one wafer came back with its offset shifted the same way. The oxide grew slightly thicker across the pair, so one threshold sat higher than the other on every die.

DC sweepOffset a threshold gradient adds to a side-by-side pairOTA-A as a follower, each device of its pair cut into four fingers in a row: AAAABBBB. The gradient raises each finger's threshold by a fixed step per finger pitch.
00.5 mV1.0 mV1.5 mV2.0 mV2.5 mV3.0 mV3.5 mV4.0 mV4.5 mVAdded offset00.2 mV0.4 mV0.6 mV0.8 mV1.0 mVGradient per finger3.97 mV at 1 mV per finger01 mV2 mV3 mV4 mV5 mVAdded offset00.5 mV1.0 mVGradient per finger3.97 mV at 1 mV per finger
Read the plot as a table
Gradient per fingeradded offset, AAAABBBB
0 V0 V
200 µV794 µV
400 µV1.588 mV
600 µV2.382 mV
800 µV3.176 mV
1 mV3.97 mV

Measured on ngspice 42: the added offset is the follower's offset minus its offset with no gradient.

A schematic Monte Carlo draws random mismatch with no idea where devices sit, so it cannot show this.

Random differences and gradients

Two devices drawn alike differ in two ways. Random mismatch (E7.4, E7.5) differs on every die and shrinks as the square root of the area. A gradient is a slow change across the chip in oxide thickness, doping, temperature or stress. It shifts each device by an amount set by its position, the same way on every die of a wafer.

Layout cannot remove a gradient, but it can make both devices see the same average of it. The trick is to cut each device into fingers, smaller transistors in parallel, and to choose which finger goes where.

The simulator models it with one source per finger. A threshold shift ΔVth acts like a voltage taken off the gate, as E5.4's mismatch sources did. So each finger gets a gate source worth its position (0 to 7 along the row) times the gradient.

Two of the eight fingersFinger A (position p) belongs to M1, finger B (position q) to M2.
Two of the eight fingers++EA​−g·pA finger2.5/1B finger2.5/1EB​−g·qinoutxouttail
  1. A gradient along the row

    A gradient g per finger pitch raises the threshold of the finger at position p by g·p. Its gate source takes g·p off the gate, with the same effect.

  2. Both devices average their fingers

    M1 is four A fingers in parallel, M2 four B fingers. Each acts like one transistor shifted by the average of its fingers: for a linear gradient, by g times its centre.

Read the circuit as text
  • E_A voltage source (−g·p): + → n1, − → n2
  • A finger NMOS transistor (2.5/1): gate → n1, drain → n3, source → n4
  • B finger NMOS transistor (2.5/1): gate → n5, drain → n6, source → n4
  • E_B voltage source (−g·q): + → n5, − → n7
  • in port: terminal → n2
  • out port: terminal → n7
  • x port: terminal → n3
  • out port: terminal → n6
  • tail port: terminal → n4

Eight such fingers make the pair: W = 2.5 µm each, 10 µm per device, as OTA-A's 10/1 pair.

Placement against a gradient

Three ways to place four A fingers and four B fingers on eight positions. The centre of each device is the average of its finger positions.

Placement01234567Centre of ACentre of B
AAAABBBBAAAABBBB1.55.5
ABABABABABABABAB3.04.0
ABBAABBAABBAABBA3.53.5

Side by side (AAAABBBB), interdigitated (ABABABAB) and common centroid (ABBAABBA).

Under a linear gradient the offset is g times the distance between the two centres. That is 4g side by side, g interdigitated and 0 for the common centroid, whose devices share one centre.

DC sweepAdded offset under a linear gradient, three placementsThe same follower and the same gradient; only the assignment of fingers to M1 and M2 changes.
  • AAAABBBB, side by side
  • ABABABAB, interdigitated
  • ABBAABBA, common centroid
00.5 mV1.0 mV1.5 mV2.0 mV2.5 mV3.0 mV3.5 mV4.0 mV4.5 mVAdded offset00.2 mV0.4 mV0.6 mV0.8 mV1.0 mVGradient per finger01 mV2 mV3 mV4 mV5 mVAdded offset00.5 mV1.0 mVGradient per finger
  1. Gradient per finger 1 mVAAAABBBB, side by side = 3.97 mV · ABABABAB, interdigitated = 999.6 µV · ABBAABBA, common centroid = 22.47 µV

    At 1 mV per finger: 3.97 mV side by side, 1.00 mV interdigitated and 22 µV for the common centroid. The hand numbers are 4, 1 and 0 mV.

    More context

    The last 22 µV come from the curvature of the drain current: fingers with different thresholds carry slightly different currents, and the average of a curve is not the curve of the average.

Read the plot as a table
Gradient per fingerAAAABBBB, side by sideABABABAB, interdigitatedABBAABBA, common centroid
0 V0 V0 V0 V
200 µV794 µV200 µV2.539 µV
400 µV1.588 mV400 µV6.054 µV
600 µV2.382 mV599.9 µV10.55 µV
800 µV3.176 mV799.8 µV16.02 µV
1 mV3.97 mV999.6 µV22.47 µV

Measured on ngspice 42 (21 points per placement).

Real gradients are not perfectly straight. The next run bends the gradient: the shift grows as the square of the position, 0.1 mV × p2 at the end of the sweep. Now equal centres are not enough, because a square weighs far positions more.

DC sweepAdded offset under a curved gradient, three placementsThe threshold shift of a finger at position p is c·p2; the x axis is 10c, so 1 mV means c = 0.1 mV per finger².
  • AAAABBBB, side by side
  • ABABABAB, interdigitated
  • ABBAABBA, common centroid
-0.5 mV00.5 mV1.0 mV1.5 mV2.0 mV2.5 mV3.0 mVAdded offset00.2 mV0.4 mV0.6 mV0.8 mV1.0 mVGradient scale (10c)-1 mV01 mV2 mV3 mVAdded offset00.5 mV1.0 mVGradient scale (10c)
  1. Gradient scale (10c) 1 mVAAAABBBB, side by side = 2.768 mV · ABABABAB, interdigitated = 688.8 µV · ABBAABBA, common centroid = -184.9 µV

    At c = 0.1 mV per finger²: 2.77 mV side by side, 0.69 mV interdigitated, −0.18 mV for the common centroid. The averages of p2 give 28c, 7c and −2c: 2.8, 0.7 and −0.2 mV.

Read the plot as a table
Gradient scale (10c)AAAABBBB, side by sideABABABAB, interdigitatedABBAABBA, common centroid
0 V0 V0 V0 V
200 µV555 µV139.2 µV-38.25 µV
400 µV1.109 mV277.7 µV-75.87 µV
600 µV1.663 mV415.5 µV-112.8 µV
800 µV2.216 mV552.5 µV-149.2 µV
1 mV2.768 mV688.8 µV-184.9 µV

Measured on ngspice 42 (21 points per placement).

The common centroid cancels the linear part of any gradient and shrinks the rest. In two dimensions the cross-coupled quad does the same in both directions. It places A B in one row and B A below, so both centres sit in the middle of the square.

Row ends and dummy fingers

The common centroid has a weakness of its own: ABBAABBA puts both ends of the row on A. The fingers share one strip of diffusion, and the trench oxide around it squeezes the silicon most near its edges. So an end finger has a different threshold and mobility from an inner one.

The SKY130 model includes this length-of-diffusion effect through SA and SB, the distances from a gate to the two ends of its strip; the run sets them per finger. A dummy finger is an extra transistor at each end that carries no current: it only pushes the edge away from the active fingers.

DC sweepOffset with 0 to 3 dummy fingers at each end of the rowOffset (output − input) of the follower, no gradient.
  • ABBAABBA, common centroid
  • AAAABBBB, side by side
-6.5 mV-6.0 mV-5.5 mV-5.0 mV-4.5 mV-4.0 mV-3.5 mV-3.0 mV-2.5 mVOffset00.51.01.52.02.53.0Dummy fingers at each end-7 mV-6 mV-5 mV-4 mV-3 mV-2 mVOffset0123Dummy fingers at each end
  1. Dummy fingers at each end 0ABBAABBA, common centroid = -5.928 mV · AAAABBBB, side by side = -2.684 mV

    No dummies: the common centroid sits at −5.93 mV, −3.24 mV away from the side-by-side pair (−2.68 mV). Its two end fingers both belong to M1.

  2. Dummy fingers at each end 1ABBAABBA, common centroid = -3.301 mV · AAAABBBB, side by side = -2.69 mV

    One dummy at each end: the difference shrinks to −0.61 mV.

  3. Dummy fingers at each end 3ABBAABBA, common centroid = -2.814 mV · AAAABBBB, side by side = -2.694 mV

    Three dummies: −0.12 mV. The side-by-side pair hardly moves: each of its devices has one end finger.

Read the plot as a table
Dummy fingers at each endABBAABBA, common centroidAAAABBBB, side by side
0-5.928 mV-2.684 mV
0.5-4.614 mV-2.687 mV
1-3.301 mV-2.69 mV
1.5-3.115 mV-2.692 mV
2-2.929 mV-2.693 mV
2.5-2.872 mV-2.693 mV
3-2.814 mV-2.694 mV

ngspice 42, SKY130 stress model. Assumed: 0.3 µm from the outer gate to the strip edge, 1.5 µm gate pitch.

With no dummies the end effect adds −3.24 mV to the common centroid. The first dummy at each end cuts it more than five times. AAAABBBB (like ABABABAB) is a mirror image end to end, so it cancels the end effect but fails against a gradient. A careful layout uses both: common centroid in the middle, dummies at the ends.

What else layout does, and what this lesson models

  1. Same orientation

    Implants arrive at a small angle and stress differs with direction, so matched devices point the same way.

  2. Close together

    A gradient grows with distance, so matched devices sit side by side with the same neighbours.

  3. Symmetric wiring

    Equal wire lengths and contacts make series resistance and parasitic capacitance match too.

  4. Guard rings

    A guard ring is a ring of substrate or well contacts around a sensitive block. Current a noisy neighbour pushes into the substrate leaves through it instead of moving the analog devices' body voltage.

Asked in interviews
  1. What is common-centroid layout, and how does it differ from interdigitation?

    Fingers placed so both devices share one centre (ABBA, or the AB/BA quad), so a linear gradient shifts both alike. Interdigitation (ABAB) only brings the centres close: 1 mV here, against 4 mV side by side and 0 for ABBAABBA.

  2. Why use dummy devices?

    End fingers see different surroundings (etch, trench stress). Dummies take the end positions: on the SKY130 model one dummy per end cut an ABBAABBA pair's end effect from 3.24 to 0.61 mV.

  3. Can a schematic Monte Carlo predict a gradient-induced offset? What does a guard ring do?

    No: Monte Carlo mismatch knows no positions; gradients and edge effects need the layout. A guard ring collects substrate current from noisy neighbours before it reaches sensitive devices.

Try it

Run it: systematic is the follower's offset with no gradient, gradient_offset the offset that 1 mV per finger pitch adds to the AAAABBBB placement.

Now edit the .param line to a1=0 a2=3 a3=4 a4=7 b1=1 b2=2 b3=5 b4=6 (ABBAABBA) and predict the result before you run. Then change .func grad(p) {p} to {p*p/10} to bend the gradient, and try a1=0 a2=2 a3=4 a4=6 b1=1 b2=3 b3=5 b4=7 (ABABABAB) under both shapes.

SPICEngspice 42 · simulator service
Edit the netlist, then run it
Expected measurements: systematic = -2.683659e-03 gradient_offset = 3.969981e-03

Check yourself

Predict the outputThe finger pair placed AAAABBBB (A at 0-3, B at 4-7) under a linear gradient of 1 mV per finger pitch. The netlist prints the offset the gradient adds, in mV, rounded to a whole number. Type the line meas prints (format: offset_mv = 2.000000e+00).
* AAAABBBB under a gradient of 1 mV per finger: the offset it adds, in mV, rounded to a whole number
.lib sky130 tt
.func grad(p) {p}
.subckt otag inp out vdd gr a1=0 a2=1 a3=2 a4=3 b1=4 b2=5 b3=6 b4=7
IB vdd nb 20u
XMB nb nb 0 0 sky130_fd_pr__nfet_01v8 W=8 L=1
XM5 tail nb 0 0 sky130_fd_pr__nfet_01v8 W=8 L=1
XM3 x x vdd vdd sky130_fd_pr__pfet_01v8 W=8 L=1
XM4 out x vdd vdd sky130_fd_pr__pfet_01v8 W=8 L=1
* M1 = fingers A1-A4 (gate = +), M2 = fingers B1-B4 (gate = out)
EA1 ga1 inp gr 0 {-grad(a1)}
EA2 ga2 inp gr 0 {-grad(a2)}
EA3 ga3 inp gr 0 {-grad(a3)}
EA4 ga4 inp gr 0 {-grad(a4)}
EB1 gb1 out gr 0 {-grad(b1)}
EB2 gb2 out gr 0 {-grad(b2)}
EB3 gb3 out gr 0 {-grad(b3)}
EB4 gb4 out gr 0 {-grad(b4)}
XA1 x ga1 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XA2 x ga2 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XA3 x ga3 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XA4 x ga4 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XB1 out gb1 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XB2 out gb2 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XB3 out gb3 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
XB4 out gb4 tail 0 sky130_fd_pr__nfet_01v8 W=2.5 L=1
.ends
VDD vdd 0 1.8
VIN in 0 0.9
VGR gr 0 0
X1 in out vdd gr otag a1=0 a2=1 a3=2 a4=3 b1=4 b2=5 b3=6 b4=7
.control
dc VGR 0 1m 1m
let mv = floor(1000*(v(out)-v(out)[0])+0.5)
meas dc offset_mv FIND mv AT=1m
.endc
.end
ConceptWhich placement of four A and four B fingers is common-centroid?
ConceptAn ABBAABBA pair has σ = 1.8 mV of random offset in a Monte Carlo run. Redrawn side by side with the same finger sizes, what σ do you expect?
ConceptUnder the curved gradient, ABBAABBA leaves −0.18 mV of offset where the straight gradient left almost none. Why?
ConceptWhy do the dummy fingers help the common-centroid pair and hardly change the side-by-side one?
ConceptWhat does a guard ring around an analog block protect it from?

Remember

  • Random mismatch differs on every die and falls with area; gradients and edge effects depend on position and shift every die of a wafer the same way.
  • Under a linear gradient the offset is the gradient times the distance between the devices' centres: common centroid (ABBAABBA, or the AB/BA quad) makes it zero; interdigitation only shrinks it.
  • Common centroid leaves curved gradients partly in place and puts the row ends on one device; dummy fingers at the ends remove the end effect.
  • A schematic Monte Carlo cannot see any of this: gradients, edges, orientation and substrate coupling need the layout.