Carrier concentration vs. Fermi energy

For a doped semiconductor, the density of electrons in the conduction band is,

$$n = N_c(T)\exp\left(\frac{E_F-E_c}{k_BT}\right).$$

The density of holes in the valence band is,

$$p = N_v(T)\exp\left(\frac{E_v-E_F}{k_BT}\right).$$

The density of ionized donors is,


and the density of ionized acceptors is,


The factor of 4 is valid in the formula for the acceptors if the semiconductor has a light hole and a heavy hole band as Si and Ge do.

The four quantities $n$, $p$, $N_D$, and $N_A$ can only be determined if the Fermi energy, $E_F$, is known. Typically, $E_F$ must first be determined from the charge neutrality condition,

$$n+N_A^- = p+N_D^+.$$

The Fermi energy can be found by solving the charge neutrality condition numerically. One way to do this is to program the formulas for n, p, Nd+, and Na- in a spreadsheet. Then choose a temperature and calculate n, p, Nd+, Na- for every value of the Fermi energy between Ev and Ec. For one of these Ef values, the charge neutrality condition will be satisfied.

When n + Na- and , p + Nd+ are ploted as a function of EF, the Fermi energy is where the two lines cross. A new plot like the one below can be generated by pressing the 'Replot' button.

log [1/cm³] 

Ef [eV]

Nc(300 K) =


Nv(300 K) =


Nd =


Na =


Ed =


Ea =


Eg =


T =


Normally it is not necessary to determine Ef numerically and the following approximation is sufficient.

n-type Nd > Na:

n = Nd - Na
p = ni²/n
Ef = Ec - kBTln(Nc/(Nd - Na))

p-type Na > Nd:

p = Na - Nd
n = ni²/p
Ef = Ev + kBTln(Nv/(Na - Nd))

The plot is generated with the following code:

for (i=0; i<500; i++) {
  Ef = i*Eg/500;
  Namin = Na/(1+4*exp(1.6022E-19*(Ea-Ef)/(1.38E-23*T)));
  Ndplus = Nd/(1+2*exp(1.6022E-19*(Ef-Ed)/(1.38E-23*T)));