電子回路の式まとめ
抵抗 R
静的抵抗:
$$
R = \frac{V}{I}
$$
動的抵抗:
$$
r = \frac{dV}{dI} \approx \frac{\Delta v}{\Delta i}
$$
導電率(アドミタンス):
$$
g = \frac{1}{r} = \frac{\Delta i}{\Delta v}
$$
容量 C
電荷と電圧の関係:
$$
Q = C V = \int i(t),dt
$$
電荷保存則(スイッチON/OFF時):
$$
C_1 V_1 + C_2 V_2 = (C_1 + C_2)V
$$
インダクタ L
磁束と電流の関係:
$$
N \Phi = L I = \int v(t),dt
$$
三角関数・正弦波信号の表現
正弦波:
$$
v(t) = A \cos(\omega t + \phi)
$$
角速度と周波数:
$$
\omega = \frac{2\pi}{T} = 2\pi f \quad [\text{rad/sec}]
$$
$$
f = \frac{1}{T} = \frac{\omega}{2\pi}
$$
複素数表示とオイラーの公式
複素数:
$$
z = a + jb
$$
極座標表示:
$$
z = r e^{j\theta}, \quad a = r\cos\theta,\ b = r\sin\theta
$$
オイラーの公式:
$$
e^{j\omega t} = \cos(\omega t) + j\sin(\omega t)
$$
位相角:
$$
\theta = \tan^{-1}\left(\frac{b}{a}\right)
$$
微分方程式(回路の基本)
例: 抵抗 R, 容量 C を含む回路
$$
V_0 = R i(t) + \frac{1}{C} \int_0^t i(\tau),d\tau + Q_0
$$
コンデンサ電圧の応答:
$$
V_c = V_0 \left(1 - e^{-\frac{t}{RC}}\right) + \frac{Q_0}{C} e^{-\frac{t}{RC}}
$$
ラプラス変換と素子表記
時間領域から複素周波数領域への変換:
$$
\mathcal{L}{f(t)} = F(s)
$$
抵抗:
$$
R \quad \to \quad R
$$
容量:
$$
C \quad \to \quad \frac{1}{sC}
$$
インダクタ:
$$
L \quad \to \quad sL
$$
キルヒホッフの法則
- 電流則 (KCL):
$$
\sum_{i=1}^n I_i = 0
$$
- 電圧則 (KVL):
$$
\sum_{i=0}^n V_i = 0
$$
重ね合わせの理
$$
I_{L} = I_{L}^\prime + I_{L}^{\prime\prime} + I_{L}^{\prime\prime\prime}
$$
例題: 直列接続電流源の内部抵抗
$$
V_o = R_1 I_1 + R_2 I_2
$$
$$
I_s = \frac{I_1 R_1}{R_1 + R_2} + \frac{I_2 R_2}{R_1 + R_2}
$$
$$
R_o = \frac{V_o}{I_s}
$$
半導体基礎 数式まとめ
1. 拡散電流(Diffusion Current)
半導体中では、キャリア濃度の勾配により拡散電流が流れる。
電流密度 $J$ とキャリア濃度 $n(x)$ の関係式は:
$$
J = -D \frac{dn(x)}{dx}
$$
- $J$:電流密度
- $D$:拡散定数 $[\text{cm}^2/\text{sec}]$
- $n(x)$:キャリア濃度
👉 キャリア濃度が高い領域から低い領域へキャリアが移動し、電流を形成する。
2. ダイオードの電流–電圧特性(理想モデル)
PN接合ダイオードの理想的なIV特性は:
$$
I_D = I_S \left( e^{\frac{q V_D}{kT}} - 1 \right)
$$
- $I_D$:ダイオード電流
- $I_S$:逆方向飽和電流(約 $10^{-9} \sim 10^{-12},\text{A}$)
- $V_D$:ダイオードにかかる電圧
- $q$:電子の電荷 ($1.6\times10^{-19},\text{C}$)
- $k$:ボルツマン定数 ($1.38\times10^{-23},\text{J/K}$)
- $T$:絶対温度 [K]
👉 ダイオードは順方向で指数関数的に電流が増加し、逆方向ではほぼ一定の電流 $I_S$ しか流れない。
3. 熱電圧(Thermal Voltage)
温度とともに決まる基準電圧:
$$
V_T = \frac{kT}{q} \approx 26,\text{mV} \quad (\text{室温 300 K})
$$
👉 ダイオードのIV特性を近似するときの基準になる。
4. ダイオードの近似IV特性
-
順方向バイアス時 ($V_D > 0$)
$$
I_D \approx I_S e^{\frac{V_D}{V_T}}
$$ -
逆方向バイアス時 ($V_D < 0$)
$$
I_D \approx - I_S
$$
👉 実際のIVカーブでは、順方向は急激に立ち上がり、逆方向はほぼ一定の微小電流。
トランジスタ基礎 数式まとめ
1. バイポーラトランジスタ (BJT)
電流増幅の基本
$$
I_C = \beta I_B
$$
- $\beta$:電流増幅率(数十~数百倍)
- $I_C$:コレクタ電流
- $I_B$:ベース電流
エミッタ電流
$$
I_E = I_C + I_B
$$
$$
I_E = I_C\left(1+\frac{1}{\beta}\right)
$$
β と α の関係
$$
\beta = \frac{I_C}{I_B}, \quad \alpha = \frac{\beta}{\beta+1}
$$
BJTの電流式
指数関数特性を持つ:
$$
I_C = I_S e^{\frac{V_{BE}}{V_T}}
$$
$$
I_B = \frac{1}{\beta} I_S e^{\frac{V_{BE}}{V_T}}
$$
$$
I_E = \frac{\beta+1}{\beta} I_S e^{\frac{V_{BE}}{V_T}}
$$
- $I_S$:飽和電流
- $V_T = \frac{kT}{q}$:熱電圧(室温で約26 mV)
- $V_{BE}$:ベース–エミッタ間電圧
2. MOSFET
nMOS のIV特性
- 飽和領域 (Saturation)
$$
I_D = \frac{1}{2} \mu_n C_{\text{ox}} \frac{W}{L} (V_{GS} - V_{TH})^2
$$
- 線形領域 (Triode / Linear)
$$
I_D = \mu_n C_{\text{ox}} \frac{W}{L} \left[ (V_{GS} - V_{TH}) V_{DS} - \frac{1}{2} V_{DS}^2 \right]
$$
ピンチオフ条件
$$
V_{DS} = V_{GS} - V_{TH}
$$
👉 このときチャネルが消滅し、電流が飽和に移行する。
チャネル長変調 (Channel Length Modulation)
$$
I_D = \frac{1}{2} \mu_n C_{\text{ox}} \frac{W}{L} (V_{GS} - V_{TH})^2 (1 + \lambda V_{DS})
$$
- $\lambda$:チャネル長変調パラメータ
- $V_A = 1/\lambda$:アーリー電圧
3. pMOS
- 飽和領域
$$
I_{D,\text{sat}} = \frac{1}{2} \mu_p C_{\text{ox}} \frac{W}{L} (V_{GS} - V_{TH})^2 (1 - \lambda V_{DS})
$$
- 線形領域
$$
I_{D,\text{tri}} = \mu_p C_{\text{ox}} \frac{W}{L} \left[ (V_{GS} - V_{TH}) V_{DS} - \frac{1}{2} V_{DS}^2 \right]
$$
4. トランスコンダクタンス (gm)
BJT
$$
g_m = \frac{\Delta I_C}{\Delta V_{BE}} \approx \frac{I_C}{V_T}
$$
MOSFET
$$
g_m = \frac{\Delta I_D}{\Delta V_{GS}} \approx \mu_n C_{\text{ox}} \frac{W}{L} (V_{GS} - V_{TH})
$$
CMOS技術とトランジスタの基本機能
1. CMOS (Complementary MOS)
-
CMOS = Complementary MOSFET
→ nMOS と pMOS を相補的に配置して一つの回路を構成。 - 出力が論理 "0" または "1" のいずれかに安定 → 消費電力が小さい。
2. 相互コンダクタンス $g_m$
定義
入力電圧 $V_{GS}$ の変化に対するドレイン電流 $I_D$ の変化率:
$$
g_m = \frac{\partial I_D}{\partial V_{GS}}
$$
MOSFETの飽和領域における $g_m$
MOSFET飽和領域の基本式:
$$
I_D = \frac{1}{2} \mu_n C_{ox} \frac{W}{L} (V_{GS} - V_{TH})^2
$$
これを $V_{GS}$ で微分すると:
$$
g_m = \mu_n C_{ox} \frac{W}{L} (V_{GS} - V_{TH})
$$
BJTの $g_m$
BJTのコレクタ電流:
$$
I_C = I_S e^{\frac{V_{BE}}{V_T}}
$$
微分すると:
$$
g_m = \frac{\partial I_C}{\partial V_{BE}} = \frac{I_C}{V_T}
$$
- $V_T = \frac{kT}{q}$ (熱電圧、室温で約 26 mV)
数値例
- $V_{GS}: 1.5 \to 2.0 ,\text{V}$
- $I_D: 1 \to 2 ,\text{mA}$
$$
g_m = \frac{\Delta I_D}{\Delta V_{GS}} = \frac{2 - 1}{2.0 - 1.5} = 2 ,\text{mS}
$$
3. ボディ効果 (Body Effect)
ソース-ボディ間電圧 $V_{SB}$ があると、しきい値電圧が増加する。
$$
V_{TH} = V_{TH0} + \gamma \left( \sqrt{\phi_F + V_{SB}} - \sqrt{\phi_F} \right)
$$
- $V_{TH0}$:基準しきい値電圧
- $\gamma$:ボディ効果係数
- $\phi_F$:フェルミ電位
👉 $V_{SB}$ が大きいほど $V_{TH}$ が上がり、トランジスタがオンしにくくなる。
4. MOSFETの入力としての役割
(A) スイッチ機能(デジタル回路)
-
OFF条件:
$$
V_{GS} < V_{TH} \quad \Rightarrow \quad I_D \approx 0
$$ -
ON条件:
$$
V_{GS} > V_{TH} \quad \Rightarrow \quad I_D \neq 0
$$
→ 0/1 論理スイッチ
(B) 増幅器機能(アナログ回路)
- MOSFETを飽和領域でバイアスすると:
$$
I_D \approx \frac{1}{2} \mu_n C_{ox} \frac{W}{L} (V_{GS} - V_{TH})^2
$$
- 入力の小信号電圧 $v_{gs}$ に対し出力電流変化 $i_d$ は:
$$
i_d = g_m v_{gs}
$$
👉 この関係が 電圧制御→電流出力 の増幅機能を実現。
MOSFETの幾何パラメータ依存性
1. 基本式(飽和領域)
MOSFETのドレイン電流(飽和領域)は次の式で表されます:
$$
I_D = \frac{1}{2} \mu_n C_{ox} \frac{W}{L} (V_{GS} - V_{TH})^2
$$
- $\mu_n$:キャリア移動度
- $C_{ox} = \frac{\varepsilon_{ox}}{t_{ox}}$:ゲート酸化膜容量(単位面積あたり)
- $W$:ゲート幅
- $L$:チャネル長
- $V_{GS}$:ゲート-ソース電圧
- $V_{TH}$:しきい値電圧
2. 幾何パラメータの依存性
(1) チャネル長 $L$
-
式の分母に現れる:
$$
I_D \propto \frac{1}{L}
$$ -
→ 短チャネル化 ($L$ を小さくする) と電流が大きくなる。
-
近年の微細化技術では nm スケール(例:5 nm)まで縮小。
(2) ゲート幅 $W$
-
式の分子に現れる:
$$
I_D \propto W
$$ -
→ ゲート幅を広げると電流が増える。
-
同じ $V_{GS}$ でも「大電流駆動」が可能。
-
パワーデバイスでは $W$ を大きくして大電流を流す設計が多い。
(3) 酸化膜厚さ $t_{ox}$
-
$C_{ox} = \frac{\varepsilon_{ox}}{t_{ox}}$ より:
$$
I_D \propto \frac{1}{t_{ox}}
$$ -
→ 酸化膜を薄くすると $C_{ox}$ が大きくなり、電流が増える。
-
ゲート制御力(電界効果)が強まり、しきい値電圧も下がる傾向。
-
微細化MOSでは $t_{ox}$ を極限まで薄くする → リーク電流増加という課題もある。
3. 総合式での依存関係
まとめると、電流は以下のように幾何パラメータに依存:
$$
I_D \propto \frac{W}{L} \cdot \frac{\varepsilon_{ox}}{t_{ox}}
$$
- $W↑$ → 電流増加(大電流駆動)
- $L↓$ → 電流増加(短チャネル効果、微細化)
- $t_{ox}↓$ → 電流増加(ゲート制御性向上)
4. 技術的意味
- デジタル回路:高速化のため $L$ を短くして $I_D$ を大きく → スイッチング速度UP。
- アナログ回路:ノイズやゲインを考慮して $W/L$ 比を調整。
- 微細化技術:$t_{ox}$ を薄くするが、リークや信頼性とのトレードオフがある。
1. CMOSインバータ
回路構造
- pMOS:電源 $V_{DD}$ に接続
- nMOS:GND に接続
- 出力 $V_{out}$ は pMOS と nMOS の接続点
- 入力 $V_{in}$ は両ゲートに接続
VDD
│
┌┴┐ pMOS
│ │
│ └───┐ Vout
│ │
│ ┌───┘
│ │
└┬┘ nMOS
│
GND
動作式(近似)
- nMOS電流(飽和領域):
$$
I_{Dn} = \frac{1}{2}\mu_n C_{ox}\frac{W_n}{L_n}(V_{in}-V_{THn})^2
$$
- pMOS電流(飽和領域):
$$
I_{Dp} = \frac{1}{2}\mu_p C_{ox}\frac{W_p}{L_p}(V_{DD}-V_{in}-|V_{THp}|)^2
$$
- バランス条件:
$$
I_{Dn} = I_{Dp}
$$
- 近似的伝達特性(S字カーブ):
$$
V_{out} \approx \frac{V_{DD}}{1+\exp(\alpha(V_{in}-V_M))}
$$
2. CMOS NAND回路
回路構造
- pMOS 2個:並列接続(電源側)
- nMOS 2個:直列接続(GND側)
- 入力:A, B
- 出力:Y
VDD
│
┌─┬─┐ pMOS並列
│ │ │
│ │ └──────┐
│ │ │
│ │ ├─── Y
│ │ │
│ │ ┌──────┘
│ │ │
└─┴─┘ nMOS直列
│
GND
論理動作
- A=B=1 → nMOS直列ON, pMOS並列OFF → $Y=0$
- それ以外 → pMOS並列ON → $Y=1$
数式モデル
- 出力電圧 $V_{out}$ は入力A, Bに依存して決まる:
$$
I_{Dp}(A,B) = I_{Dn}(A,B)
$$
- 論理式:
$$
Y = \overline{A \cdot B}
$$
3. S字伝達特性
- インバータもNANDも 出力はS字カーブの切り替え特性を示す。
- 一般式:
$$
V_{out} \approx \frac{V_{DD}}{1+\exp(\alpha(f(V_{in})-V_M))}
$$
- インバータ: $f(V_{in}) = V_{in}$
- NAND: $f(V_{in}) = A \cdot B$
✅ まとめると:
- CMOSインバータは 1入力→1出力、S字カーブで反転。
- CMOS NANDは 2入力→1出力、論理ANDの否定をアナログ的にS字カーブで実現。
1. 増幅の定義
- 電圧利得
$$
A_v = \frac{v_{out}}{v_{in}}
$$
- 電流利得
$$
A_i = \frac{i_{out}}{i_{in}}
$$
2. MOS増幅回路の基本式
- MOSFETの電流式(飽和領域)
$$
I_D = \frac{1}{2}\mu_n C_{ox}\frac{W}{L}(V_{GS}-V_{TH})^2
$$
ここで
$\mu_n$:電子移動度
$C_{ox} = \frac{\varepsilon_{ox}}{t_{ox}}$:酸化膜容量
$W, L$:チャネル幅と長さ
$V_{TH}$:しきい値電圧
- 小信号近似による出力電圧
$$
v_{out} = -g_m R_L , v_{in}
$$
- 相互コンダクタンス(トランスコンダクタンス)
$$
g_m = \frac{\partial I_D}{\partial V_{GS}} = \mu_n C_{ox}\frac{W}{L}(V_{GS}-V_{TH})
$$
- 電圧利得
$$
A_v = \frac{v_{out}}{v_{in}} = -g_m R_L
$$
3. Bipolar増幅回路の基本式
- バイポーラトランジスタ(BJT)の電流式
$$
I_C = I_S \exp\left(\frac{V_{BE}}{V_T}\right)
$$
ここで
$I_S$:飽和電流
$V_T = \frac{kT}{q}$:熱電圧(約26 mV, 室温300K)
- 相互コンダクタンス
$$
g_m = \frac{\partial I_C}{\partial V_{BE}} = \frac{I_C}{V_T}
$$
- 電圧利得
$$
A_v = -g_m R_L
$$
4. バイアスの基本式
- 入力信号:
$$
V_{GS} = V_{GSQ} + v_1
$$
ここで
$V_{GSQ}$:バイアス電圧(直流成分)
$v_1$:小信号(交流成分)
- MOSの動作条件(確実に動作させるための条件)
$$
V_{GS,min} = V_{GSQ} - V_1 > V_{TH}
$$
従って:
$$
V_{GSQ} > V_{TH} + V_1
$$
5. バイアス方式の式
(a) 分圧抵抗バイアス(1電源方式)
$$
V_{GSQ} = \frac{R_2}{R_1 + R_2} V_{DD}
$$
$$
R_G = \frac{R_1 R_2}{R_1 + R_2}
$$
(b) 電流源バイアス(ICで多用)
$$
I_D = I_0 \quad (\text{電流源が一定値を供給})
$$
$$
V_{GS} , \text{が自動的に決まる}
$$
1. 大信号解析 (DC特性)
MOSFET のドレイン電流は、しきい値電圧 $V_{TH}$ を超えたときに次の式で表されます。
- 飽和領域:
$$
I_D = \frac{1}{2}\mu_n C_{ox}\frac{W}{L}(V_{GS}-V_{TH})^2 (1+\lambda V_{DS})
$$
- 線形領域:
$$
I_D = \mu_n C_{ox}\frac{W}{L}\left[(V_{GS}-V_{TH})V_{DS} - \frac{1}{2}V_{DS}^2\right]
$$
ここで
$\mu_n$:移動度
$C_{ox}$:ゲート酸化膜容量
$W,L$:チャネル幅・長さ
$\lambda$:チャネル長変調係数
👉 この式は 直流動作点 (バイアス点) を決めるために使います。
2. 小信号解析 (AC特性)
直流バイアス点 $(V_{GSQ}, I_{DQ})$ の周りで小さな入力変動 $v_{gs}$ を与えると、電流は テイラー展開で近似できます。
$$
I_D \approx I_{DQ} + g_m v_{gs} + \frac{1}{2}g_m' v_{gs}^2 + \cdots
$$
1次の項だけを取ると:
$$
i_d = g_m v_{gs}
$$
ここで
- 相互コンダクタンス (トランスコンダクタンス)
$$
g_m = \frac{\partial I_D}{\partial V_{GS}}\bigg|{V{GS}=V_{GSQ}} = \mu_n C_{ox}\frac{W}{L}(V_{GSQ}-V_{TH})
$$
👉 この式により、MOSFETは「電圧制御電流源」としてモデル化されます。
3. 大信号 vs 小信号のまとめ
項目 | 大信号解析 (DC) | 小信号解析 (AC) |
---|---|---|
入力 | $V_{GS}$, $V_{DS}$ | 小変動 $v_{gs}, v_{ds}$ |
出力 | $I_D$ (非線形関数) | $i_d = g_m v_{gs} + g_{ds} v_{ds}$ |
利用目的 | 動作点(バイアス)の決定 | 増幅動作の解析 |
モデル | 非線形MOSFET方程式 | 線形化された小信号等価回路 |
✅ 式で整理すると:
- 大信号
$$
I_D = f(V_{GS}, V_{DS})
$$
- 小信号
$$
i_d = g_m v_{gs} + g_{ds} v_{ds}
$$
TL;DR
-
動作点 $Q$ のまわりで テイラー展開の一次(微分) だけ残す=接線近似だから、非線形なMOSFETも線形回路に置き換えられる。
-
小信号モデルのコアは
$$
i_d \approx g_m v_{gs} + g_{mb} v_{bs} + g_{ds} v_{ds},\quad r_o=\frac{1}{g_{ds}}
$$ -
成立条件:振幅が小さい・動作領域が切り替わらない・準静的近似が妥当。
-
大振幅・超高周波・強い短チャネル効果では、一次近似が崩れる(高次・NQS・寄生まで要考慮)。
1. まず結論(概念)
MOSFETの静特性 $I_D=f(V_{GS},V_{DS},V_{BS})$ を、直流動作点 $Q$ のまわりでテイラー展開して一次で打ち切ると、
$$
i_d ;\approx;
\underbrace{\frac{\partial f}{\partial V_{GS}}}{g_m} v{gs}
+\underbrace{\frac{\partial f}{\partial V_{BS}}}{g{mb}} v_{bs}
+\underbrace{\frac{\partial f}{\partial V_{DS}}}{g{ds}} v_{ds}.
$$
この“勾配”がそのまま依存電流源($g_m v_{gs}, g_{mb} v_{bs}$)と出力抵抗($r_o=1/g_{ds}$)に化け、線形の小信号等価回路として扱えます。
DCは別系統(電源)で受け持ち、ACの“小さな揺れ”だけを等価回路に流す、という分離がポイント。
2. 数学的な根拠(テイラー一次)
$$
I_D(Q+\Delta)\approx I_D(Q)
- \frac{\partial f}{\partial V_{GS}}v_{gs}
- \frac{\partial f}{\partial V_{DS}}v_{ds}
- \frac{\partial f}{\partial V_{BS}}v_{bs}.
$$
二次以上($v^2$, $v^3$ …)を無視 ⇒ 線形化。
これが“小信号”の意味そのもの。
3. 強反転・飽和の代表式(長チャネル近似)
チャネル長変調込みの古典式:
$$
I_D \approx \tfrac{1}{2}k_n(V_{OV})^2(1+\lambda V_{DS}),\quad
V_{OV}=V_{GS}-V_{TH},\quad
k_n=\mu_n C_{ox}\tfrac{W}{L}.
$$
小信号パラメータは
$$
g_m=\frac{\partial I_D}{\partial V_{GS}}
= k_n V_{OV} = \frac{2I_D}{V_{OV}},\quad
g_{ds}=\frac{\partial I_D}{\partial V_{DS}}=\lambda I_D,\quad
r_o=\frac{1}{\lambda I_D}.
$$
ボディ効果込み(しきい値の $V_{SB}$ 依存)だと
$$
g_{mb}=g_m\cdot \eta,\quad
\eta=\frac{\gamma}{2\sqrt{2\Phi_F+V_{SB}}};;\Rightarrow;; g_{mb}\approx 0.1\sim0.3,g_m.
$$
交流容量は“チャージの微分”
$$
C_{ij}=\left.\frac{\partial Q_i}{\partial V_j}\right|_{Q}.
$$
強反転・飽和の概算:
- $C_{gs}\approx \tfrac{2}{3}C_{ox}WL$(チャネルがゲートをシールド → $C_{gb}\approx 0$)
- $C_{gd}$ は小さめ(ただしミラー効果で見かけ増大)
- 接合容量 $C_{db},C_{sb}$ は逆バイアスで減少(バイアス依存)
4. いつ“許される”か(成立条件チェックリスト)
- 小振幅:経験的に $v_{gs}\lesssim 0.1\sim0.2,V_{OV}$ だと高次項が効きにくい。
- 領域不変:小信号の揺れで飽和↔線形をまたがない。
- 準静的(QS):周波数が高すぎず、チャージ分布が即応できる帯域。極端なRFは非準静的(NQS) へ。
- 温度・バイアス固定:$\mu, V_{TH}, \lambda, \gamma$ 等のパラメータが解析中に動かない。
5. 破綻しがちなケース(注意点)
- 入力が大きく歪み・クリップ・領域またぎが発生。
- 超高周波でNQS・配線/寄生が支配的(レイアウト・パッケージの寄生含めモデル強化)。
-
短チャネル効果(DIBL、速度飽和 等)で古典式がズレる。
→ それでも「微分して一次化」の思想自体は有効。実務はBSIM等のデバイスモデルが内部で小信号(偏微分)を持っています。
6. 手計算しやすい実数例
- $;I_D=1\ \text{mA},;V_{OV}=0.2\ \text{V},;\lambda=0.02\ \text{V}^{-1}$
$$
g_m=\frac{2I_D}{V_{OV}}
=\frac{2\cdot 1\text{mA}}{0.2\text{V}}=10\ \text{mS},\quad
r_o=\frac{1}{\lambda I_D}
=\frac{1}{0.02\cdot 1\text{mA}}=50\ \text{k}\Omega.
$$
- もし $\eta=0.2$ なら $g_{mb}\approx 2\ \text{mS}$。
→ これを小信号回路に差し込めば、利得・入出力抵抗・帯域(容量で極)を紙と鉛筆で読めます。
7. 実務フロー(最短手順)
- DCバイアス設計で $V_{GS0}, V_{DS0}$ を決定(領域=飽和か要確認)。
- データシート/モデルまたは式から $I_D, V_{OV}, \lambda$ を見積もる。
- $g_m=2I_D/V_{OV}$, $r_o=1/(\lambda I_D)$, $g_{mb}$ を算出。
- 必要帯域に応じて $C_{gs}, C_{gd}, C_{db}$ を加える(ミラー確認)。
- 小信号等価回路でAC利得・極/零点・安定度を解析。
- 入力振幅と周波数が成立条件を満たすかを最後にチェック。
8. 付録:最小の等価回路メモ(飽和・ボディ結合なし)
- 依存電流源:$g_m v_{gs}$(ドレインへ)
- 出力抵抗:$r_o$(ドレイン–ソース間)
- 容量:$C_{gs}, C_{gd}, C_{db}$(必要に応じて)
まずは $g_m$–$r_o$ から始め、帯域を見たいときに容量を足す、が実務の定石。
1. 3つの特性を重ねて読む
- $I_D!-!V_{GS}$ 特性(ゲートを増やすと電流が増える)
- $I_D!-!V_{DS}$ 家族曲線(各 $V_{GS}$ ごとの出力特性)
- 負荷直線:抵抗 $R_L$ と電源 $V_{DD}$ により
$$
\boxed{V_{DS}=V_{out}=V_{DD}-R_L I_D}
$$
(切片:$I_D=0\Rightarrow V_{DS}=V_{DD}$、$V_{DS}=0\Rightarrow I_D=V_{DD}/R_L$)
家族曲線と負荷直線の交点が動作点 $Q$。
$V_{GS}$(= $V_{in}$)を上げる ⇒ 家族曲線が上方へ ⇒ 交点の $I_D$ 増加 ⇒ 負荷直線上で $V_{DS}$ は減少(反転特性)。
2. MOSFET の大信号式(長チャネル近似、$\lambda=0$ なら簡単)
しきい値 $V_{TH}$、過剰電圧 $V_{OV}=V_{GS}-V_{TH}$、
$k=\mu_n C_{ox}\frac{W}{L}$ として
-
カットオフ:$V_{GS}<V_{TH}$
$\displaystyle I_D\simeq0,\quad V_{out}\simeq V_{DD}$. -
飽和(強反転):$V_{GS}\ge V_{TH},; V_{DS}\ge V_{OV}$
$$
\boxed{I_D=\tfrac{1}{2}k,V_{OV}^2}
$$従って
$$
\boxed{V_{out}=V_{DD}-\tfrac{R_L k}{2},(V_{in}-V_{TH})^2}
$$(但し 自己整合条件 $V_{out}\ge V_{in}-V_{TH}$ を満たす範囲のみ)
-
線形(トライオード):$0\le V_{DS}<V_{OV}$
$$
\boxed{I_D=k!\left[(V_{in}-V_{TH})V_{out}-\tfrac{1}{2}V_{out}^2\right]}
$$と 負荷直線 $I_D=(V_{DD}-V_{out})/R_L$ を連立。
$V_{out}$ についての 2 次方程式:$$
\frac{k}{2}V_{out}^2-!\Big{k(V_{in}-V_{TH})+\frac{1}{R_L}\Big}!V_{out}+\frac{V_{DD}}{R_L}=0
$$物理的に小さい方の根($0\le V_{out}<V_{in}-V_{TH}$)を採用:
$$
\boxed{;
V_{out}=\frac{k(V_{in}-V_{TH})+\frac{1}{R_L}
-\sqrt{\Big[k(V_{in}-V_{TH})+\frac{1}{R_L}\Big]^2-;2k\frac{V_{DD}}{R_L}}}{k};}
$$
実回路では $\lambda>0$(チャネル長変調)なら
$I_D$ に $(1+\lambda V_{DS})$ を掛け、負荷直線との交点はわずかに右上へ。
解析の流れは同じです。
3. 入出力特性(まとめ・描き方)
$$
V_{out}(V_{in})=
\begin{cases}
V_{DD} & (V_{in}<V_{TH}) \
V_{DD}-\dfrac{R_L k}{2},(V_{in}-V_{TH})^2
& \big[V_{DD}-\dfrac{R_L k}{2},(V_{in}-V_{TH})^2 ;\ge; V_{in}-V_{TH}\big] \
\text{上の 2次式の小さい根}
& \text{(トライオード条件: }V_{out}<V_{in}-V_{TH})
\end{cases}
$$
- まず $I_D!-!V_{DS}$ の家族曲線(複数の $V_{GS}$)を描く。
- 負荷直線 $V_{DS}=V_{DD}-R_L I_D$ を重ねる。
- それぞれの交点を読み取り、$(V_{in},V_{out})$ へ写像すると右端の入出力特性が得られる(図の右パネル)。
4. 設計の指針(直感)
-
反転増幅:$V_{in}\uparrow \Rightarrow I_D\uparrow \Rightarrow V_{out}\downarrow$.
-
動作点 $Q$ は
- クリップ(カットオフ側/線形側)しにくい 中央 付近(例 $V_{out}\approx V_{DD}/2$)に置くのが基本。
- 対応する $I_D$ は負荷直線で決まる($I_D=(V_{DD}-V_{out})/R_L$)。
-
直流大信号の傾きから、微小変化の近似増幅率も読める:
飽和で $\displaystyle \frac{dV_{out}}{dV_{in}}\approx -R_L,\frac{\partial I_D}{\partial V_{GS}} =-R_L,g_m$(小信号の導入)。
# NMOS with resistive load: DC (large-signal) analysis via load-line
# Three panels:
# (1) I_D vs V_GS
# (2) I_D–V_DS family + load line + Q-points for a few V_GS
# (3) Transfer V_out(V_in)
import numpy as np
import matplotlib.pyplot as plt
# ----------------------------
# Parameters (units shown)
# ----------------------------
VDD = 16.0 # V
RL = 2.0 # kΩ (so current axis is in mA)
VTH = 2.0 # V (threshold)
k = 1.0 # mA/V^2 (long-channel, lambda=0)
# ----------------------------
# Device equations (lambda = 0)
# IDs returned in mA, VDS/VGS in V
# ----------------------------
def Id_family(VGS, VDS):
"""I_D (mA) for given VGS, VDS (V), long-channel, no CLM."""
if VGS <= VTH:
return 0.0
VOV = VGS - VTH
if VDS >= VOV: # saturation
return 0.5 * k * VOV**2
# triode
return k * ((VOV * VDS) - 0.5 * VDS**2)
def loadline_I(VDS):
"""Load line current in mA for a given VDS (V)."""
return (VDD - VDS) / RL # because RL is in kΩ, current is mA
def vout_from_vin(Vin):
"""Piecewise solve Vout for a given Vin using saturation check, else triode root."""
if Vin < VTH:
return VDD # cut-off
VOV = Vin - VTH
# Saturation candidate
Vout_sat = VDD - RL * (0.5 * k * VOV**2)
if Vout_sat >= VOV: # still satisfies sat condition
return max(0.0, min(VDD, Vout_sat))
# Triode region: solve quadratic
# (k/2) Vout^2 - [k(Vin - VTH) + 1/RL] Vout + VDD/RL = 0
A = 0.5 * k
B = -(k * VOV + 1.0 / RL)
C = VDD / RL
disc = max(0.0, B**2 - 4*A*C)
r1 = (-B - np.sqrt(disc)) / (2*A) # smaller root
r2 = (-B + np.sqrt(disc)) / (2*A)
Vout = min(r1, r2)
# enforce region
return np.clip(Vout, 0.0, VOV - 1e-12)
# ----------------------------
# Sweep data
# ----------------------------
VGS_vals_for_family = [2.0, 4.0, 6.0] # example inputs
VDS_axis = np.linspace(0, VDD, 600)
Vin_axis = np.linspace(0.0, 8.0, 400)
Vout_axis = np.array([vout_from_vin(v) for v in Vin_axis])
# Intersections (Q points) for sample VGS
Q_pts = []
for VGS in VGS_vals_for_family:
# brute-force intersection on grid
Id_dev = np.array([Id_family(VGS, v) for v in VDS_axis])
Id_ll = loadline_I(VDS_axis)
idx = np.argmin(np.abs(Id_dev - Id_ll))
Q_pts.append((VDS_axis[idx], Id_ll[idx], VGS))
# ----------------------------
# Plot
# ----------------------------
fig = plt.figure(figsize=(13, 4.5))
# (1) I_D vs V_GS (assume saturation region curve for intuition)
ax1 = fig.add_subplot(1, 3, 1)
VGS_axis = np.linspace(0, 6.5, 500)
ID_VGS = np.where(VGS_axis >= VTH, 0.5 * k * (VGS_axis - VTH)**2, 0.0)
ax1.plot(VGS_axis, ID_VGS, lw=2, label="ID vs VGS (sat approx)")
for v in VGS_vals_for_family:
ax1.axvline(v, ls="--", alpha=0.8)
ax1.text(v+0.05, 0.2, f"VGS={v:g} V", rotation=90, va="bottom", fontsize=9)
ax1.set_xlabel("VGS [V]")
ax1.set_ylabel("ID [mA]")
ax1.set_title("1) ID–VGS characteristic")
ax1.grid(alpha=0.3)
ax1.set_xlim(0, 6.5)
ax1.set_ylim(0, 8.5)
# (2) Family + load line + Q
ax2 = fig.add_subplot(1, 3, 2)
# family curves
for VGS in [2.0, 3.0, 4.0, 5.0, 6.0]:
Idcurve = np.array([Id_family(VGS, v) for v in VDS_axis])
ax2.plot(VDS_axis, Idcurve, lw=1.5)
ax2.text(16.1, Idcurve[-1], f"{VGS:g} V", ha="left", va="center", fontsize=8)
# load line
ax2.plot(VDS_axis, loadline_I(VDS_axis), 'k--', lw=2, label="Load line")
# Q points for selected inputs
for (vds_q, id_q, vgs) in Q_pts:
ax2.plot([vds_q], [id_q], 'o', ms=6)
ax2.vlines(vds_q, 0, id_q, linestyles=":", alpha=0.7)
ax2.hlines(id_q, 0, vds_q, linestyles=":", alpha=0.7)
ax2.text(vds_q+0.15, id_q+0.15, f"VGS={vgs:g}", fontsize=9)
ax2.set_xlim(0, VDD+1.5)
ax2.set_ylim(0, 8.5)
ax2.set_xlabel("VDS [V] (= Vout)")
ax2.set_ylabel("ID [mA]")
ax2.set_title("2) ID–VDS family with load line")
ax2.grid(alpha=0.3)
ax2.legend(loc="upper right", frameon=False)
# (3) Transfer curve Vout(Vin)
ax3 = fig.add_subplot(1, 3, 3)
ax3.plot(Vin_axis, Vout_axis, lw=2)
# mark the same sample inputs
for vgs in VGS_vals_for_family:
vout = vout_from_vin(vgs)
ax3.plot([vgs], [vout], 'o')
# guide arrows (ΔVin, ΔVout style)
ax3.vlines(vgs, 0, vout, linestyles=":", alpha=0.6)
ax3.hlines(vout, 0, vgs, linestyles=":", alpha=0.6)
ax3.set_xlabel("Vin (= VGS) [V]")
ax3.set_ylabel("Vout (= VDS) [V]")
ax3.set_title("3) Transfer characteristic Vout(Vin)")
ax3.grid(alpha=0.3)
ax3.set_xlim(0, 8.0)
ax3.set_ylim(0, VDD)
plt.tight_layout()
plt.show()
1) 増幅器の基本量
-
入力ポートの小信号
電圧 $v_1$、電流 $i_1$ ⇒ 入力インピーダンス$$
\boxed{Z_{\text{in}}=\dfrac{v_1}{i_1}}
$$ -
出力ポートの小信号
電圧 $v_2$、電流 $i_2$ ⇒ 出力インピーダンス$$
\boxed{Z_{\text{out}}=\dfrac{v_2}{i_2}}
$$ -
利得(周波数依存の複素量になるのが一般的)
$$
\boxed{A_v=\dfrac{v_2}{v_1}},\qquad
\boxed{A_i=\dfrac{i_2}{i_1}},\qquad
\boxed{A_p=\dfrac{v_2 i_2}{v_1 i_1}}
$$
物理量の次元
$A_v, A_i$:無次元、$A_p$:無次元(比)。実務ではdB表記:$20\log_{10}|A_v|$、$20\log_{10}|A_i|$、$10\log_{10} A_p$。
2) 「高 $Z_{\text{in}}$・低 $Z_{\text{out}}$」が良い理由(直感と式)
信号源(内部抵抗 $R_s$)と負荷 $R_L$ に接続するときの全体の電圧伝達は
$$
\boxed{
\frac{v_2}{v_s}
= A_{v0};
\underbrace{\frac{Z_{\text{in}}}{R_s+Z_{\text{in}}}}{\text{入力の分圧}}
\underbrace{\frac{R_L}{Z{\text{out}}+R_L}}_{\text{出力の分圧}}
}
$$
- $A_{v0}$:増幅器の開放出力電圧利得(出力開放、入力は源で駆動)
- $Z_{\text{in}}$ が大 ⇒ 入力分圧のロスが小さい(源を“ほぼ電圧源”として扱える)
- $Z_{\text{out}}$ が小 ⇒ 出力分圧のロスが小さい(負荷を“しっかり駆動”できる)
理想電圧増幅器:$Z_{\text{in}}=\infty$, $Z_{\text{out}}=0$。
理想電流増幅器なら逆(低 $Z_{\text{in}}$、高 $Z_{\text{out}}$)が望ましい。
3) 入出力インピーダンスの測定・計算(テスト源法)
小信号線形近似(独立源は 0:電圧源→短絡、電流源→開放)を前提。
入力インピーダンス $Z_{\text{in}}$
- 出力を開放(負荷を外す、帰還の指定があればその条件に合わせる)
- 入力ポートにテスト電圧源 $v_x$ を接続し、そのとき流れる電流 $i_x$ を測る
- $\displaystyle \boxed{Z_{\text{in}}=\frac{v_x}{i_x}}$
出力インピーダンス $Z_{\text{out}}$
- 入力をゼロ(駆動源 $v_s\to 0$:短絡、$i_s\to 0$:開放)
- 出力ポートにテスト電圧源 $v_x$ を接続し、流れる電流 $i_x$ を測る
- $\displaystyle \boxed{Z_{\text{out}}=\frac{v_x}{i_x}}$
別法(テブナン):入力ゼロの条件で
開放出力電圧 $V_{\text{oc}}$ と短絡電流 $I_{\text{sc}}$ を計算し
$;Z_{\text{out}}=V_{\text{oc}}/I_{\text{sc}}$。
4) よくある回路での近似(MOSFET例)
-
ソース接地電圧増幅段(小信号)
ゲートは容量性で直流的には無限大 ⇒ $Z_{\text{in}}$ は非常に大(高周波では $1/(j\omega C_{in})$ が支配)。
出力側は $r_o$ と負荷の並列 ⇒ $\displaystyle Z_{\text{out}}\approx r_o\parallel R_D\parallel R_L$。
開放利得 $\displaystyle A_{v0}\approx -g_m (R_D\parallel r_o)$。 -
このときの端‐端の電圧伝達は前節の式に代入して評価。
5) 現場でハマりやすい点
- dBの加算:直列段の総電圧利得(dB)は各段の dB 値の和。ただし分圧ロス(前節の二つの係数)も dB に換算して一緒に足す。
- 周波数依存:$Z_{\text{in}}, Z_{\text{out}}, A_v$ は一般に $s=j\omega$ の関数。BPF/LPF 化や発振余裕(位相余裕)を見るときはボード線図で評価。
- 帰還がある系:測定条件(開ループか閉ループか)を明確に。閉ループでは $Z_{\text{in}}$ 上昇、$Z_{\text{out}}$ 低下が起きるのが普通(電圧帰還)。
6) 1分クイック計算の型
- まず理想化して $;v_2/v_s\approx A_{v0}$ を求める
- 次に入力分圧 $\dfrac{Z_{\text{in}}}{R_s+Z_{\text{in}}}$ と出力分圧 $\dfrac{R_L}{Z_{\text{out}}+R_L}$ を掛け、実際の端‐端利得に直す
- 欲しい仕様(「この $R_s$・$R_L$ で $|v_2/v_s|\ge \dots$」など)から、必要な $Z_{\text{in}}$ と $Z_{\text{out}}$ の目安が決まる
小信号パラメータ
$$
g_m=\left.\frac{\partial I_D}{\partial V_{GS}}\right|Q,\quad
g{ds}=\left.\frac{\partial I_D}{\partial V_{DS}}\right|Q,\quad
r_o=\frac{1}{g{ds}}
$$
1) ソース接地(Common-Source, CS)
入力:G、出力:D、SはAC接地。
-
電圧利得
$$
\boxed{A_v=\frac{v_o}{v_i}\approx -,g_m,(R_D\parallel r_o\parallel R_L)}
$$(KCL:$\frac{v_o}{R_D}+\frac{v_o}{r_o}+\frac{v_o}{R_L}-g_m v_{gs}=0,\ v_{gs}=v_i$)
-
入力インピーダンス
$$
\boxed{Z_{\text{in}}\approx R_G} \quad(\text{理想MOSなら } \to \infty)
$$ -
出力インピーダンス
$$
\boxed{Z_{\text{out}}\approx R_D\parallel r_o}
$$
注:ソースに抵抗 $R_S$(局所帰還)が入ると
$A_v\simeq-\dfrac{g_m(R_D\parallel r_o\parallel R_L)}{1+g_m R_S}$。
2) ゲート接地(Common-Gate, CG)
入力:S、出力:D、GはAC接地。
-
電圧利得
$$
\boxed{A_v\approx +,g_m,(R_D\parallel r_o\parallel R_L)}
$$ -
入力インピーダンス(低いのが特徴)
$$
\boxed{Z_{\text{in}}\approx \frac{1}{g_m}} \quad(\text{ボディ効果込みなら } 1/(g_m+g_{mb}))
$$ -
出力インピーダンス
$$
\boxed{Z_{\text{out}}\approx R_D\parallel r_o}
$$ -
電流利得:おおむね 1(電流バッファ的)。
3) ドレイン接地=ソースフォロワ(Common-Drain, CD)
入力:G、出力:S、DはAC接地(電流源や VDD へ)。
-
電圧利得(≲1 のバッファ)
$$
\boxed{A_v \approx \frac{g_m,R_L'}{1+g_m,R_L'}}
$$ここで $R_L'$ はソースから見える合成負荷(例:純抵抗 $R_L$ なら $R_L'=R_L$)。
ボディ効果ありなら $g_m\to g_m+g_{mb}$。 -
入力インピーダンス
$$
\boxed{Z_{\text{in}}\approx R_G\ (\text{非常に大})}
$$ -
出力インピーダンス(低いのが特徴)
$$
\boxed{Z_{\text{out}}\approx \frac{1}{g_m}\ \parallel\ r_o\ \approx \frac{1}{g_m}}
$$
4) インピーダンスの測り方(定義)
- $Z_{\text{in}}$:出力開放で入力ポートに試験源 $v_x$ → $Z_{\text{in}}=v_x/i_x$。
- $Z_{\text{out}}$:入力短絡で出力ポートに試験源 → $Z_{\text{out}}=v_x/i_x$。
5) ざっくり数値感
例:$g_m=10,\mathrm{mS},\ r_o=50,\mathrm{k}\Omega,\ R_D=10,\mathrm{k}\Omega,\ R_L=\infty$
- CS:$A_v\approx -g_m(R_D\parallel r_o)= -0.01\times 8.33\mathrm{k}\approx -83$(約 38 dB)
$Z_{\text{out}}\approx 8.33,\mathrm{k}\Omega$。 - CD:$A_v\approx \dfrac{g_mR_L}{1+g_mR_L}$($R_L=1,\mathrm{k}\Omega$ なら $\approx0.91$)、
$Z_{\text{out}}\approx 1/g_m=100,\Omega$。
6) 周波数依存(ひとこと)
容量 $C_{gs}, C_{gd}, C_{db}$ を入れると、
- CS:ミラー効果で見かけの $C_{gd}$ 増大 → 高域ゲイン低下。
- CG:広帯域向き(入力に $C_{gd}$ のミラーが乗りにくい)。
- CD:低出力抵抗で負荷容量を駆動しやすい。
了解。「各種接地方式の比較」表だけを、記号の意味と“なぜそうなるか”を最短で解説します(NMOS、交流小信号、長チャネル近似)。
記号
- $g_m$:トランスコンダクタンス($\partial I_D/\partial V_{GS}$)。
- $g_D\equiv g_{ds}$:ドレインの小信号コンダクタンス(チャネル長変調)。
- $r_D\equiv r_o=1/g_D$:トランジスタの出力抵抗。
- $G_L$:外部負荷のコンダクタンス(例:抵抗 $R_L$ なら $G_L=1/R_L$)。
- $n=1+g_{mb}/g_m$(ボディ効果込みの“スロープ係数”)。
- $\infty$:実質的に非常に大きい/小さいことを表す。
1) ソース接地(Common-Source, CS)
-
入力インピーダンス $Z_i$:$\infty$
ゲートは直流的に電流を吸わない(IGFET)→入力はほぼオープン。 -
出力インピーダンス $Z_o$:$r_D$(高い)
ドレイン側はトランジスタの出力抵抗で決まる(負荷が並列に付けば下がる)。 -
電圧利得 $A_v \approx -\dfrac{g_m}{G_L+g_D} = -g_m(R_L\parallel r_o)$
反転増幅。負荷が軽いほど($G_L\downarrow$)ゲインは大きい。 - 電流利得 $A_i$:$\infty$(理想的には入力に電流を食わないため大)
- 電力利得 $A_p$:$\infty$(理想的定義上。実際は有限)
直感:電流源($g_m v_{gs}$)が高抵抗の出力に流れ、電圧化される→大きい電圧利得。
2) ゲート接地(Common-Gate, CG)
-
入力インピーダンス $Z_i \approx \dfrac{1}{n g_m}$(低い)
入力はソース端子。入ってきた電流を $g_m$ がほぼそのまま取り込むので低Z。 -
出力インピーダンス $Z_o$:$r_D$(高い)
出力はドレインでCS同様に高Z。 -
電圧利得 $A_v \approx +\dfrac{n g_m}{G_L+g_D}$(同相で大きい)
$n$ はボディ効果分の“おまけ”。 - 電流利得 $A_i \approx 1$(電流バッファ的)
- 電力利得 $A_p \approx A_v$
直感:電流をほぼそのまま出力高抵抗へ押し上げて電圧に変える。低入力Z・高出力Z。
3) ドレイン接地(Common-Drain, CD=ソースフォロワ)
-
入力インピーダンス $Z_i$:$\infty$
入力はゲートで電流を食わない。 -
出力インピーダンス $Z_o \approx \dfrac{1}{n g_m}$(低い)
ソースがエミッタフォロワ相当で低Zバッファ。 -
電圧利得 $A_v \approx \dfrac{g_m+g_{mb}}{g_m+g_{mb}+G_L+g_D}\ \approx \dfrac{1}{n}\le 1
重い負荷((G_L\uparrow$)ほどゲインが下がるが**非反転**。 - 電流利得 $A_i$:$\infty$(出力低Z・入力ほぼ無限)
- 電力利得 $A_p$:$\infty$(理想的定義)
直感:ゲートの電圧をソースが“追随”。利得は≦1だが、駆動力が強い(低出力Z)のでバッファ用途。
# Small-signal MOS amplifier quick calculator + plots
# (CS/CG/CD gains & impedances; sweep RL)
import numpy as np
import matplotlib.pyplot as plt
# ---------- utilities ----------
def par(*vals):
"""Parallel of resistances (accepts np arrays)"""
vals = [np.asarray(v, dtype=float) for v in vals]
inv = 0.0
for v in vals:
inv = inv + 1.0/v
return 1.0/inv
def as_ohm(x):
"""Pretty ohms as scalar or array -> str"""
if np.ndim(x) == 0:
v = float(x)
if v == np.inf:
return "∞"
units = [(1e9, "GΩ"), (1e6, "MΩ"), (1e3, "kΩ"), (1.0, "Ω")]
for s, u in units:
if abs(v) >= s:
return f"{v/s:.3g} {u}"
return f"{v:.3g} Ω"
return x
# ---------- small-signal models ----------
def cs_params(gm, ro, RD, RL=np.inf, RG=np.inf, RS=0.0):
"""
Common-Source (gate input, drain output, source AC-ground)
Returns: Av, Zin, Zout
"""
# local feedback via RS (optional)
A = gm * par(RD, ro, RL)
if RS > 0:
A = A / (1.0 + gm * RS)
Av = -A
Zin = RG # ideal MOS gate
Zout = par(RD, ro)
return Av, Zin, Zout
def cg_params(gm, ro, RD, RL=np.inf, gmb=0.0):
"""
Common-Gate (source input, drain output, gate AC-ground)
Returns: Av, Zin, Zout
"""
gm_eff = gm + gmb
Av = + gm_eff * par(RD, ro, RL)
Zin = 1.0 / gm_eff
Zout = par(RD, ro)
return Av, Zin, Zout
def cd_params(gm, ro, RL, gmb=0.0, RG=np.inf):
"""
Common-Drain = Source Follower (gate input, source output, drain AC-ground)
Returns: Av, Zin, Zout
"""
gm_eff = gm + gmb
# Effective load seen by source (ro in parallel with RL because drain is AC-ground)
RLp = par(RL, ro)
Av = (gm_eff * RLp) / (1.0 + gm_eff * RLp)
Zin = RG
# Looking into source with gate/drain at AC-ground
G_L = 1.0/RL if np.isfinite(RL) else 0.0
gD = 1.0/ro if np.isfinite(ro) else 0.0
Zout = 1.0 / (gm_eff + gD + G_L)
return Av, Zin, Zout
# ---------- example parameters ----------
gm = 10e-3 # 10 mS
ro = 50e3 # 50 kΩ
RD = 10e3 # 10 kΩ (load resistor to supply for CS/CG)
RG = 1e9 # gate bias resistance (very large)
gmb_ratio = 0.2 # gmb/gm for body effect example
gmb = gmb_ratio * gm
# Sweep RL from 100 Ω to 100 kΩ
RLs = np.logspace(2, 5, 200)
# Compute sweeps
Av_cs, Zin_cs, Zout_cs = [], [], []
Av_cg, Zin_cg, Zout_cg = [], [], []
Av_cd, Zin_cd, Zout_cd = [], [], []
for RL in RLs:
av, zin, zout = cs_params(gm, ro, RD, RL=RL, RG=RG)
Av_cs.append(av); Zin_cs.append(zin); Zout_cs.append(zout)
av, zin, zout = cg_params(gm, ro, RD, RL=RL, gmb=gmb)
Av_cg.append(av); Zin_cg.append(zin); Zout_cg.append(zout)
av, zin, zout = cd_params(gm, ro, RL=RL, gmb=gmb, RG=RG)
Av_cd.append(av); Zin_cd.append(zin); Zout_cd.append(zout)
Av_cs = np.array(Av_cs); Av_cg = np.array(Av_cg); Av_cd = np.array(Av_cd)
Zout_cs = np.array(Zout_cs); Zout_cg = np.array(Zout_cg); Zout_cd = np.array(Zout_cd)
# ---------- print a few operating points ----------
def snapshot(RL_pick):
acs, zics, zocs = cs_params(gm, ro, RD, RL=RL_pick, RG=RG)
acg, zicg, zocg = cg_params(gm, ro, RD, RL=RL_pick, gmb=gmb)
acd, zizd, zozd = cd_params(gm, ro, RL=RL_pick, gmb=gmb, RG=RG)
print(f"\n=== RL = {as_ohm(RL_pick)} ===")
print(f"CS: Av={acs:.2f}, Zin≈{as_ohm(zics)}, Zout≈{as_ohm(zocs)}")
print(f"CG: Av={acg:.2f}, Zin≈{as_ohm(zicg)}, Zout≈{as_ohm(zocg)}")
print(f"CD: Av={acd:.3f}, Zin≈{as_ohm(zizd)}, Zout≈{as_ohm(zozd)}")
print("Example small-signal parameters:")
print(f"gm={gm*1e3:.2f} mS, ro={as_ohm(ro)}, RD={as_ohm(RD)}, gmb={gmb*1e3:.2f} mS")
for RL_pick in [1e3, 10e3, np.inf]:
snapshot(RL_pick)
# ---------- Plot 1: |Av| vs RL (one chart, log axes) ----------
plt.figure(figsize=(7,5))
plt.loglog(RLs, np.abs(Av_cs), label="CS |Av|")
plt.loglog(RLs, np.abs(Av_cg), label="CG |Av|")
plt.loglog(RLs, np.abs(Av_cd), label="CD |Av|")
plt.xlabel("Load resistance RL [Ω]")
plt.ylabel("|Av|")
plt.title("Voltage gain magnitude vs RL (CS/CG/CD)")
plt.grid(True, which="both", alpha=0.3)
plt.legend()
plt.show()
# ---------- Plot 2: Zout vs RL (one chart, log axes) ----------
plt.figure(figsize=(7,5))
plt.loglog(RLs, Zout_cs, label="CS Zout")
plt.loglog(RLs, Zout_cg, label="CG Zout")
plt.loglog(RLs, Zout_cd, label="CD Zout")
plt.xlabel("Load resistance RL [Ω]")
plt.ylabel("Output impedance [Ω]")
plt.title("Output impedance vs RL (CS/CG/CD)")
plt.grid(True, which="both", alpha=0.3)
plt.legend()
plt.show()
カレントミラー回路 ─ 要点ぜんぶ乗せ解説
0) 何をする回路?
基準電流 $I_{\rm REF}$ を“鏡映”して、別の端子に同じ電流(あるいは比率を掛けた電流)を流す回路。
アナログICの バイアス生成/電流分配/電流モード演算/DAC で多用されます。
1) バイポーラ(BJT)の基本
-
ダイオード接続の $Q_{\rm REF}$ でベース–エミッタ電圧 $V_{BE}$ を作り、同じ $V_{BE}$ を与えたコピー素子 $Q_i$ に同じ電流を流す。
-
面積比(エミッタ面積)でスケーリング:
$$
I_i=\frac{I_{S,i}}{I_{S,\rm REF}},I_{\rm REF}=\frac{A_i}{A_{\rm REF}},I_{\rm REF}
$$ -
Early 効果(有限の $r_o$)で電圧依存誤差が出る:
$I \approx I_0(1+V_{CE}/V_A)$ → $\Delta I/I \approx (V_{\rm out}-V_{\rm ref})/V_A$。
2) MOS の基本ミラー
長チャネル近似・飽和領域:
$$
I_D=\tfrac{1}{2}\mu_n C_{\rm ox}\frac{W}{L}(V_{OV})^2(1+\lambda V_{DS}),\quad V_{OV}=V_{GS}-V_{TH}
$$
-
ダイオード接続 $M_1$ で $V_{GS}$ を作り、同寸法 $M_2$ に同じ $V_{GS}$ を与えると
飽和($V_{DS}\ge V_{OV}$)の範囲で $I_{\rm OUT}\approx I_{\rm REF}$。 -
サイズ比でスケーリング:
$$
I_{\rm OUT}= \underbrace{\frac{(W/L)2}{(W/L)1}}{\alpha}, I{\rm REF}
$$ -
コンプライアンス電圧(最低出力電圧)
$$
V_{\rm out,min}\approx V_{OV,{\rm out}} \quad(\text{単純ミラー})
$$
電圧依存誤差(チャネル長変調)
$$
I\propto (1+\lambda V_{DS})\ \Rightarrow\
\frac{\Delta I}{I}\approx \lambda,(V_{\rm out}-V_{\rm ref})
$$
→ 出力抵抗 $r_o=1/(\lambda I)$ が有限なほど電圧で電流が“揺れる”。
3) 複数コピー/和と定数倍
- 同じゲート電圧を複数の MOSに配れば,
それぞれ $\alpha_j=(W/L)j/(W/L){\rm ref}$ 倍の電流を同時に生成可能。 -
並列に束ねれば整数倍電流:和はキルヒホッフ(電流則)で自動的に足し算。
例:3 本の同一ミラーを並列 ⇒ $3I_{\rm REF}$。
4) カレントステア型 DAC の肝
各分岐を 1, 2, 4, 8,… とバイナリ重みでスケーリングし、
スイッチで出力ノードに流すか捨てるかを切替。
理想なら $V_{\rm out}=R\cdot (\sum 2^k I)$。
(実機ではミスマッチ/グリッチ抑制のため、共通センタ配置やセグメント化を使う)
5) 誤差源と対策(MOS/BJT 共通)
- VDS(VCE)差:$\lambda$(Early)による電圧依存 → カスコードで抑圧。
- 寸法・VTH/IS ミスマッチ:ランダム $\propto 1/\sqrt{WL}$ → 面積を大きく、共通センタ配置。
- 温度:$\mu$, $V_{TH}$, $I_S$ が温度依存 → **基準回路(PTAT/CTAT の合成)**で補償。
- コンプライアンス不足:出力が飽和に落ちる → ヘッドルーム確保 or ワイドスイング・カスコード。
6) カスコード・カレントミラー(縦積で高抵抗化)
目的
- コピー素子の $V_{DS}$ をほぼ一定に固定し、$\lambda$ による電圧依存を抑える
- 出力抵抗を大幅に増加 → 電流の理想性が上がる
小信号での効果
(左右対称・長チャネルを仮定)
$$
r_{\text{out,cas}}\ \approx\ g_m,r_o^2\ ;(=\ A_v\cdot r_o)\ \gg r_o
$$
スライドの式と対応:
$r \simeq g_m r_{D} r_{D2} = A_v r_D$。
直感:上段トランジスタの増幅作用で、下段の電流変化を“打ち消す帰還”が掛かる。
ヘッドルーム(最小出力電圧)
-
単純カスコード(NMOSミラー):
$$
V_{\rm out,min}\ \approx\ V_{OV,{\rm cas}}+V_{OV,{\rm out}}\ \ (\simeq 2V_{OV})
$$これがデメリット(電源電圧に余裕が要る)。
-
ワイドスイング・カスコード/レギュレーテッド・カスコード(RGC):
バイアスの作り方やアンプで $V_{DS}$ をより低ヘッドルームで規定し、
高 $r_{\rm out}$ と 低ヘッドルーム を両立。
7) 設計レシピ(MOS 例)
- 目標電流 $I_{\rm REF}$ と許容 $V_{\rm out,min}$ を決める。
- $V_{OV}$ を選ぶ(ノイズ/スピード/ヘッドルームのトレードオフ、0.15–0.25 V が実用域)。
- $(W/L){\rm ref}=\dfrac{2I{\rm REF}}{\mu C_{\rm ox} V_{OV}^2}$ でデバイス寸法を計算。
- スケール比 $\alpha=(W/L){\rm out}/(W/L){\rm ref}$ を与えて出力電流設定。
- $\lambda$ を小さくするため 長めの L を選択(→ $r_o\uparrow$)。
- カスコードを使うなら Vbias を用意し、各素子が必ず飽和するよう電位関係をチェック。
- 版下は共通センタ/ダミーでミスマッチ抑制。
8) 使い方のコツ
- 電流の加算・減算は配線だけ(KCL)→ 電流モード演算に向く。
- 入力/出力ノードの電圧が設計通りに保てるか常に確認(コンプライアンス)。
- 大きなスイングや負荷容量がある場合は、ミラーの出力抵抗 × 負荷容量で極が落ち、応答が遅くなる → バッファや位相補償を検討。
1) 基本モデルと電流の分担
テール電流源 $I_0$ を持つ NMOS 差動対(左右のトランジスタの小信号 $g_m, r_o$ は等しい)。
-
バイアス時:
$I_{D1}=I_{D2}=I_0/2$ -
微小差動入力
$v_{id}=v_{in1}-v_{in2}$ を加えると,
テール電流源の小信号抵抗が十分大(理想)⇒ソース節点は交流的に固定。
したがってドレイン電流の変化は$$
\Delta I_{D1}=+\frac{g_m}{2},v_{id},\qquad
\Delta I_{D2}=-\frac{g_m}{2},v_{id}
$$(スライドの $I_{D1}=I_0/2+\Delta I_D,\ I_{D2}=I_0/2-\Delta I_D$ に一致)
2) 利得(抵抗負荷の例)
(A) 差動利得(fully-differential 出力)
$$
v_{o1}=-\Delta I_{D1},R_D,\quad
v_{o2}=-\Delta I_{D2},R_D
$$
$$
\boxed{;A_{vd}\equiv\frac{v_{o1}-v_{o2}}{v_{id}}
=-g_m,R_D;}
$$
(シングルエンド CS と同じ大きさ)
(B) シングルエンド出力(片側だけ観測)
$$
\boxed{;A_{v,\text{single}}=\frac{v_{o1}}{v_{id}}
=-\frac{g_m R_D}{2};}
$$
(差動出力の半分になるのが定石)
(C) 能動負荷(ミラー等)を使うと
抵抗 $R_D$ の代わりに小信号出力抵抗を使えばよい:
$$
\boxed{A_{vd}\approx g_m,(r_{o,\text{N}}\parallel r_{o,\text{load}})}
$$
3) 入出力インピーダンス
-
入力(MOS ゲート)
$\boxed{Z_{in}\to\infty}$(実際はゲート抵抗や容量が支配) -
出力(各ドレイン)
$\boxed{Z_{out}\approx R_D\parallel r_o}$(能動負荷ならその並列)
4) 同相入力と CMRR
同相入力 $v_{ic}$(両ゲートに同じ変化):
理想テール電流源(小信号抵抗 $r_{tail}\to\infty$)なら
$$
\Delta I_{D1}\approx \Delta I_{D2}\approx 0 \Rightarrow A_{vc}\approx 0
$$
現実には有限の $r_{tail}$ により少し漏れる:
$$
\boxed{;A_{vc}\ \approx\ -,\frac{R_D\parallel r_o}{2,r_{tail}};}
$$
(オーダ感:テールが硬いほど小さくなる)
同相除去比(重要!)
$$
\boxed{;\text{CMRR}\equiv\left|\frac{A_{vd}}{A_{vc}}\right|
\approx \frac{2,g_m,r_{tail}}{1+\frac{r_{tail}}{R_D\parallel r_o}};}
$$
理想では $\to\infty$。
5) 実務の勘所(NMOS 差動対)
-
トランスコンダクタンス
$g_m=\dfrac{2I_D}{V_{OV}}$(各アーム $I_D=I_0/2$) -
差動入力感度
小信号 $\Rightarrow$ 片側の電流勾配は $g_m/2$。 -
入力同相範囲(ICMR)
NMOS差動対(ソース側電流源 $M_{\rm tail}$)なら$$
\begin{aligned}
&\text{下限}\ \approx V_{SS}+V_{OV,\rm tail}+V_{GS,\rm in} \
&\text{上限}\ \approx V_{DD}-V_{OV,\rm load}-V_{OV,\rm in}
\end{aligned}
$$(両トランジスタ・負荷・テールが飽和を保てる電位を確保)
-
出力スイング
片側出力は $\approx [V_{OV,\rm out}\ ,\ V_{DD}-V_{OV,\rm load}]$ の範囲で線形。
6) カスコードや能動負荷を入れると
- 能動負荷:$r_o$ が大→ $A_{vd}\uparrow$
-
カスコード差動対:出力抵抗 $\sim g_m r_o^2$ まで上げられ、
同相利得も低下(CMRR 向上)。ただしヘッドルームが増える。
7) 1分設計レシピ(抵抗負荷・片側出力)
- 目標利得 $A_{v,\text{single}}$ と電源/スイングから $R_D$ を仮置き。
- テール電流 $I_0$ と $V_{OV}$ を選び、
$g_m=2(I_0/2)/V_{OV}=I_0/V_{OV}$。 - 利得チェック:$-g_mR_D/2$ が目標か?
足りなければ $R_D\uparrow$(ただしスイング↓)か $V_{OV}\downarrow$(速度↓)か能動負荷へ。 - CMRR が不足→ テールの $r_{tail}$ を大きく(良い電流源)、左右マッチング、レイアウト最適化。
8) まとめ(要点)
- 差動利得(差→差) $\boxed{A_{vd}=-g_mR_D}$(片側出力は半分)。
- 同相利得はテールの硬さで決まり、理想なら 0。
- CMRR は $\sim g_m r_{tail}$ に比例して改善。
- 能動負荷・カスコードで大利得&高 CMRR、ただしヘッドルームに注意。
このセットを覚えておけば、スライドの各式・図は全部読めます。