半導体の基礎 — エネルギーバンドからキャリア伝導まで

スマートフォン、パソコン、人工衛星の姿勢制御コンピュータ — 現代の電子機器はすべて「半導体」の上に成り立っています。では、なぜシリコンは金属のような完全な導体でも、ガラスのような絶縁体でもなく、その中間の不思議な性質を持つのでしょうか。

半導体(semiconductor) は、外部条件(温度、光、不純物の添加など)によって導電性を劇的に変化させられる物質です。この「制御可能な導電性」こそが、トランジスタ、ダイオード、太陽電池、LEDといったデバイスの動作原理の根幹にあります。

半導体の物理を理解すると、次のような幅広い応用が見えてきます。

  • トランジスタとIC設計: 電流のスイッチングと増幅の仕組みを物理的に理解できる
  • 太陽電池と光検出器: pn接合における光電変換のメカニズムが理解できる
  • パワーエレクトロニクス: SiCやGaNといったワイドバンドギャップ半導体の優位性がわかる

本記事の内容

  • 導体・半導体・絶縁体のバンド構造
  • 真性半導体とフェルミ分布によるキャリア濃度の導出
  • n型/p型ドーピングの原理
  • ドリフト電流と拡散電流
  • Pythonでの可視化(フェルミ分布の温度依存性、キャリア濃度の計算)

前提知識

この記事を読む前に、以下の知識があると理解がスムーズです。

  • 量子力学の基礎(波動関数、エネルギー準位の概念)
  • 基本的な統計力学(ボルツマン分布の考え方)

エネルギーバンド構造

孤立原子から固体へ — バンドの形成

1個のシリコン原子は、水素原子と同じように離散的なエネルギー準位を持っています。電子はこれらの準位のどれかに「住んで」おり、準位間のエネルギーには電子が存在できない禁止された領域があります。

ところが、原子が $10^{22}$ 個/cm$^3$ のオーダーで密集して結晶を形成すると、状況は一変します。隣接する原子の電子軌道が重なり合い、パウリの排他原理によって各準位がわずかにずれて、ほぼ連続的なエネルギーバンドを形成します。

このバンド形成を直感的にイメージするなら、1本の音叉は単一の周波数で振動しますが、1000本の微妙に長さの違う音叉を並べると、ほぼ連続的な音のスペクトルが生まれるのと似ています。個々の原子の「離散的な音程」が、結晶という集団の中で「バンド」になるのです。

半導体の電子状態を理解する上で重要なのは、次の2つのバンドです。

$$ \text{価電子帯(Valence Band)}: \text{電子で満たされたバンド(最上端エネルギー } E_v \text{)} $$

$$ \text{伝導帯(Conduction Band)}: \text{電子が空のバンド(最下端エネルギー } E_c \text{)} $$

この2つのバンドの間のエネルギー領域をバンドギャップ(禁制帯) $E_g = E_c – E_v$ と呼び、電子が存在できない領域です。

導体・半導体・絶縁体の違い

物質の導電性は、バンドギャップの大きさによって分類できます。

物質の種類 バンドギャップ $E_g$ 特徴
導体(金属) 0 eV(バンドが重なる) 価電子帯と伝導帯が重なるか、バンドが部分的に満たされている。電子は自由に移動可能
半導体 0.1 〜 3 eV 程度 絶対零度では絶縁体だが、室温の熱エネルギーで一部の電子が伝導帯に励起される
絶縁体 5 eV 以上 バンドギャップが大きすぎて、室温では電子がほとんど励起されない

重要なのは、半導体と絶縁体の違いは本質的な違いではなく、程度の違いだということです。ダイヤモンド($E_g \approx 5.5$ eV)は通常は絶縁体ですが、高温や紫外線照射によって導電性を示すことがあります。

代表的な半導体のバンドギャップを以下に示します。

材料 $E_g$ (eV) @ 300 K 用途
Ge(ゲルマニウム) 0.66 赤外検出器
Si(シリコン) 1.12 IC、太陽電池
GaAs(ガリウムヒ素) 1.42 高速IC、LED
SiC(炭化ケイ素) 3.26 パワーデバイス
GaN(窒化ガリウム) 3.39 青色LED、パワーデバイス

バンドギャップの大きさが物質の導電性を決めることがわかりました。次に、有限温度で電子がどのようにバンド間を移動するかを、統計力学の力を借りて定量的に調べましょう。

フェルミ・ディラック分布とキャリア濃度

フェルミ分布関数

固体中の電子はフェルミ粒子(フェルミオン)であり、パウリの排他原理に従います。有限温度 $T$ において、エネルギー $E$ の状態が電子に占有される確率はフェルミ・ディラック分布関数で与えられます。

この分布は「部屋の中の席の埋まり具合」にたとえるとわかりやすくなります。絶対零度では低いエネルギーの席から順にきっちり埋まり、ある境界(フェルミエネルギー)を超えると完全に空席になります。温度が上がると、境界付近の席で「立ち上がる人」と「空席に座る人」が出てきて、占有確率が鋭いステップからなだらかなカーブに変わります。

$$ f(E) = \frac{1}{1 + \exp\left(\frac{E – E_F}{k_B T}\right)} $$

ここで $E_F$ はフェルミエネルギー、$k_B = 1.381 \times 10^{-23}$ J/K はボルツマン定数です。

この関数のいくつかの重要な性質を確認しておきましょう。

  • $E = E_F$ のとき: $f(E_F) = 1/2$。フェルミエネルギーでの占有確率はちょうど50%です。
  • $E \gg E_F$ のとき: $f(E) \approx \exp\left(-\frac{E-E_F}{k_B T}\right) \to 0$。ボルツマン分布に近似できます。
  • $E \ll E_F$ のとき: $f(E) \to 1$。確実に占有されています。
  • $T \to 0$ のとき: $f(E)$ はステップ関数になり、$E < E_F$ で 1、$E > E_F$ で 0 です。

温度 $T$ の効果は「裾の広がり」として現れ、その幅は $k_B T$ のオーダーです。室温($T = 300$ K)では $k_B T \approx 0.026$ eV であり、シリコンのバンドギャップ 1.12 eV に比べて非常に小さいことに注意してください。

状態密度

フェルミ分布は「各エネルギーの席が埋まる確率」を教えてくれますが、キャリア濃度を計算するにはもう一つの情報が必要です。それは「各エネルギーに席がいくつあるか」、すなわち状態密度(Density of States) $g(E)$ です。

伝導帯の底 $E_c$ 付近では、電子の有効質量 $m_e^*$ を使って放物線近似が成り立ちます。

$$ g_c(E) = \frac{4\pi (2m_e^*)^{3/2}}{h^3} \sqrt{E – E_c} \quad (E \geq E_c) $$

同様に、価電子帯の頂上 $E_v$ 付近では正孔の有効質量 $m_h^*$ を使って、

$$ g_v(E) = \frac{4\pi (2m_h^*)^{3/2}}{h^3} \sqrt{E_v – E} \quad (E \leq E_v) $$

状態密度はバンド端から離れるほど $\sqrt{E}$ で増加します。これは「エネルギーが高いほど利用可能な量子状態が多い」ことを反映しています。3次元の箱の中の粒子を考えると、高いエネルギーに対応する波数ベクトル $\bm{k}$ の組み合わせがより多くなることがその理由です。

伝導帯の電子濃度

伝導帯の電子濃度 $n$ は、状態密度と占有確率の積を伝導帯全体で積分して求められます。

$$ n = \int_{E_c}^{\infty} g_c(E) \, f(E) \, dE $$

伝導帯の底 $E_c$ がフェルミエネルギー $E_F$ より十分上($E_c – E_F \gg k_B T$)の場合、フェルミ分布をボルツマン近似で置き換えられます。

$$ f(E) \approx \exp\left(-\frac{E – E_F}{k_B T}\right) $$

この近似のもとで積分を実行します。$\eta = (E – E_c)/(k_B T)$ と変数変換すると、

$$ n = \frac{4\pi (2m_e^* k_B T)^{3/2}}{h^3} \exp\left(-\frac{E_c – E_F}{k_B T}\right) \int_0^{\infty} \sqrt{\eta} \, e^{-\eta} \, d\eta $$

最後の積分はガンマ関数 $\Gamma(3/2) = \sqrt{\pi}/2$ であることを使うと、

$$ n = 2\left(\frac{2\pi m_e^* k_B T}{h^2}\right)^{3/2} \exp\left(-\frac{E_c – E_F}{k_B T}\right) $$

ここで有効状態密度 $N_c$ を定義します。

$$ N_c = 2\left(\frac{2\pi m_e^* k_B T}{h^2}\right)^{3/2} $$

すると電子濃度は簡潔に表せます。

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

価電子帯の正孔濃度

同様に、価電子帯の正孔濃度 $p$ も導出できます。正孔は「電子が抜けた穴」なので、正孔の占有確率は $1 – f(E)$ です。

$$ p = \int_{-\infty}^{E_v} g_v(E) \, [1 – f(E)] \, dE $$

ボルツマン近似を適用すると、

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

ここで $N_v$ は価電子帯の有効状態密度です。

$$ N_v = 2\left(\frac{2\pi m_h^* k_B T}{h^2}\right)^{3/2} $$

質量作用の法則

$n$ と $p$ の積を取ると、$E_F$ が消去されて非常に重要な関係式が得られます。

$$ np = N_c N_v \exp\left(-\frac{E_c – E_v}{k_B T}\right) = N_c N_v \exp\left(-\frac{E_g}{k_B T}\right) = n_i^2 $$

この関係を質量作用の法則と呼びます。$n_i$ は真性キャリア濃度であり、温度とバンドギャップだけで決まる物質固有の量です。

$$ n_i = \sqrt{N_c N_v} \exp\left(-\frac{E_g}{2k_B T}\right) $$

シリコンの場合、$T = 300$ K で $n_i \approx 1.5 \times 10^{10}$ cm$^{-3}$ です。シリコンの原子密度 $5 \times 10^{22}$ cm$^{-3}$ に比べてはるかに小さく、室温では $10^{12}$ 個に1個程度の原子だけが電子-正孔対を生成していることがわかります。

キャリア濃度の理論がわかったところで、次に半導体の導電性を積極的に制御するドーピングの原理を見ていきましょう。

ドーピングとキャリア制御

n型半導体

シリコン(Si、4価)の結晶にリン(P、5価)を少量添加する場合を考えます。リンの5つの価電子のうち4つはシリコンとの共有結合に使われ、残りの1つは結晶中で弱く束縛されるだけです。この余分な電子は室温のわずかな熱エネルギーで容易に伝導帯に放出されます。

このような不純物をドナー(供与体) と呼び、ドナー準位 $E_D$ は伝導帯の底 $E_c$ のすぐ下(シリコン中のリンでは $E_c – E_D \approx 0.045$ eV)に位置します。$k_B T \approx 0.026$ eV と比較すると、この束縛エネルギーは室温の熱エネルギーと同程度であり、ほぼすべてのドナーが電子を放出(イオン化)します。

ドナー濃度 $N_D$ のn型半導体では、電荷中性条件から次が成り立ちます。

$$ n \approx N_D \quad (\text{完全イオン化時}) $$

質量作用の法則 $np = n_i^2$ から正孔濃度は次のように決まります。

$$ p = \frac{n_i^2}{N_D} $$

たとえば $N_D = 10^{16}$ cm$^{-3}$ のn型シリコンでは、$n \approx 10^{16}$ cm$^{-3}$、$p \approx 2.25 \times 10^{4}$ cm$^{-3}$ となり、正孔濃度は電子濃度の $10^{12}$ 倍も小さくなります。電子が多数キャリア、正孔が少数キャリアです。

p型半導体

逆に、シリコンにボロン(B、3価)を添加すると、共有結合に電子が1つ足りず、近くの電子を引き抜いて正孔を生成します。このような不純物をアクセプタ(受容体) と呼び、アクセプタ準位 $E_A$ は価電子帯の頂上 $E_v$ のすぐ上に位置します。

アクセプタ濃度 $N_A$ のp型半導体では、

$$ p \approx N_A, \quad n = \frac{n_i^2}{N_A} $$

となり、正孔が多数キャリア、電子が少数キャリアとなります。

フェルミエネルギーの移動

ドーピングによってキャリア濃度が変化すると、フェルミエネルギーの位置も移動します。$n = N_c \exp(-(E_c – E_F)/(k_B T))$ を $E_F$ について解くと、

$$ E_F = E_c – k_B T \ln\left(\frac{N_c}{n}\right) $$

n型半導体($n = N_D$)では $N_D$ が大きいほど $E_F$ は $E_c$ に近づきます。逆にp型半導体では $E_F$ は $E_v$ に近づきます。

真性半導体($n = p = n_i$)のフェルミエネルギー $E_i$ は、$N_c$ と $N_v$ が等しければバンドギャップの中央に位置します。実際には有効質量の違いから若干ずれますが、おおよそ中央と考えて差し支えありません。

$$ E_i \approx \frac{E_c + E_v}{2} + \frac{k_B T}{2} \ln\left(\frac{N_v}{N_c}\right) $$

ドーピングによるキャリアの制御ができたところで、次はこれらのキャリアがどのように電流を運ぶかを見ていきましょう。

ドリフト電流と拡散電流

ドリフト電流 — 電界による輸送

半導体に外部電界 $\mathcal{E}$ を印加すると、電子は電界と反対方向に、正孔は電界の方向にそれぞれ加速されます。しかし、結晶格子との衝突(散乱)によって平均的な速度(ドリフト速度)は一定値に落ち着きます。

電子のドリフト速度は電界に比例し、その比例係数を移動度(mobility) $\mu_n$ と呼びます。

$$ v_{d,n} = -\mu_n \mathcal{E} $$

負号は電子が電界と逆方向に動くことを表します。正孔のドリフト速度は次のとおりです。

$$ v_{d,p} = \mu_p \mathcal{E} $$

電流密度 $J$ は「キャリア濃度 $\times$ 電荷 $\times$ ドリフト速度」で与えられます。電子と正孔の寄与を合わせると、

$$ J_{\text{drift}} = (n q \mu_n + p q \mu_p) \mathcal{E} = \sigma \mathcal{E} $$

ここで $q = 1.602 \times 10^{-19}$ C は素電荷、$\sigma$ は導電率です。この式はオームの法則のミクロスコピックな表現にほかなりません。

シリコンの室温での移動度は $\mu_n \approx 1350$ cm$^2$/(V$\cdot$s)(電子)、$\mu_p \approx 480$ cm$^2$/(V$\cdot$s)(正孔)であり、電子のほうが正孔より約3倍速く移動できます。これは伝導帯と価電子帯の有効質量の違いを反映しています。

拡散電流 — 濃度勾配による輸送

半導体中では、電界がなくてもキャリアが移動するメカニズムがあります。キャリア濃度に勾配がある場合、濃度の高い方から低い方へ自発的に拡散が起こります。これは部屋の一角でスプレーを噴射すると匂いが部屋全体に広がるのと同じ現象です。

電子の拡散電流密度は、フィックの第一法則に従います。

$$ J_{n,\text{diff}} = q D_n \frac{dn}{dx} $$

ここで $D_n$ は電子の拡散係数です。正孔の拡散電流密度は、

$$ J_{p,\text{diff}} = -q D_p \frac{dp}{dx} $$

負号は正孔が正の電荷を持つにもかかわらず濃度の減少方向に拡散するため、電流の向きが逆になることを反映しています。

アインシュタインの関係式

移動度と拡散係数は独立なパラメータではなく、アインシュタインの関係式で結ばれています。

$$ \frac{D_n}{\mu_n} = \frac{D_p}{\mu_p} = \frac{k_B T}{q} = V_T $$

$V_T = k_B T / q$ は熱電圧と呼ばれ、室温(300 K)では約 26 mV です。この関係式は、ドリフトと拡散が熱平衡状態でバランスすることから導かれます。

直感的には、移動度が大きい(電界に敏感に反応する)キャリアほど、拡散もしやすい(ランダム運動が活発)という対応です。

全電流密度

ドリフトと拡散を合わせた全電流密度は次のように書けます。

$$ J_n = q n \mu_n \mathcal{E} + q D_n \frac{dn}{dx} $$

$$ J_p = q p \mu_p \mathcal{E} – q D_p \frac{dp}{dx} $$

$$ J = J_n + J_p $$

このドリフト・拡散モデルは半導体デバイス解析の基本方程式であり、ダイオード、トランジスタ、太陽電池など、あらゆるデバイスの動作を記述するための出発点になります。

理論の準備ができたところで、Pythonを使ってこれらの概念を可視化してみましょう。

Pythonによるフェルミ分布の可視化

フェルミ分布の温度依存性

フェルミ分布が温度によってどのように変化するかを可視化します。絶対零度でのステップ関数から、温度上昇とともに裾が広がっていく様子を観察しましょう。

import numpy as np
import matplotlib.pyplot as plt

# 定数
kB = 8.617e-5  # ボルツマン定数 [eV/K]
EF = 0.56      # フェルミエネルギー [eV](バンドギャップ中央付近)

# エネルギー範囲
E = np.linspace(0, 1.2, 500)

# 温度リスト
temperatures = [50, 150, 300, 500, 800]
colors = ['#1a237e', '#1565c0', '#00897b', '#f57c00', '#d32f2f']

fig, ax = plt.subplots(figsize=(10, 6))

for T, color in zip(temperatures, colors):
    if T == 0:
        f_E = np.where(E < EF, 1.0, 0.0)
    else:
        f_E = 1 / (1 + np.exp((E - EF) / (kB * T)))
    ax.plot(E, f_E, color=color, linewidth=2, label=f'T = {T} K')

# フェルミエネルギーの位置
ax.axvline(EF, color='gray', linestyle='--', alpha=0.5)
ax.axhline(0.5, color='gray', linestyle=':', alpha=0.3)
ax.text(EF + 0.02, 0.52, '$E_F$', fontsize=13, color='gray')

# Siのバンド端を表示
Ec = 1.12  # 伝導帯の底(Eg = 1.12 eVとして)
Ev = 0.0   # 価電子帯の頂上
ax.axvspan(Ev, Ec, alpha=0.05, color='yellow')
ax.annotate('$E_v$', xy=(Ev, 0), xytext=(Ev - 0.08, -0.08),
            fontsize=12, color='#555555')
ax.annotate('$E_c$', xy=(Ec, 0), xytext=(Ec - 0.03, -0.08),
            fontsize=12, color='#555555')

ax.set_xlabel('Energy $E$ [eV]', fontsize=13)
ax.set_ylabel('$f(E)$', fontsize=13)
ax.set_title('Fermi-Dirac Distribution at Various Temperatures',
             fontsize=14, fontweight='bold')
ax.legend(fontsize=11)
ax.set_ylim(-0.05, 1.05)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

このグラフからフェルミ分布の重要な特徴が明確に読み取れます。

  1. 低温(50 K) では分布がほぼステップ関数に近く、$E_F$ を境にして占有確率が急激に 1 から 0 に切り替わります。熱エネルギー $k_B T$ がフェルミエネルギーに比べて非常に小さいためです。
  2. 室温(300 K) では裾が $E_F$ の周囲 $\pm 0.1$ eV 程度に広がっています。しかしこの幅はシリコンのバンドギャップ 1.12 eV に比べてなお小さく、伝導帯に励起される電子の割合はごくわずかです。
  3. 高温(800 K) では裾の広がりが著しくなり、伝導帯の底 $E_c$ 付近でも有意な占有確率が生じます。これは高温でキャリア濃度が急増することを意味し、実際のデバイスでは温度上昇による特性変動として問題になります。

バンド図とキャリア分布

次に、状態密度とフェルミ分布の積からキャリア分布を計算し、バンド図と合わせて可視化します。

import numpy as np
import matplotlib.pyplot as plt

# 物理定数
kB = 8.617e-5      # ボルツマン定数 [eV/K]
h_eV = 4.136e-15   # プランク定数 [eV*s]
m0 = 9.109e-31     # 電子の質量 [kg]
kB_SI = 1.381e-23  # [J/K]
h_SI = 6.626e-34   # [J*s]

# シリコンのパラメータ
Eg = 1.12       # バンドギャップ [eV]
Ev = 0.0        # 価電子帯の頂上
Ec = Eg         # 伝導帯の底
me_star = 1.08  # 電子の有効質量比
mh_star = 0.56  # 正孔の有効質量比

T = 300  # 温度 [K]
EF = Eg / 2  # 真性半導体のフェルミエネルギー(近似)

# 状態密度(任意スケール)
def dos_conduction(E, T):
    """伝導帯の状態密度"""
    mask = E >= Ec
    result = np.zeros_like(E)
    result[mask] = np.sqrt(E[mask] - Ec)
    return result

def dos_valence(E, T):
    """価電子帯の状態密度"""
    mask = E <= Ev
    result = np.zeros_like(E)
    result[mask] = np.sqrt(Ev - E[mask])
    return result

# フェルミ分布
def fermi(E, EF, T):
    """フェルミ・ディラック分布関数"""
    exponent = (E - EF) / (kB * T)
    exponent = np.clip(exponent, -500, 500)
    return 1 / (1 + np.exp(exponent))

# エネルギー範囲
E_cb = np.linspace(Ec, Ec + 0.3, 300)  # 伝導帯
E_vb = np.linspace(Ev - 0.3, Ev, 300)  # 価電子帯

# 計算
gc = dos_conduction(E_cb, T)
gv = dos_valence(E_vb, T)
f_cb = fermi(E_cb, EF, T)
f_vb = 1 - fermi(E_vb, EF, T)  # 正孔の占有確率

# キャリア分布(状態密度 × 占有確率)
n_dist = gc * f_cb
p_dist = gv * f_vb

# 正規化(見やすさのため)
scale = max(n_dist.max(), p_dist.max())
if scale > 0:
    n_dist /= scale
    p_dist /= scale
    gc /= gc.max() if gc.max() > 0 else 1
    gv /= gv.max() if gv.max() > 0 else 1

fig, axes = plt.subplots(1, 3, figsize=(15, 6), sharey=True)

# (a) 状態密度
ax = axes[0]
ax.plot(gc, E_cb, 'b-', linewidth=2, label='$g_c(E)$')
ax.plot(gv, E_vb, 'r-', linewidth=2, label='$g_v(E)$')
ax.axhspan(Ev, Ec, alpha=0.1, color='yellow')
ax.axhline(Ec, color='blue', linestyle='--', alpha=0.3)
ax.axhline(Ev, color='red', linestyle='--', alpha=0.3)
ax.text(0.5, (Ec + Ev)/2, 'Band gap\n$E_g$ = 1.12 eV',
        ha='center', va='center', fontsize=10, color='#888888')
ax.set_xlabel('Density of States (a.u.)', fontsize=12)
ax.set_ylabel('Energy $E$ [eV]', fontsize=12)
ax.set_title('(a) Density of States', fontsize=13, fontweight='bold')
ax.legend(fontsize=10)
ax.set_ylim(-0.3, 1.5)
ax.grid(True, alpha=0.3)

# (b) フェルミ分布
ax = axes[1]
E_full = np.linspace(-0.3, 1.5, 500)
f_full = fermi(E_full, EF, T)
ax.plot(f_full, E_full, 'k-', linewidth=2)
ax.axhline(EF, color='green', linestyle='--', alpha=0.5)
ax.text(0.55, EF + 0.03, f'$E_F$ = {EF:.2f} eV', fontsize=10,
        color='green')
ax.axhspan(Ev, Ec, alpha=0.1, color='yellow')
ax.set_xlabel('$f(E)$', fontsize=12)
ax.set_title('(b) Fermi Distribution', fontsize=13, fontweight='bold')
ax.grid(True, alpha=0.3)

# (c) キャリア分布
ax = axes[2]
ax.fill_betweenx(E_cb, 0, n_dist, alpha=0.4, color='blue',
                 label='Electrons $g_c \\cdot f$')
ax.fill_betweenx(E_vb, 0, p_dist, alpha=0.4, color='red',
                 label='Holes $g_v \\cdot (1-f)$')
ax.axhspan(Ev, Ec, alpha=0.1, color='yellow')
ax.set_xlabel('Carrier Distribution (a.u.)', fontsize=12)
ax.set_title('(c) Carrier Distribution', fontsize=13, fontweight='bold')
ax.legend(fontsize=10, loc='upper right')
ax.grid(True, alpha=0.3)

plt.suptitle(f'Energy Band Diagram of Intrinsic Si at T = {T} K',
             fontsize=14, fontweight='bold', y=1.02)
plt.tight_layout()
plt.show()

3つのパネルを比較することで、キャリア分布の物理的な意味が明確に理解できます。

  1. (a) 状態密度 はバンド端から $\sqrt{E}$ で増加しますが、バンドギャップ内にはゼロです。これが半導体の「ギャップ」の物理的意味であり、電子が存在できるエネルギー状態がこの領域にはありません。
  2. (b) フェルミ分布 はバンドギャップの中央付近で $f = 0.5$ となり、伝導帯の底では $f$ がきわめて小さい値になっています。これは室温の熱エネルギーがバンドギャップに比べてはるかに小さいことの現れです。
  3. (c) キャリア分布 を見ると、電子(青)も正孔(赤)もバンド端の非常に狭い領域に集中しています。これは状態密度の $\sqrt{E}$ 増加とフェルミ分布の指数関数的減少が競合し、バンド端からわずか数 $k_B T$ 以内にキャリアがほぼ集中するためです。

キャリア濃度の温度依存性

最後に、真性キャリア濃度 $n_i$ の温度依存性を計算し、バンドギャップの違いがどのような影響を与えるかを確認します。

import numpy as np
import matplotlib.pyplot as plt

# 物理定数
kB = 8.617e-5      # [eV/K]
kB_SI = 1.381e-23  # [J/K]
h_SI = 6.626e-34   # [J*s]
m0 = 9.109e-31     # [kg]
q = 1.602e-19      # [C]

def intrinsic_concentration(T, Eg, me_star, mh_star):
    """真性キャリア濃度 ni [cm^-3] を計算"""
    # 有効状態密度
    Nc = 2 * (2 * np.pi * me_star * m0 * kB_SI * T / h_SI**2)**1.5
    Nv = 2 * (2 * np.pi * mh_star * m0 * kB_SI * T / h_SI**2)**1.5
    # m^-3 -> cm^-3
    Nc *= 1e-6
    Nv *= 1e-6
    ni = np.sqrt(Nc * Nv) * np.exp(-Eg / (2 * kB * T))
    return ni

# 温度範囲
T = np.linspace(200, 600, 500)

# 半導体パラメータ
materials = {
    'Ge': {'Eg': 0.66, 'me': 0.55, 'mh': 0.37, 'color': '#d32f2f'},
    'Si': {'Eg': 1.12, 'me': 1.08, 'mh': 0.56, 'color': '#1565c0'},
    'GaAs': {'Eg': 1.42, 'me': 0.067, 'mh': 0.45, 'color': '#2e7d32'},
    'SiC (4H)': {'Eg': 3.26, 'me': 0.42, 'mh': 1.0, 'color': '#f57c00'},
}

fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# (a) ni vs T(対数スケール)
ax = axes[0]
for name, params in materials.items():
    ni = intrinsic_concentration(T, params['Eg'], params['me'], params['mh'])
    ax.semilogy(T, ni, color=params['color'], linewidth=2,
                label=f"{name} ($E_g$ = {params['Eg']} eV)")

ax.set_xlabel('Temperature $T$ [K]', fontsize=12)
ax.set_ylabel('$n_i$ [cm$^{-3}$]', fontsize=12)
ax.set_title('(a) Intrinsic Carrier Concentration vs Temperature',
             fontsize=13, fontweight='bold')
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3, which='both')
ax.set_ylim(1e-10, 1e20)

# (b) ni vs 1000/T(アレニウスプロット)
ax = axes[1]
T_inv = 1000 / T
for name, params in materials.items():
    ni = intrinsic_concentration(T, params['Eg'], params['me'], params['mh'])
    ax.semilogy(T_inv, ni, color=params['color'], linewidth=2,
                label=f"{name}")

ax.set_xlabel('1000/$T$ [1/K]', fontsize=12)
ax.set_ylabel('$n_i$ [cm$^{-3}$]', fontsize=12)
ax.set_title('(b) Arrhenius Plot of $n_i$',
             fontsize=13, fontweight='bold')
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3, which='both')

plt.tight_layout()
plt.show()

# 室温の値を表示
print("=== 真性キャリア濃度 @ 300 K ===")
for name, params in materials.items():
    ni_300 = intrinsic_concentration(300, params['Eg'],
                                      params['me'], params['mh'])
    print(f"{name:10s}: ni = {ni_300:.3e} cm^-3")

2つのグラフから、半導体の温度特性について以下のことが読み取れます。

  1. (a) 線形温度プロット では、すべての材料で $n_i$ が温度とともに急激に増加しています。Ge($E_g = 0.66$ eV)は室温でも $n_i \approx 10^{13}$ cm$^{-3}$ と比較的大きく、Si($n_i \approx 10^{10}$ cm$^{-3}$)より3桁も多くなっています。一方、SiC($E_g = 3.26$ eV)は室温では $n_i$ がきわめて小さく、高温でもリーク電流が小さいためパワーデバイスに適しています。
  2. (b) アレニウスプロット($\ln n_i$ vs $1/T$)では、各材料がほぼ直線を描いています。これは $n_i \propto \exp(-E_g/(2k_BT))$ という指数関数的依存性を反映しており、直線の傾きからバンドギャップの大きさを読み取ることができます。傾きが急なほど $E_g$ が大きいことを意味し、SiCの線が最も急勾配であることが確認できます。
  3. 実用的な観点では、デバイスの動作温度上限はおおよそ $n_i$ がドーピング濃度に匹敵する温度で決まります。$N_D = 10^{16}$ cm$^{-3}$ のSiでは約200度C、SiCでは600度C以上まで動作可能であり、これがSiCパワーデバイスの大きな利点です。

まとめ

本記事では、半導体の基礎物理をエネルギーバンド構造からキャリア伝導まで体系的に解説しました。

  • バンド構造: 導体・半導体・絶縁体の違いはバンドギャップ $E_g$ の大きさで決まる
  • フェルミ分布とキャリア濃度: $n = N_c \exp(-(E_c – E_F)/(k_B T))$ で電子濃度が決まり、質量作用の法則 $np = n_i^2$ が常に成り立つ
  • ドーピング: ドナー(n型)やアクセプタ(p型)不純物の添加でキャリア濃度を $10^{14}$ 〜 $10^{18}$ cm$^{-3}$ の広い範囲で制御できる
  • 電流輸送: ドリフト電流(電界駆動)と拡散電流(濃度勾配駆動)の2つの機構があり、アインシュタインの関係式 $D/\mu = k_B T/q$ で結ばれている

これらの基礎概念は、ダイオード、トランジスタ、太陽電池などすべての半導体デバイスを理解するための土台です。

次のステップとして、以下の記事も参考にしてください。