MOSFET の資料置場


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/02c744c1-e47d-e957-d015-17b0878c08c5.png)
FETの説明図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/548ba9b0-26a6-769b-baa0-d54f31afd95f.png)
Behzad Razavi本のシンボル
バックゲート(B)は省略される


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/e826d22b-6ad8-5ea4-72fc-5eb46f93e609.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/69b7ccb6-b77b-ac5d-5cb0-e8542328ccb8.png)
動作点はドレインソース間電圧の負荷直線を引くことで求めることができる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/1bceb714-4394-5f22-b930-0fde319afab7.png)
線形領域と飽和領域の区別をつけよう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/e061199c-eefa-d234-1019-f2d58bd03566.png)
CMOS基板の上にNMOSとPMOS両方製造できる


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/e927ad30-c4aa-98e5-42cc-aac67040aece.png)
大信号と小信号に分解できる
入力の交流波形から小信号等価回路を作成するとき
コンデンサは短絡、直流電圧源は短絡、直流電流源は開放


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/5e71189d-d362-ab8d-2e1c-986e3859db35.png)











チャネル変調効果とVGS入力、ID出力特性の式
~~~
def calculate_current(W, L, VGS, Vth, VDS, mobility, oxide_capacitance, lambda_param):
    electron_mobility = mobility
    gate_oxide_capacitance = oxide_capacitance
    voltage = 0.5 * electron_mobility * gate_oxide_capacitance * (W/L) * (VGS - Vth)**2
    current = voltage * (1 + lambda_param * VDS)
    return current

# 入力値の設定
W = 10    # チャネル幅（Width）
L = 5     # チャネル長（Length）
VGS = 3   # ゲートからソースへの電圧（Gate-to-Source Voltage）
Vth = 1   # 閾値電圧（Threshold Voltage）
VDS = 4   # ドレインからソースへの電圧（Drain-to-Source Voltage）
mobility = 100   # 電子の移動度（Electron Mobility）
oxide_capacitance = 1.5   # 単位あたりのゲート酸化膜容量（Gate Oxide Capacitance）
lambda_param = 0.01   # ラムダパラメータ（Lambda Parameter）

# 電流の計算
ID = calculate_current(W, L, VGS, Vth, VDS, mobility, oxide_capacitance, lambda_param)
print("ID =", ID)
~~~





線形領域　三極管領域
~~~
def calculate_triode_region(mu, Cox, W_L, VGS, Vth, VDS):
    term1 = mu * Cox * W_L
    term2 = (VGS - Vth) * VDS - ((VDS)**2) / 2
    return term1 * term2

# パラメータを設定
mu = 100e-4  # 電子の移動度（例として100e-4を使用）
Cox = 1e-6   # 単位あたりのゲート酸化膜容量（例として1e-6を使用）
W_L = 10     # W/L比（例として10を使用）
VGS = 5      # ゲート-ソース電圧（例として5を使用）
Vth = 1      # 閾値電圧（例として1を使用）
VDS = 3      # ドレイン-ソース電圧（例として3を使用）

# 三極管の領域を計算
triode_region = calculate_triode_region(mu, Cox, W_L, VGS, Vth, VDS)
print("三極管の領域:", triode_region)
~~~
基板バイアス効果とミラー回路
~~~
import math

def calculate_VGS(ID, electron_mobility, gate_oxide_capacitance_per_unit_area, W_over_L, Vth):
    VGS = math.sqrt(ID / (0.5 * electron_mobility * gate_oxide_capacitance_per_unit_area * (W_over_L))) + Vth
    return VGS

# 例として値を代入して計算する
ID = 0.1  # IDの値
electron_mobility = 0.1  # 電子の移動度
gate_oxide_capacitance_per_unit_area = 0.5  # 単位あたりのゲート酸化膜容量
W_over_L = 2  # W/L
Vth = 0.5  # 閾値電圧

result = calculate_VGS(ID, electron_mobility, gate_oxide_capacitance_per_unit_area, W_over_L, Vth)
print("VGS =", result)
~~~


相互コンダクタンスgm＝IDをVGSで微分した式
~~~
# 電子の移動度 (μ)
mobility = 0.1  # 例として 0.1 とします (適切な値に置き換えてください)

# 単位あたりのゲート酸化膜容量 (Cox)
gate_capacitance_per_unit_area = 1.5e-6  # 例として 1.5e-6 F/m^2 とします (適切な値に置き換えてください)

# W/L
w_over_l = 5  # 例として 5 とします (適切な値に置き換えてください)

# VGS - Vth
vgs_minus_vth = 0.8  # 例として 0.8 V とします (適切な値に置き換えてください)

# 電子の移動度 × 単位あたりのゲート酸化膜容量 × (W/L) × (VGS - Vth)
gm = mobility * gate_capacitance_per_unit_area * w_over_l * vgs_minus_vth

print("計算結果 (gm):", gm)
~~~

 チャネル変調効果がある場合のVGSとID
~~~
import numpy as np
import matplotlib.pyplot as plt

# パラメータの設定
mu_n = 100e-4  # 電子の移動度 [m^2/Vs]
C_ox = 10e-6   # 酸化膜容量 [F/m^2]
W = 10e-6      # チャネルの幅 [m]
L = 1e-6       # チャネルの長さ [m]
V_TH = 0.5     # しきい値電圧 [V]
lambda_ = 0.02 # チャネル長変調係数 [1/V]

# VGSの設定
VGS = 1.0 # ゲート-ソース電圧 [V]

# VDSの範囲を設定
VDS_values = np.linspace(0, 2, 100) # VDSの範囲 [V]

# チャネル変調効果がある場合のIDを計算
ID_with_channel_modulation = 0.5 * mu_n * C_ox * W/L * (VGS - V_TH)**2 * (1 + lambda_ * VDS_values)

# グラフの描画
plt.plot(VDS_values, ID_with_channel_modulation, label='With Channel Modulation', color='blue')
plt.xlabel('VDS [V]')
plt.ylabel('ID [A]')
plt.title('ID vs VDS with Channel Modulation')
plt.legend()
plt.grid(True)
plt.show()
~~~


コンデンサを入れたソース接地増幅回路
(1/(1+sC1R1))×(-gm×抵抗)× (1/(1+sC2R2))

~~~

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal

# パラメータの設定
gm = 0.1  # トランジスタのトランスコンダクタンス
R1 = 10e3  # 抵抗1
C1 = 100e-9  # コンデンサ1
R2 = 5e3  # 抵抗2
C2 = 50e-9  # コンデンサ2

# 伝達関数の分子と分母の係数を計算
numerator = [1]
denominator = [1, (1/(C1*R1)), -gm*R1, (gm*R1/(C2*R2)), 0]

# 伝達関数を作成
sys = signal.TransferFunction(numerator, denominator)

# 周波数応答を計算
w, mag, phase = signal.bode(sys)

# グラフのプロット
plt.figure()
plt.semilogx(w, mag)  # ゲインのプロット
plt.title('Frequency Response')
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Gain [dB]')
plt.grid(True)

plt.figure()
plt.semilogx(w, phase)  # 位相のプロット
plt.title('Phase Response')
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Phase [degrees]')
plt.grid(True)

plt.show()
~~~