0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MOSFET の3次元 I–V モデルの基本式

Posted at

1. MOSFET の3次元 I–V モデルの基本式

MOSFET のドレイン電流 $I_D$ は ゲート電圧 $V_{GS}$ドレイン–ソース電圧 $V_{DS}$ の2変数で決まり、3D空間 $(V_{GS}, V_{DS}, I_D)$ に曲面を作ります。

古典的なShichman–Hodgesモデル(長チャネルMOSFET強反転領域)では:

(1) カットオフ領域(off)

$$
V_{GS} \le V_{th} \quad\Rightarrow\quad I_D \approx 0
$$

ゲート電圧がしきい値未満 → チャネル形成されず。


(2) 線形領域(Triode)

$$
V_{GS} > V_{th},\quad V_{DS} < V_{GS} - V_{th}
$$

$$
I_D = \mu C_{ox} \frac{W}{L} \left[ (V_{GS} - V_{th})V_{DS} - \frac{V_{DS}^2}{2} \right]
$$

  • パラボラ形の V_DS 依存:電圧が小さいとオーム的振る舞い(抵抗)
  • W/L比と移動度 μ がゲイン係数を決定

(3) 飽和領域(Saturation)

$$
V_{GS} > V_{th},\quad V_{DS} \ge V_{GS} - V_{th}
$$

チャネルピンチオフ後もドレイン電流はほぼ一定:

$$
I_D = \frac{1}{2} \mu C_{ox} \frac{W}{L} (V_{GS} - V_{th})^2 ,(1+\lambda V_{DS})
$$

  • 最初の項:理想的な飽和電流
  • $1+\lambda V_{DS}$ はチャネル長変調(出力抵抗有限化)
  • λ が0なら本当に水平な飽和特性

2. 三次元的な見方

  • X軸:$V_{DS}$(ドレイン–ソース電圧)
  • Y軸:$V_{GS}$(ゲート–ソース電圧)
  • Z軸:$I_D$(ドレイン電流)

この3D面は、

  • $V_{GS}$ を一定にすると、I_D–V_{DS}曲線(出力特性)
  • $V_{DS}$ を一定にすると、I_D–V_{GS}曲線(転送特性)
    が得られる。

3. gm と ro の関係(微分的な3D情報)

  • トランスコンダクタンス $g_m$

$$
g_m = \frac{\partial I_D}{\partial V_{GS}}\bigg|{V{DS}=\text{const}}
= \mu C_{ox} \frac{W}{L} (V_{GS} - V_{th})
$$

飽和領域では一定の V_DS で gm は $V_{GS}$ に比例。

  • 出力コンダクタンス $g_{ds}$

$$
g_{ds} = \frac{\partial I_D}{\partial V_{DS}}\bigg|{V{GS}=\text{const}}
\approx \lambda I_D
$$

逆数は出力抵抗 $r_o$。


4. 三次元式の総合形(1つの式で表現)

条件分けを含めた一式で書くと:

$$
I_D(V_{GS},V_{DS}) =
\begin{cases}
0, & V_{GS} \le V_{th} \
\mu C_{ox} \frac{W}{L} \left[ (V_{GS} - V_{th})V_{DS} - \frac{V_{DS}^2}{2} \right], & V_{GS}>V_{th},\ V_{DS} < V_{GS} - V_{th} \
\frac{1}{2} \mu C_{ox} \frac{W}{L} (V_{GS} - V_{th})^2 (1+\lambda V_{DS}), & V_{GS}>V_{th},\ V_{DS} \ge V_{GS} - V_{th}
\end{cases}
$$

Pythonコード

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# パラメータ設定(例として仮定)
mu = 200e-4  # 移動度 (cm^2/Vs) → 200 cm^2/Vs
Cox = 1e-3  # ゲート酸化膜容量 (F/m^2) → 1 mF/m^2(適当なスケール)
W = 10e-6   # チャネル幅 (m)
L = 1e-6    # チャネル長 (m)
Vth = 1.0   # しきい値電圧 (V)
lambd = 0.1 # チャネル長変調パラメータ (1/V)

# 電圧範囲
VGS = np.linspace(0, 3, 100)  # 0V から 3V
VDS = np.linspace(0, 3, 100)  # 0V から 3V
VGS, VDS = np.meshgrid(VGS, VDS)

# IDの計算関数
def ID(VGS, VDS, mu, Cox, W, L, Vth, lambd):
    ID = np.zeros_like(VGS)
    for i in range(len(VDS)):
        for j in range(len(VGS)):
            if VGS[i, j] <= Vth:
                ID[i, j] = 0  # カットオフ領域
            elif VDS[i, j] < (VGS[i, j] - Vth):
                ID[i, j] = mu * Cox * (W / L) * ((VGS[i, j] - Vth) * VDS[i, j] - VDS[i, j]**2 / 2)  # 線形領域
            else:
                ID[i, j] = 0.5 * mu * Cox * (W / L) * (VGS[i, j] - Vth)**2 * (1 + lambd * VDS[i, j])  # 飽和領域
    return ID

# ドレイン電流計算
ID = ID(VGS, VDS, mu, Cox, W, L, Vth, lambd)

# 3Dプロットの作成
fig = plt.figure(figsize=(12, 6))

# 3D曲面
ax1 = fig.add_subplot(121, projection='3d')
surf = ax1.plot_surface(VGS, VDS, ID, cmap='viridis', edgecolor='none')
ax1.set_xlabel('V_GS (V)')
ax1.set_ylabel('V_DS (V)')
ax1.set_zlabel('I_D (A)')
ax1.set_title('3D I_D vs V_GS vs V_DS')
fig.colorbar(surf, ax=ax1, label='I_D (A)')

# 等高線図
ax2 = fig.add_subplot(122)
contour = ax2.contourf(VGS, VDS, ID, levels=20, cmap='viridis')
ax2.set_xlabel('V_GS (V)')
ax2.set_ylabel('V_DS (V)')
ax2.set_title('Contour Plot of I_D')
fig.colorbar(contour, ax=ax2, label='I_D (A)')

plt.tight_layout()
plt.show()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?