Start-up: the zero-current state

Find the zero-current state of a self-biased reference with a power-up transient, then add a start-up circuit that kicks the loop on and switches itself off.

Lesson
E4.5
Time
25 min
Runs on
ngspice
Check
5 questions

A current reference passed every DC simulation: at 1.8 V it carried 9.166 µA. A power-up simulation, a 10 µs supply ramp from 0 to 1.8 V, found 48 pA at 40 µs: the reference was off, and every block biased from it too.

TransientA beta multiplier after a 10 µs power-up rampThe supply above, the reference current below on a scale that reaches the 9.166 µA the DC solution promised.
  • v(vdd)
  • i_ref
00.5 V1.0 V1.5 V2.0 VSupply02 µA4 µA6 µA8 µA10 µAReference current5 µs10 µs15 µs20 µs25 µs30 µs35 µs40 µsTimeDC solution: 9.166 µAsupply at 1.8 V00.5 V1.0 V1.5 V2.0 VSupply05 µA10 µAReference current10 µs20 µs30 µs40 µsTimeDC solution: 9.166 µAsupply at 1.8 V
  1. Time 10 µsv(vdd) = 1.8 V · i_ref = 138.2 pA

    The supply is at 1.8 V. The reference carries 138 pA, pushed through the devices' capacitances by the ramp.

  2. Time 40 µsv(vdd) = 1.8 V · i_ref = 48.05 pA

    48 pA, more than five orders of magnitude short. Nothing is broken.

Read the plot as a table
Timev(vdd)i_ref
5 µs900 mV60.6 pA
10 µs1.8 V138.2 pA
15 µs1.8 V67.35 pA
20 µs1.8 V62.28 pA
25 µs1.8 V57.94 pA
30 µs1.8 V54.19 pA
35 µs1.8 V50.91 pA
40 µs1.8 V48.05 pA

Measured on ngspice 42 (every point of the run, from tran 0.05u 40u uic).

The DC analysis found one of the circuit's two answers; the power-up found the other.

Two answers to the same equations

The circuit is the beta multiplier of E4.4, a self-biased reference: the circuit sets its own current. A PMOS mirror (XP1, XP2) forces equal currents into XN1 and XN2. XN2 is four times wider, so it needs less gate-source voltage VGS, and the difference sits across RS: VGS1 − VGS2 = I·RS.

The beta multiplier and its start-upLeft and right: the reference of E4.4. Middle: the three start-up devices. Node voltages after start-up.
The beta multiplier and its start-upVDD1.8 VXP14/1XP24/1XN12/1XN28/1RS10 kΩVDDXS10.5/20XS21/1XS32/1a0.775 Vb0.554 Vs91.7 mVx7.76 mV
  1. The working state

    Equal currents in both branches; XN2 carries its share with a smaller VGS, and the difference, 91.7 mV, sits across RS: I = 9.17 µA.

    9.17 µA · 9.17 µA

  2. The zero state

    Set every current to zero. No current in XP2 means none mirrored into XN1, so XN2 is off and XP2 carries nothing. Every equation holds: the loop can rest here.

  3. Power-up: x goes high

    XS1, a long, weak PMOS with its gate at ground, conducts once the supply passes about 1 V. With the reference off, nothing pulls node x down, so XS1 pulls it up.

  4. The kick

    Node x turns XS2 on. XS2 pulls node b, the PMOS gates, down; the PMOS devices push current into both NMOS devices, and the loop grows it to its working value.

    kick

  5. The kick switches off

    Node a rises and turns XS3 on. XS3 is far stronger than XS1, so x falls to a few millivolts and XS2 turns off.

    a turns XS3 on

  6. The price

    XS1 keeps conducting into XS3 for as long as the chip is on: 0.639 µA, the start-up's whole cost.

    0.639 µA

Read the circuit as text
  • XP1 PMOS transistor (4/1): gate → b, source → VDD, drain → a
  • XP2 PMOS transistor (4/1): gate → b, source → VDD, drain → b
  • XN1 NMOS transistor (2/1): gate → a, drain → a, source → 0
  • XN2 NMOS transistor (8/1): gate → a, drain → b, source → s
  • RS resistor (10 kΩ): pin 1 → s, pin 2 → 0
  • XS1 PMOS transistor (0.5/20): gate → 0, source → VDD, drain → x
  • XS2 NMOS transistor (1/1): gate → x, drain → b, source → 0
  • XS3 NMOS transistor (2/1): gate → a, drain → x, source → 0
  • a = 0.775 V
  • b = 0.554 V
  • s = 91.7 mV
  • x = 7.76 mV

W/L in µm. Bodies tied to sources: NMOS bodies to ground, PMOS bodies to VDD. The local VDD and ground symbols are the same nets as the rails.

Step 2 is a second solution of the same equations, the zero-current state. Every self-biased loop has one.

The DC solver returns one answer: it iterates from a guess (E1.2), and from its default guess it lands on the working state. Even a dc sweep of the supply from 0 V, a slow-motion power-up, ends there.

DC sweep of the supply

dc VDD 0 1.8 0.01
let i_bare = v(s1)/10k
meas dc idc FIND i_bare AT=1.8

idc = 9.166121e-06: the working state.

Power-up transient from 0 V

tran 0.05u 40u uic
let i_bare = v(s1)/10k
meas tran ibare FIND i_bare AT=40u

ibare = 4.803593e-11: the zero state.

Both from the lab netlist. uic starts every node at 0 V (E1.3).

The test that tells the truth is a transient from a dead chip: a PWL supply ramp from 0 V and tran ... uic.

How long it stays off

In this model the zero state does not last forever. Every "off" device leaks a little. At picoamps RS drops almost nothing, so XN2 passes about four times what XN1 does, and the loop multiplies the leak on each turn. But picoamps charge the gate capacitances slowly.

TransientThe bare reference finds its own way out, slowlyThe bare reference after a 10 µs ramp at 27 °C, at −40 °C, and at −40 °C with gmin lowered from 1e-12 S to 1e-15 S.
  • 27 °C
  • −40 °C
  • −40 °C, gmin 1e-15
-2 µA02 µA4 µA6 µA8 µA10 µAReference current010 ms20 ms30 ms40 ms50 ms60 msTime-2 µA02 µA4 µA6 µA8 µA10 µAReference current020 ms40 ms60 msTime
  1. Time 235.7 µs27 °C = 3.277 µA · −40 °C = 1.457 pA · −40 °C, gmin 1e-15 = 885.9 fA

    At 27 °C the loop comes to life after 0.24 ms.

  2. Time 2.611 ms27 °C = 9.161 µA · −40 °C = 837.5 nA · −40 °C, gmin 1e-15 = 545 fA

    At −40 °C leakage is far smaller: 2.6 ms.

  3. Time 42.01 ms27 °C = 9.164 µA · −40 °C = 7.464 µA · −40 °C, gmin 1e-15 = 788 nA

    With a smaller gmin, a numerical aid of the simulator, the cold start takes 42 ms: 16 times longer.

Read the plot as a table
Time27 °C−40 °C−40 °C, gmin 1e-15
0 s-105.6 pA5.761 pA5.761 pA
235.7 µs3.277 µA1.457 pA885.9 fA
2.611 ms9.161 µA837.5 nA545 fA
10 ms9.161 µA7.497 µA245.5 fA
20 ms9.162 µA7.485 µA144.6 fA
30 ms9.163 µA7.476 µA148.1 fA
40 ms9.164 µA7.47 µA814.7 fA
42.01 ms9.164 µA7.464 µA788 nA
50 ms9.164 µA7.464 µA7.444 µA
60 ms9.168 µA7.465 µA7.451 µA

Three transients of one netlist, resampled onto one 20 µs grid (linearize); every fifth point drawn.

A start-up time set by leakage is not a design. Leakage moves by decades with temperature and process, and a real chip has leakage paths no model lists, some of which can hold the loop off. The safe statement is the textbook one: a self-biased reference may stay off indefinitely.

A start-up circuit: kick, then step aside

A start-up circuit detects the zero state, pushes current into the loop, then gets out of the way. The schematic's XS1 is a weak pull-up, XS2 the kick and XS3 the off switch. Step through it, then watch the run.

TransientTwo references on one supply ramp, one with a start-upAbove: the currents of the bare copy X1 and of X2 with the start-up. Below: the supply and node x.
  • i_bare
  • i_start
  • v(x)
  • v(vdd)
-2 µA02 µA4 µA6 µA8 µA10 µAReference current-0.5 V00.5 V1.0 V1.5 V2.0 VVoltage5 µs10 µs15 µs20 µs25 µs30 µs35 µs40 µsTime90 %-5 µA05 µA10 µAReference current-1 V01 V2 VVoltage10 µs20 µs30 µs40 µsTime90 %
  1. Time 4.75 µsi_bare = 58.2 pA · i_start = 43.11 pA · v(x) = -206.3 mV · v(vdd) = 855 mV

    At 0.86 V of supply all three start-up devices are off. Node x floats, and charge coupled through the devices pushes it to −0.21 V.

    More context

    Add CX x 0 1p to the lab and the dip almost vanishes: a floating node has almost no capacitance of its own, so a little coupled charge moves it a long way.

  2. Time 5.8 µsi_bare = 65.41 pA · i_start = 164.3 nA · v(x) = 659 mV · v(vdd) = 1.044 V

    Past 1 V, XS1 conducts and x peaks at 0.69 V. XS2 pulls the PMOS gates down and the started copy takes off.

  3. Time 7.944 µsi_bare = 87.68 pA · i_start = 8.25 µA · v(x) = 3.959 mV · v(vdd) = 1.43 V

    90 % of the final current at 7.94 µs, before the ramp ends. XS3 had pulled x back to millivolts by 6 µs: the kick lasted about half a microsecond.

  4. Time 40 µsi_bare = 48.04 pA · i_start = 9.166 µA · v(x) = 7.757 mV · v(vdd) = 1.8 V

    Settled: 9.166 µA against 48 pA. Node x sits at 7.76 mV, so XS2 is off.

Read the plot as a table
Timei_barei_startv(x)v(vdd)
4.75 µs58.2 pA43.11 pA-206.3 mV855 mV
5 µs60.6 pA68.07 pA-192.3 mV900 mV
5.8 µs65.41 pA164.3 nA659 mV1.044 V
7.944 µs87.68 pA8.25 µA3.959 mV1.43 V
10 µs138.2 pA9.198 µA8.517 mV1.8 V
15 µs67.02 pA9.166 µA7.757 mV1.8 V
20 µs62.07 pA9.166 µA7.757 mV1.8 V
25 µs57.81 pA9.166 µA7.757 mV1.8 V
30 µs54.11 pA9.166 µA7.757 mV1.8 V
35 µs50.86 pA9.166 µA7.757 mV1.8 V
40 µs48.04 pA9.166 µA7.757 mV1.8 V

The lab netlist on ngspice 42.

A start-up circuit has three jobs, and each one is a measurement.

JobCheckMeasured on the lab
Start the referenceCurrent after the power-up; time to 90 %istart = 9.166134e-06, t90 = 7.943895e-06
Switch itself offKick node near 0 V; reference current unchangedvx = 7.757244e-03; 9.166134 µA against the DC solution's 9.166121 µA
Cost littleCurrent the start-up draws for everisu = 6.386859e-07 (0.639 µA, through XS1)

A kick that never switches off keeps pulling on node b and changes the reference current.

XS1 is as long as the library allows, L = 20 µm, to keep that cost small.

Every corner, every ramp, every temperature

One good transient proves little. Run the lab once per corner (.lib sky130 <corner>) and temperature (.temp). In SKY130 the corner named sf has the fast NMOS and the slow PMOS (E2.7).

CornerCurrent, 27 °Ct90 at −40 °Ct90 at 27 °Ct90 at 125 °CStart-up draws
tt9.166 µA8.10 µs7.94 µs7.88 µs0.639 µA
ss9.693 µA8.19 µs8.09 µs8.04 µs0.569 µA
ff8.669 µA7.99 µs7.85 µs7.72 µs0.709 µA
sf8.744 µA8.27 µs8.16 µs8.04 µs0.566 µA
fs9.595 µA7.86 µs7.78 µs7.72 µs0.717 µA

X2 after a 10 µs ramp, 15 runs of the lab netlist; t90 is the time to 90 % of the current at 40 µs. With a 1 ms ramp, t90 lay between 0.77 and 0.83 ms.

Now the bare copy after a slow 1 ms ramp, read 50 µs after the ramp ends:

Corner−40 °C27 °C125 °C
tt2.33 pA (off)9.168 µA12.13 µA
ss1.34 pA (off)1.57 nA (off)12.80 µA
ff3.88 pA (off)8.668 µA11.49 µA
sf6.21 pA (off)8.740 µA11.68 µA
fs0.766 pA (off)9.826 µA12.58 µA

X1 at 1.05 ms.

At 27 °C a slow ramp gives leakage time. There the bare reference looks fine in four corners; in ss it is still off. Cold, it is off in every corner. Test only warm and you ship the bug.

Asked in interviews
  1. Why does a self-biased reference need a start-up circuit?

    Its loop has two solutions, the working one and zero current in every branch, and can power up in the second. A start-up circuit injects current while the reference is off and stops once it runs.

  2. How do you verify start-up in simulation?

    With a transient from 0 V: a PWL supply ramp and tran with uic, then read the reference current after the ramp. Repeat for fast and slow ramps, every corner, the lowest supply and the coldest temperature. op and dc find the working state, so they prove nothing.

  3. What must a start-up circuit do after start-up?

    Turn off and stay off. Its injection device carries no current, and the reference current is the same with and without it. Its standing current is small: a long, weak pull-up, here 0.64 µA.

Try it

Run it and read the lines in order: the DC sweep's answer, the bare copy after the ramp, the started copy, its time to 90 %, its node voltages, the kick node and the start-up's standing current. Open Plots to see the transient.

Then break it and test it. Change XS3 x a2 0 0 to XS3 x 0 0 0, so the off switch never turns on: the kick stays on and istart rises to about 15 µA. Put the line back. Change the ramp to PWL(0 0 1m 1.8) and the transient to tran 1u 1.05m uic with every AT=40u changed to AT=1.05m. Add .temp -40 and watch ibare stay off. Finally try .lib sky130 ss.

SPICEngspice 42 · simulator service
Edit the netlist, then run it
Expected measurements: idc = 9.166121e-06 ibare = 4.803593e-11 istart = 9.166134e-06 t90 = 7.943895e-06 va = 7.749849e-01 vb = 5.544214e-01 vx = 7.757244e-03 isu = 6.386859e-07

Check yourself

Predict the outputThis netlist powers up the bare beta multiplier with a 10 µs ramp and prints its current 40 µs later, in microamps rounded to a whole number. The DC solution at 1.8 V is 9.166 µA. Type the line meas prints (for example iua40 = 9.000000e+00).
* The bare beta multiplier 40 us into a 10 us power-up ramp
.lib sky130 tt
VDD vdd 0 DC 1.8 PWL(0 0 10u 1.8)
XP1 a b vdd vdd sky130_fd_pr__pfet_01v8 W=4 L=1
XP2 b b vdd vdd sky130_fd_pr__pfet_01v8 W=4 L=1
XN1 a a 0 0 sky130_fd_pr__nfet_01v8 W=2 L=1
XN2 b a s 0 sky130_fd_pr__nfet_01v8 W=8 L=1
RS s 0 10k
.control
tran 0.05u 40u uic
* the reference current in microamps, rounded to a whole number
let iua = floor(v(s)/10k/1u + 0.5)
meas tran iua40 FIND iua AT=40u
.endc
.end
ConceptWhy does op, or a dc sweep of VDD, never show you the zero-current state of a self-biased reference?
ConceptIn the two-reference plot, v(x) rises once the supply passes about 1 V, peaks at 0.69 V near 5.8 µs and falls back to 7.76 mV. What pulls node x back down?
ConceptWhich start-up never switches off? (Each replaces the three start-up lines of the lab.)
ConceptAt 27 °C the bare reference starts by itself 0.24 ms after power-up. Why is that not a reason to leave the start-up out?

Remember

  • A self-biased reference has two DC solutions: the working state and a zero-current state where every branch carries nothing.
  • op and dc report only the working state; a power-up transient from 0 V (PWL ramp, tran ... uic) is the test that finds the other one.
  • A start-up circuit pulls the loop out of zero (XS1 and XS2) and must switch itself off once the reference runs (XS3); check its standing current and that the reference current is unchanged.
  • Verify start-up at every corner, at fast and slow ramps and at the coldest temperature, where leakage is smallest and a slow ramp no longer hides the zero state.