Corners and PVT sign-off
Run an op-amp across process corners, supply and temperature, find the worst case of each spec and where it sits, and tell a corner run from a Monte Carlo run.
- Lesson
- E7.6
- Time
- 30 min
- Runs on
- ngspice
- Check
- 6 questions
OPA-B, the two-stage op-amp of E5.5, was signed off at the typical corner, 1.8 V and 27 °C, with 80.8 dB of open-loop gain and 60.1° of phase margin. Parts from a wafer with fast NMOS and slow PMOS, run cold on a supply 10 % low, had 60.1 dB: as a buffer, the gain error grew from 0.009 % to 0.098 %.
- sf, 1.8 V, 27 °C
- sf, 1.62 V, −40 °C
Read the plot as a table
| Frequency | sf, 1.8 V, 27 °C | sf, 1.62 V, −40 °C |
|---|---|---|
| 1 Hz | 79.77 dB | 60.13 dB |
| 10 Hz | 79.77 dB | 60.13 dB |
| 100 Hz | 79.76 dB | 60.13 dB |
| 1 kHz | 79.17 dB | 60.12 dB |
| 10 kHz | 67.83 dB | 59.42 dB |
| 100 kHz | 48.11 dB | 47.38 dB |
| 1 MHz | 28.11 dB | 27.61 dB |
| 10 MHz | 7.725 dB | 7.411 dB |
| 100 MHz | -18.93 dB | -17 dB |
| 1 GHz | -49.24 dB | -45.32 dB |
The sf corner run on ngspice 42; loop opened by 1 TH and 1 F, 2 pF load.
A typical-corner run shows one chip out of the whole spread.
What a process corner moves
Every wafer comes out a little different, and all its NMOS run faster or slower together. A process corner is a model set that moves all transistors of one type to an edge of the foundry's spread at once. SKY130 has five: tt (typical), ff (fast NMOS, fast PMOS), ss (slow, slow), and the skewed sf and fs.
A corner is global: every transistor of a type moves the same way. Mismatch (E7.4, E7.5) is local: each transistor moves alone. A corner run has no mismatch, and a Monte Carlo run sits at one corner.
Each corner run also measures one NMOS and one PMOS (W/L = 2/0.15, |VGS| = 0.9 V, |VDS| = 1.8 V), which shows the way each type moved.
| Corner | NMOS current | PMOS current | Reads as |
|---|---|---|---|
tt | 113.7 µA | 39.8 µA | typical |
ff | 156.5 µA | 67.0 µA | fast NMOS, fast PMOS |
ss | 80.5 µA | 21.2 µA | slow NMOS, slow PMOS |
sf | 154.7 µA | 24.8 µA | fast NMOS, slow PMOS |
fs | 77.4 µA | 56.8 µA | slow NMOS, fast PMOS |
Measured at 27 °C in each corner run. A current above the tt value means a fast device.
Read the skewed names with care. In this library sf measures as the fast NMOS (154.7 µA against 113.7 µA at tt) with the slow PMOS (24.8 µA against 39.8 µA). That is the reverse of the usual reading, first letter NMOS, and of the comment at the top of the library file. Check any corner the same way: one device of each type, one run.
Forty-five runs of one op-amp
A PVT sign-off crosses process with supply voltage and temperature. This lesson uses 1.62, 1.8 and 1.98 V (±10 % around 1.8 V) and −40, 27 and 125 °C. Five corners times three supplies times three temperatures is 45 settings. Each corner is one run, and inside it the supplies and the temperature step through nine settings.
Every setting measures OPA-B's loop: the open-loop gain A0 at 1 Hz, the unity-gain frequency fu and the phase margin, on the 1 TH / 1 F bench of E6.3, into 2 pF. Here is the typical corner at 1.8 V and three temperatures.
- tt, 1.8 V, −40 °C
- tt, 1.8 V, 27 °C
- tt, 1.8 V, 125 °C
- Frequency 1 Hztt, 1.8 V, −40 °C = 81.14 dB · tt, 1.8 V, 27 °C = 80.84 dB · tt, 1.8 V, 125 °C = 79.91 dB
At 1 Hz the three temperatures agree within 1.3 dB: 81.1 dB, 80.8 dB and 79.9 dB.
- Frequency 21.52 MHztt, 1.8 V, −40 °C = 1.682 dB · tt, 1.8 V, 27 °C = -0.06367 dB · tt, 1.8 V, 125 °C = -2.37 dB
At 27 °C the loop gain crosses 0 dB at 21.5 MHz. At −40 °C it crosses at 25.4 MHz, at 125 °C at 17.7 MHz; the phase margin goes from 64.2° cold to 56.1° hot.
Read the plot as a table
| Frequency | tt, 1.8 V, −40 °C | tt, 1.8 V, 27 °C | tt, 1.8 V, 125 °C |
|---|---|---|---|
| 1 Hz | 81.14 dB | 80.84 dB | 79.91 dB |
| 10 Hz | 81.14 dB | 80.84 dB | 79.91 dB |
| 100 Hz | 81.14 dB | 80.83 dB | 79.9 dB |
| 1 kHz | 80.51 dB | 80.09 dB | 79.06 dB |
| 10 kHz | 68.93 dB | 67.84 dB | 66.37 dB |
| 100 kHz | 49.19 dB | 48.06 dB | 46.56 dB |
| 1 MHz | 29.19 dB | 28.06 dB | 26.56 dB |
| 10 MHz | 8.981 dB | 7.681 dB | 5.938 dB |
| 21.52 MHz | 1.682 dB | -0.06367 dB | -2.37 dB |
| 100 MHz | -15.63 dB | -18.89 dB | -22.89 dB |
| 1 GHz | -47.24 dB | -48.96 dB | -50.69 dB |
The tt corner run on ngspice 42; loop opened by 1 TH and 1 F, 2 pF load.
Each spec at the sign-off point, and its worst and best over all 45 settings:
| Spec | tt, 1.8 V, 27 °C | Worst of 45 | Best of 45 |
|---|---|---|---|
| A0 | 80.8 dB | 60.1 dB (sf, 1.62 V, −40 °C) | 83.6 dB (fs, 1.98 V, −40 °C) |
| fu | 21.5 MHz | 17.3 MHz (ss, 1.62 V, 125 °C) | 25.8 MHz (ff, 1.98 V, −40 °C) |
| Phase margin | 60.1° | 55.7° (sf, 1.98 V, 125 °C) | 66.8° (sf, 1.62 V, −40 °C) |
| Supply current | 79.5 µA | 79.9 µA (ss, 1.98 V, 125 °C) | 79.2 µA (ff, 1.62 V, −40 °C) |
| Iref (resistor reference) | 20.0 µA | 15.9 µA (fs, 1.62 V, −40 °C) | 24.2 µA (sf, 1.98 V, 125 °C) |
| Slew rate (on Iref) | 16.4 V/µs | 7.6 V/µs (sf, 1.62 V, −40 °C) | 20.3 V/µs (sf, 1.98 V, −40 °C) |
All 45 settings, five corner runs on ngspice 42. Worst means lowest, except for the supply current. The last two rows come from the buffer biased by the resistor reference of the last section.
Three patterns stand out. The gain falls furthest at sf, 1.62 V, most when cold (60.1 dB). The phase margin and fu follow temperature in every corner and barely notice the process, except at that setting. And the supply current hardly moves at all.
Open all 45 settings
| Corner | Supply | Temperature | A0 | fu | Phase margin | Supply current | Iref | Slew rate |
|---|---|---|---|---|---|---|---|---|
tt | 1.62 V | −40 °C | 72.6 dB | 24.7 MHz | 64.5° | 79.2 µA | 16.4 µA | 12.4 V/µs |
tt | 1.62 V | 27 °C | 74.8 dB | 21.1 MHz | 60.3° | 79.5 µA | 17.0 µA | 13.1 V/µs |
tt | 1.62 V | 125 °C | 75.9 dB | 17.5 MHz | 56.3° | 79.8 µA | 17.6 µA | 13.1 V/µs |
tt | 1.8 V | −40 °C | 81.1 dB | 25.4 MHz | 64.2° | 79.3 µA | 19.5 µA | 16.8 V/µs |
tt | 1.8 V | 27 °C | 80.8 dB | 21.5 MHz | 60.1° | 79.5 µA | 20.0 µA | 16.4 V/µs |
tt | 1.8 V | 125 °C | 79.9 dB | 17.7 MHz | 56.1° | 79.8 µA | 20.7 µA | 15.5 V/µs |
tt | 1.98 V | −40 °C | 83.3 dB | 25.6 MHz | 64.2° | 79.3 µA | 22.7 µA | 19.7 V/µs |
tt | 1.98 V | 27 °C | 82.8 dB | 21.6 MHz | 60.1° | 79.5 µA | 23.2 µA | 18.9 V/µs |
tt | 1.98 V | 125 °C | 81.7 dB | 17.7 MHz | 56.1° | 79.8 µA | 23.7 µA | 17.6 V/µs |
ff | 1.62 V | −40 °C | 72.6 dB | 24.9 MHz | 64.6° | 79.2 µA | 16.7 µA | 12.7 V/µs |
ff | 1.62 V | 27 °C | 74.8 dB | 21.3 MHz | 60.3° | 79.4 µA | 17.2 µA | 13.3 V/µs |
ff | 1.62 V | 125 °C | 75.9 dB | 17.6 MHz | 56.3° | 79.7 µA | 17.9 µA | 13.3 V/µs |
ff | 1.8 V | −40 °C | 81.1 dB | 25.7 MHz | 64.3° | 79.2 µA | 19.8 µA | 17.1 V/µs |
ff | 1.8 V | 27 °C | 80.8 dB | 21.7 MHz | 60.1° | 79.4 µA | 20.3 µA | 16.7 V/µs |
ff | 1.8 V | 125 °C | 79.8 dB | 17.8 MHz | 56.1° | 79.7 µA | 21.0 µA | 15.7 V/µs |
ff | 1.98 V | −40 °C | 83.2 dB | 25.8 MHz | 64.3° | 79.2 µA | 23.0 µA | 20.1 V/µs |
ff | 1.98 V | 27 °C | 82.7 dB | 21.8 MHz | 60.1° | 79.4 µA | 23.4 µA | 19.3 V/µs |
ff | 1.98 V | 125 °C | 81.6 dB | 17.9 MHz | 56.1° | 79.7 µA | 24.0 µA | 17.9 V/µs |
ss | 1.62 V | −40 °C | 72.6 dB | 24.4 MHz | 64.5° | 79.3 µA | 16.1 µA | 12.2 V/µs |
ss | 1.62 V | 27 °C | 74.8 dB | 20.9 MHz | 60.3° | 79.6 µA | 16.7 µA | 12.8 V/µs |
ss | 1.62 V | 125 °C | 75.9 dB | 17.3 MHz | 56.3° | 79.9 µA | 17.3 µA | 12.8 V/µs |
ss | 1.8 V | −40 °C | 81.2 dB | 25.1 MHz | 64.2° | 79.3 µA | 19.2 µA | 16.4 V/µs |
ss | 1.8 V | 27 °C | 80.9 dB | 21.3 MHz | 60.1° | 79.6 µA | 19.8 µA | 16.0 V/µs |
ss | 1.8 V | 125 °C | 80.0 dB | 17.5 MHz | 56.2° | 79.9 µA | 20.4 µA | 15.2 V/µs |
ss | 1.98 V | −40 °C | 83.3 dB | 25.3 MHz | 64.2° | 79.4 µA | 22.4 µA | 19.3 V/µs |
ss | 1.98 V | 27 °C | 82.9 dB | 21.4 MHz | 60.1° | 79.6 µA | 22.9 µA | 18.6 V/µs |
ss | 1.98 V | 125 °C | 81.7 dB | 17.6 MHz | 56.1° | 79.9 µA | 23.5 µA | 17.3 V/µs |
sf | 1.62 V | −40 °C | 60.1 dB | 21.9 MHz | 66.8° | 79.2 µA | 16.9 µA | 7.6 V/µs |
sf | 1.62 V | 27 °C | 67.7 dB | 20.4 MHz | 60.8° | 79.5 µA | 17.4 µA | 10.7 V/µs |
sf | 1.62 V | 125 °C | 72.8 dB | 17.4 MHz | 56.2° | 79.8 µA | 18.1 µA | 12.5 V/µs |
sf | 1.8 V | −40 °C | 79.8 dB | 25.5 MHz | 63.8° | 79.3 µA | 20.0 µA | 17.2 V/µs |
sf | 1.8 V | 27 °C | 79.8 dB | 21.6 MHz | 59.7° | 79.5 µA | 20.5 µA | 16.7 V/µs |
sf | 1.8 V | 125 °C | 79.2 dB | 17.7 MHz | 55.8° | 79.8 µA | 21.2 µA | 15.8 V/µs |
sf | 1.98 V | −40 °C | 82.8 dB | 25.7 MHz | 63.8° | 79.3 µA | 23.2 µA | 20.3 V/µs |
sf | 1.98 V | 27 °C | 82.4 dB | 21.7 MHz | 59.7° | 79.6 µA | 23.6 µA | 19.4 V/µs |
sf | 1.98 V | 125 °C | 81.4 dB | 17.8 MHz | 55.7° | 79.8 µA | 24.2 µA | 18.0 V/µs |
fs | 1.62 V | −40 °C | 77.4 dB | 24.9 MHz | 64.8° | 79.2 µA | 15.9 µA | 13.3 V/µs |
fs | 1.62 V | 27 °C | 77.8 dB | 21.2 MHz | 60.6° | 79.5 µA | 16.5 µA | 13.3 V/µs |
fs | 1.62 V | 125 °C | 77.5 dB | 17.4 MHz | 56.6° | 79.7 µA | 17.1 µA | 12.9 V/µs |
fs | 1.8 V | −40 °C | 82.0 dB | 25.2 MHz | 64.7° | 79.2 µA | 19.0 µA | 16.2 V/µs |
fs | 1.8 V | 27 °C | 81.5 dB | 21.4 MHz | 60.5° | 79.5 µA | 19.6 µA | 15.9 V/µs |
fs | 1.8 V | 125 °C | 80.4 dB | 17.6 MHz | 56.5° | 79.7 µA | 20.2 µA | 15.1 V/µs |
fs | 1.98 V | −40 °C | 83.6 dB | 25.4 MHz | 64.8° | 79.2 µA | 22.2 µA | 19.1 V/µs |
fs | 1.98 V | 27 °C | 83.1 dB | 21.5 MHz | 60.5° | 79.5 µA | 22.7 µA | 18.4 V/µs |
fs | 1.98 V | 125 °C | 81.9 dB | 17.6 MHz | 56.6° | 79.8 µA | 23.3 µA | 17.2 V/µs |
Every value from the five corner runs; the figures pin each one.
- ff, 1.8 V, −40 °C
- ff, 1.8 V, 27 °C
- ff, 1.8 V, 125 °C
- ff, 1.62 V, −40 °C
Read the plot as a table
| Frequency | ff, 1.8 V, −40 °C | ff, 1.8 V, 27 °C | ff, 1.8 V, 125 °C | ff, 1.62 V, −40 °C |
|---|---|---|---|---|
| 1 Hz | 81.09 dB | 80.78 dB | 79.84 dB | 72.64 dB |
| 10 Hz | 81.09 dB | 80.78 dB | 79.84 dB | 72.64 dB |
| 100 Hz | 81.08 dB | 80.77 dB | 79.83 dB | 72.64 dB |
| 1 kHz | 80.48 dB | 80.05 dB | 79.01 dB | 72.54 dB |
| 10 kHz | 69 dB | 67.91 dB | 66.43 dB | 67.41 dB |
| 100 kHz | 49.27 dB | 48.14 dB | 46.63 dB | 48.94 dB |
| 1 MHz | 29.28 dB | 28.14 dB | 26.63 dB | 28.96 dB |
| 10 MHz | 9.065 dB | 7.761 dB | 6.016 dB | 8.746 dB |
| 100 MHz | -15.5 dB | -18.76 dB | -22.77 dB | -15.81 dB |
| 1 GHz | -47.38 dB | -49.08 dB | -50.81 dB | -46.64 dB |
The ff corner run on ngspice 42; loop opened by 1 TH and 1 F, 2 pF load.
- ss, 1.8 V, −40 °C
- ss, 1.8 V, 27 °C
- ss, 1.8 V, 125 °C
- ss, 1.62 V, −40 °C
Read the plot as a table
| Frequency | ss, 1.8 V, −40 °C | ss, 1.8 V, 27 °C | ss, 1.8 V, 125 °C | ss, 1.62 V, −40 °C |
|---|---|---|---|---|
| 1 Hz | 81.19 dB | 80.9 dB | 79.99 dB | 72.58 dB |
| 10 Hz | 81.19 dB | 80.9 dB | 79.99 dB | 72.58 dB |
| 100 Hz | 81.19 dB | 80.9 dB | 79.98 dB | 72.58 dB |
| 1 kHz | 80.54 dB | 80.13 dB | 79.11 dB | 72.48 dB |
| 10 kHz | 68.84 dB | 67.76 dB | 66.29 dB | 67.27 dB |
| 100 kHz | 49.1 dB | 47.98 dB | 46.48 dB | 48.76 dB |
| 1 MHz | 29.1 dB | 27.98 dB | 26.47 dB | 28.78 dB |
| 10 MHz | 8.886 dB | 7.592 dB | 5.852 dB | 8.562 dB |
| 100 MHz | -15.77 dB | -19.02 dB | -23.02 dB | -16.09 dB |
| 1 GHz | -47.05 dB | -48.79 dB | -50.54 dB | -46.35 dB |
The ss corner run on ngspice 42; loop opened by 1 TH and 1 F, 2 pF load.
- fs, 1.8 V, −40 °C
- fs, 1.8 V, 27 °C
- fs, 1.8 V, 125 °C
- fs, 1.62 V, −40 °C
Read the plot as a table
| Frequency | fs, 1.8 V, −40 °C | fs, 1.8 V, 27 °C | fs, 1.8 V, 125 °C | fs, 1.62 V, −40 °C |
|---|---|---|---|---|
| 1 Hz | 81.97 dB | 81.53 dB | 80.4 dB | 77.43 dB |
| 10 Hz | 81.97 dB | 81.53 dB | 80.4 dB | 77.43 dB |
| 100 Hz | 81.96 dB | 81.52 dB | 80.39 dB | 77.43 dB |
| 1 kHz | 81.2 dB | 80.64 dB | 79.44 dB | 77.14 dB |
| 10 kHz | 68.88 dB | 67.79 dB | 66.3 dB | 68.39 dB |
| 100 kHz | 49.09 dB | 47.97 dB | 46.47 dB | 48.96 dB |
| 1 MHz | 29.09 dB | 27.97 dB | 26.46 dB | 28.96 dB |
| 10 MHz | 8.886 dB | 7.599 dB | 5.856 dB | 8.758 dB |
| 100 MHz | -15.62 dB | -18.88 dB | -22.88 dB | -15.77 dB |
| 1 GHz | -46.8 dB | -48.56 dB | -50.33 dB | -46.57 dB |
The fs corner run on ngspice 42; loop opened by 1 TH and 1 F, 2 pF load.
Why the gain fell, and what the ideal bias hid
The gain fell because the first stage ran out of room. M1 and M2 sit between node x and the tail. Node x is VDD − VSG3, one PMOS gate voltage below the supply. The tail is VCM − VGS1, one NMOS gate voltage below the input. M1 stays in saturation only while VDS1 = x − tail stays above its VDsat.
Slow PMOS
A slow PMOS needs a larger VSG3 for the same current, which pulls x down.
Fast NMOS
A fast NMOS needs a smaller VGS1, which lifts the tail up.
Cold and low supply
Cold raises both thresholds, and a 1.62 V supply takes 180 mV off the top.
Measured
VDS1 − VDsat is 319 mV at tt, 1.8 V, 27 °C; 103 mV at tt, 1.62 V, −40 °C; and 36 mV at sf, 1.62 V, −40 °C. M1 and M2 are almost out of saturation, so their output resistance drops and the gain with it. At fs the same setting leaves 171 mV.
So sf is the corner that squeezes this circuit from both sides. Another circuit has another worst corner: that is why sign-off runs all of them.
The supply current hardly moved, 79.2 µA to 79.9 µA, because OPA-B takes its bias from an ideal 20 µA source that no corner can change. A chip makes that current from a reference. The simplest one is a resistor from the supply into the diode MB: Iref = (VDD − VGS,MB)/RB. With RB = 54.2 kΩ it gives 20.0 µA at tt, 1.8 V, 27 °C.
Across the 45 settings it gives 15.9 µA at fs, 1.62 V, −40 °C and 24.2 µA at sf, 1.98 V, 125 °C. Low supply leaves less voltage across RB, and a slow NMOS or cold needs a larger VGS. Every current in the op-amp copies Iref, and the slew rate of the buffer on it spans 7.6 V/µs to 20.3 V/µs. Its lowest value sits at the same squeezed setting as the gain, sf, 1.62 V, −40 °C, not at the lowest current.
Corners, Monte Carlo and the sign-off plan
Corners and Monte Carlo answer different questions, and sign-off needs both.
| Corner run | Monte Carlo run | |
|---|---|---|
| What moves | Every transistor of a type, the same way | Each transistor alone, at random |
| Models | Wafer-to-wafer and lot-to-lot spread | Mismatch between neighbours |
| Finds | Gain, bandwidth, margin and bias at the edges | Offset and matching errors, as a mean and σ |
| Cost | Five runs per supply and temperature | Hundreds of copies per corner |
A full sign-off runs Monte Carlo at the corners where a matching spec is tightest.
A sign-off plan lists every spec, every corner, the supply range and the temperature range, and reports each spec's worst value and where it sits. Leaving out one axis hides exactly the kind of failure of the hook: at 1.8 V, or at 27 °C alone, the sf gain looked fine.
Asked in interviews
What are process corners, and what is PVT?
Model sets that move all NMOS and all PMOS to the edges of the process spread: tt, ff, ss, sf, fs. PVT crosses them with supply (often ±10 %) and temperature (say −40 to 125 °C); sign-off reports each spec's worst case.
How do corners differ from Monte Carlo?
A corner moves every device of a type together and has no mismatch; Monte Carlo draws each device alone at one corner. Corners find gain, speed and headroom limits; Monte Carlo finds offset as a mean and σ. Sign-off runs Monte Carlo at the critical corners.
Which corner do you expect to be worst for phase margin or gain?
It depends on the circuit, so run them all. In OPA-B the phase margin follows temperature (worst hot, 55.7°). The gain collapses with a slow PMOS, a fast NMOS, low supply and cold, where the first stage loses its headroom.
Try it
Run it: a0 (dB), fu (Hz) and pm (degrees) of the loop, sr in V/µs from the buffer on the resistor reference, isup and iref in amperes, the headroom of M1 (vds1, vdsat1), and the two corner-check currents id_n and id_p.
Now change the three lines at the top to .lib sky130 sf, .temp -40 and .param vdd=1.62, and predict which numbers move before you run. Then try fs at the same supply and temperature, and compare id_n, id_p and vds1 with the corner table.
Run the netlist to draw its plots here.
a0 = 8.084282e+01 id_n = 1.136616e-04Check yourself
Remember
- A process corner moves every transistor of a type together; mismatch moves each one alone. Sign-off needs both.
- In SKY130
sfmeasures as fast NMOS, slow PMOS: check a corner with one device of each type before trusting its name. - PVT sign-off crosses corners with the supply and temperature ranges and reports each spec's worst value and where it sits; leaving out an axis hides failures that need two edges at once.
- An ideal bias source hides the biggest process effect: run the corners with the real reference, whose current moves with process, supply and temperature.