🔷 1. カスコード増幅回路の概要
カスコード(cascode)回路とは、2段のMOSFETを直列に接続して、高出力抵抗を得る構成です。ここではNMOSとPMOSの両方でカスコード構造が組まれています。
🔷 2. 出力抵抗の意味
出力抵抗は、小信号の等価回路において出力端子から見た抵抗値であり、利得に直接影響します:
$$
\text{電圧利得} = A_v = -g_m \cdot R_{out}
$$
出力抵抗が大きいほど、電圧利得が大きくなります(カスコード構造の最大の利点)。
🔷 3. NMOS側の出力抵抗(下段)
● 出力抵抗の導出
M₂とM₁に注目します(NMOSのカスコード構造):
- M₂:カスコード素子
- M₁:増幅素子(入力 $v_{in}$)
M₂のソース抵抗(M₁の出力抵抗)を高く見せることで、M₂のドレイン(=回路の出力)から見た抵抗値が大きくなります。
$$
R_{out,n} \approx \left( g_{m2} r_{on2} \right) r_{on1}
$$
● 導出の仕組み
- M₁の出力抵抗:$r_{on1}$
- M₂はM₁をソース接地のように動かすので、M₂のミラー効果で出力抵抗は
$$
R_{out,n} = r_{on1} \cdot (1 + g_{m2} r_{on2}) \approx g_{m2} r_{on2} r_{on1}
$$
(※ミラー効果:電流の変化がゲートに戻り、より大きな電圧変化を引き起こす効果)
🔷 4. PMOS側の出力抵抗(上段)
まったく同様に、M₄とM₃でPMOSのカスコードが構成されています:
$$
R_{out,p} \approx (g_{mp3} \cdot r_{op3}) \cdot r_{op4}
$$
🔷 5. 全体の出力抵抗
出力ノードには、NMOS系とPMOS系の2つの出力抵抗が並列に接続されています:
$$
R_{out}^{eff} \approx R_{out,n} \parallel R_{out,p}
$$
通常、両者とも高いので、全体としても非常に高い出力抵抗が得られます。
🔷 6. gm₁ の意味と式の解説
● トランスコンダクタンス gm の定義
MOSFETにおける gm(トランスコンダクタンス) は、ゲート電圧変化がドレイン電流に与える効果を示す係数です:
$$
g_{m1} = \frac{\partial I_D}{\partial V_{GS}} = \beta (V_{GS} - V_T) = \sqrt{2 \beta I_D}
$$
または、ドレイン電流 $I_D$ に基づいて:
$$
g_{m1} = \frac{2 I_D}{V_{GS} - V_T}
$$
● 物理的意味
- 大きい gm ⇒ 小さな電圧で大きな電流変化を引き起こせる ⇒ 高利得
- $g_{m1}$ が大きい ⇒ $R_{out,n}$ も大きくなる ⇒ 出力利得向上
✅ まとめ表
項目 | 内容 |
---|---|
回路構成 | M₁・M₂(NMOSカスコード)、M₃・M₄(PMOSカスコード) |
出力抵抗(NMOS) | $R_{out,n} \approx (g_{m2} r_{on2}) r_{on1}$ |
出力抵抗(PMOS) | $R_{out,p} \approx (g_{mp3} r_{op3}) r_{op4}$ |
全体出力抵抗 | $R_{out}^{eff} \approx R_{out,n} \parallel R_{out,p}$ |
gm₁の式 | $g_{m1} = \frac{2 I_D}{V_{GS} - V_T}$ または $g_{m1} = \sqrt{2 \beta I_D}$ |
重要性 | gmが大きい ⇒ 出力抵抗も大 ⇒ 増幅利得も大(60dBクラス) |
# Program Name: cascode_gain_db.py
# Creation Date: 20250813
# Overview: Calculates the voltage gain (in dB) of a cascode amplifier based on gm and output resistances
# Usage: Run the script to compute Av (gain) and its decibel value
import numpy as np
# --- 各パラメータを定義(Define parameters)---
# ドレイン電流 [A]
ID = 100e-6 # 100 μA
# Vgs - Vth [V]
Vgs_minus_Vth = 0.2 # 200 mV
# トランジスタ定数 β = μCox(W/L) [A/V²]
beta = 200e-6 # 200 μA/V²
# 出力抵抗 [Ω]
ron1 = 50e3 # M1の出力抵抗:50 kΩ
ron2 = 100e3 # M2の出力抵抗:100 kΩ
rop3 = 80e3 # M3の出力抵抗:80 kΩ
rop4 = 150e3 # M4の出力抵抗:150 kΩ
# --- トランスコンダクタンス gm 計算(Calculate gm)---
gm1 = 2 * ID / Vgs_minus_Vth
gm2 = np.sqrt(2 * beta * ID)
gmp3 = gm2 # 同様の値と仮定
# 結果を表示
print(f"gm1 = {gm1:.3e} [S]")
print(f"gm2 = {gm2:.3e} [S]")
# --- 出力抵抗の計算(Calculate output resistance)---
Rout_n = gm2 * ron2 * ron1
Rout_p = gmp3 * rop3 * rop4
# 全体出力抵抗(並列合成)
Rout_total = 1 / (1 / Rout_n + 1 / Rout_p)
# --- 電圧利得とデシベル表示(Voltage gain and dB)---
Av = -gm1 * Rout_total
Av_dB = 20 * np.log10(abs(Av))
# 結果出力(Display results)
print(f"Rout_n = {Rout_n:.2e} [Ω]")
print(f"Rout_p = {Rout_p:.2e} [Ω]")
print(f"Rout_total = {Rout_total:.2e} [Ω]")
print(f"Voltage gain Av = {Av:.2e}")
print(f"Voltage gain (dB) = {Av_dB:.2f} [dB]")