はじめに
MOSFETの性能を理解するためには、しきい値電圧や電流計算式だけでなく、「W/L比」や「V_eff」などのパラメータがどのように影響するかを把握することが重要です。
ここでは、W/L 比が異なる2つのケースについて、以下のパラメータを比較します。
- しきい値電圧 $V_T$
- トランスコンダクタンスの傾き $\frac{\partial g_m}{\partial V_{GS}}$
- アーリ電圧 $V_A$
- キャリア移動度と酸化膜容量の積 $\mu C_{ox}$
比較条件
ケース1(小さいW/L)
- W/L = 2μ / 0.2μ = 10
- (かつ) $V_{DS} = 1.5$ [V]
ケース2(大きいW/L)
- W/L = 20μ / 2μ = 10
- (かつ) $V_{DS} = 3$ [V]
※どちらもW/Lは同じ「10」だが、サイズや電圧条件が異なります。
パラメータ比較(基本)
パラメータ | ケース1 | ケース2 |
---|---|---|
$V_T$(しきい値電圧)[V] | 0.439 | 0.389 |
$\frac{\partial g_m}{\partial V_{GS}}$ [mS/V] | 0.00276 | 0.00231 |
パラメータ比較(V_eff ごと)
アーリ電圧 $V_A$ [V]
$V_{eff}$ [V] | ケース1 | ケース2 |
---|---|---|
0.15 | 2.27 | 25.6 |
0.20 | 3.23 | 32.6 |
0.30 | 5.40 | 47.4 |
$\mu C_{ox}$(移動度 × 酸化膜容量)[μA/V²]
$V_{eff}$ [V] | ケース1 | ケース2 |
---|---|---|
0.15 | 166 | 207 |
0.20 | 188 | 212 |
0.30 | 216 | 217 |
観察ポイント
- W/Lが大きい(ケース2)と、$V_A$が大きくなる → チャネル長変調が小さく、より理想的なスイッチング特性
- $\mu C_{ox}$ は若干向上するが、V_effに対して安定している
- しきい値電圧 $V_T$ は少し低くなる傾向にある
参考:ドレイン電流の式
$$
I_{DS} = \frac{\mu_n C_{ox}}{2} \cdot \frac{W}{L} \cdot (V_{GS} - V_T)^2 \cdot \left(1 + \frac{V_{DS}}{V_A} \right)
$$
これはMOSFETが飽和領域で動作しているときの電流の式です。
まとめ
この比較を通じて、W/L や動作電圧などの設計パラメータがMOSFETの動作にどう影響するかが見えてきます。
特に、回路設計者にとっては以下の点が重要です:
- $V_A$ が大きい → 出力抵抗が大きくなる → ゲインが高くなる
- $\mu C_{ox}$ が大きい → 高速動作や大電流が可能
# Program Name: mosfet_id_comparison.py
# Creation Date: 20250808
# Overview: Compare I_DS values of two MOSFET configurations using given parameters
# Usage: Run the script to calculate and plot I_DS vs V_eff for both cases
!pip install matplotlib
import matplotlib.pyplot as plt
# =====================================
# 定義:各種MOSFETパラメータ / Define Parameters
# =====================================
# V_eff 値 [V]
v_eff_list = [0.15, 0.20, 0.30]
# ケース1: W/L = 2μ / 0.2μ, V_DS = 1.5V
wl_case1 = 10
vds_case1 = 1.5
vt_case1 = 0.439
va_case1_list = [2.27, 3.23, 5.40]
mucox_case1_list = [166, 188, 216]
# ケース2: W/L = 20μ / 2μ, V_DS = 3.0V
wl_case2 = 10
vds_case2 = 3.0
vt_case2 = 0.389
va_case2_list = [25.6, 32.6, 47.4]
mucox_case2_list = [207, 212, 217]
# =====================================
# I_DS計算関数 / Drain current function
# =====================================
def calculate_ids(mucox, wl, veff, vds, va):
# I_DS = (μCox/2) * (W/L) * V_eff^2 * (1 + V_DS / V_A)
return (mucox / 2) * wl * veff**2 * (1 + vds / va)
# =====================================
# I_DS計算実行 / Calculate I_DS values
# =====================================
id_case1 = []
id_case2 = []
for veff, va1, mc1, va2, mc2 in zip(v_eff_list, va_case1_list, mucox_case1_list, va_case2_list, mucox_case2_list):
id_case1.append(calculate_ids(mc1, wl_case1, veff, vds_case1, va1))
id_case2.append(calculate_ids(mc2, wl_case2, veff, vds_case2, va2))
# =====================================
# プロット / Plot results
# =====================================
plt.figure()
plt.plot(v_eff_list, id_case1, marker='o', label='Case 1: W/L=10, V_DS=1.5V')
plt.plot(v_eff_list, id_case2, marker='s', label='Case 2: W/L=10, V_DS=3.0V')
plt.xlabel('V_eff [V]')
plt.ylabel('I_DS [μA]')
plt.title('I_DS vs V_eff Comparison')
plt.legend()
plt.grid(True)
plt.show()