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?

SPICEシミュレータとMOSFETモデルの協調動作

Last updated at Posted at 2025-01-03

SPICEシミュレータとBSIM4モデルの協調

~なるべく詳しく解説します~


1. MOSFETモデル(BSIM4)が返す情報の全体像

1.1 端子電圧 → 物理パラメータ → 電流・容量・偏微分

BSIM4の実装コード(C/C++やVerilog-Aなど)では、ユーザが指定するMOSFETパラメータ(しきい値電圧や移動度係数など)と、SPICEから与えられる端子電圧 $V_g, V_d, V_s, V_b$ を用いて、以下を計算します。

  1. チャネル電流 $I_d$

    • 短チャネル効果やチャネル長変調、サブスレッショルド領域などを考慮し、ドレイン電流がどう変化するかを式で評価。
  2. 寄生容量・ダイオード容量

    • ゲート–ドレイン / ゲート–ソース / ゲート–バルクの各容量 $(C_{gd}, C_{gs}, C_{gb})$ や、ドレイン–バルク / ソース–バルクの接合容量 $(C_{db}, C_{sb})$ など。
  3. 接合ダイオード電流

    • バルク–ドレイン、バルク–ソースの pn 接合電流を電圧依存で算出し、リーク電流や電圧依存容量を含む。
  4. 偏微分係数(ヤコビアン要素)

    • $\frac{\partial I_d}{\partial V_g}, \frac{\partial I_d}{\partial V_d}$ などの微分値や、容量の電圧微分などを返し、ニュートン–ラプソン法・小信号解析に必要な情報を提供。

モデルは「端子電圧を与えるとこれらの値を返す」ことに専念し、回路全体を解くわけではありません。


2. SPICEシミュレータが行うこと

2.1 ネットリスト解析とインスタンス生成

  1. ネットリスト読込
    例:「M1 drain gate source bulk mymodel L=... W=...」のような記述から、デバイス名(M1)、各端子(drain, gate, source, bulk)の接続先ノードを割り当てる。
    「mymodel」に紐づく BSIM4 パラメータファイル(.MODELステートメントや .lib)も同時に読み込み、MOSFET設計寸法 (L, W) などと合わせて「後で BSIM4 を呼び出すためのインスタンス情報」を構築。

  2. インスタンス構造の準備
    シミュレータ内部で “M1” に対応するインスタンスを生成し、BSIM4モデルに必要なパラメータ(たとえば 100以上ある細かな物理パラメータ群)をセットしておく。
    これら多数のパラメータは、後で MOSFETモデル(BSIM4)のプログラムが端子電圧と組み合わせて計算を行う際に使用され、チャネル電流や寄生容量、ダイオード電流などを導出するための基礎情報となる。


2.2 MNA行列構造の用意

2.2.1 Modified Nodal Analysis (MNA) の枠組み

  1. MNAの基本思想

    • 一般的なノード解析では「ノード電位を未知変数」とするが、電圧源などを扱うために Modified Nodal Analysis (MNA) が採用される。
    • 結果、未知変数は「(ノード数 - 1) + (電圧源数)」になり、大きさ $(N-1+M)\times(N-1+M)$ の行列・ベクトルを用意する。
  2. ノード数 + 電圧源数が行列サイズを決める

    • ノードの数や電圧源の数によって、最終的な行列サイズが決定される。
    • シミュレータはこの情報をもとにメモリを確保し、非線形解法(ニュートン–ラプソンなど)や AC 解析で利用する。

2.2.2 MOSFETが絡む場合のプログラム設計

  1. MOSFET端子割り当て

    • ゲート / ドレイン / ソース / バルクという 4端子をどのノード番号に対応させるかを管理。
    • 行列の (ゲート, ドレイン) 成分に容量を足し込む、といった形で、どの要素をどの位置に反映するかを決める。
  2. BSIM4対応:どの要素をどこに加算するか

    • BSIM4モデルが返す容量や電流を、MNA行列の適切な箇所に加算(スタンピング)する方法が、シミュレータ内部にプログラム済み。
    • ユーザは “ゲート–ドレイン容量 C=○○” と書かなくても、BSIM4 呼び出しだけで自動反映される。

2.2.3 メモリ構造と最適化

  • 疎行列(Sparse Matrix)管理
    • 多くの素子がある大規模回路でも、ほとんどの行列要素は 0 になるため、疎行列技術を使う。
    • 非ゼロ要素だけを管理することで、BSIM4モデルを大量に配置しても効率的にスタンピング・解法が可能。

3. 「呼び出し→行列更新→解く」の具体的ステップ

3.1 DC解析や過渡解析の1ステップの流れ

  1. シミュレータ:推定ノード電圧を用意

    • DC解析なら初期値を 0V や簡易な手法で推定、過渡解析なら前ステップの解を流用するなど。
  2. MOSFETモデル(BSIM4)を呼び出す

    • 端子電圧 $V_g, V_d, V_s, V_b$ とインスタンスに設定済みのパラメータを組み合わせて、$I_d, C_{gd}, \frac{\partial I_d}{\partial V_g}$ などを計算。
  3. 行列スタンピング

    • 返ってきた 容量や電流 は、メインの MNA 行列(あるいは過渡解析用のコンパニオンモデル行列) にスタンピングされます。
      • 電流源として KCL に加算する場合や、容量を導体 + 電流源に変換して対角・オフ対角要素に加算する場合など。
    • 一方、偏微分係数(ヤコビアン要素) は、ニュートン–ラプソン法や小信号解析用の ヤコビアン行列 にスタンピングされます。
      • 非線形解法で電圧を反復的に更新するとき、この偏微分情報が解の収束を導くために必須となるわけです。
  4. 連立方程式を解く

    • ニュートン–ラプソン法などでノード電圧を修正。収束しなければまたモデル呼び出し → スタンピング → 解く … を繰り返す。

3.2 AC解析の場合

  • 動作点(DC解)が得られたあと、MOSFETモデルは $\frac{\partial I_d}{\partial V_g}, \frac{\partial I_d}{\partial V_d}$ や容量の微分値を返す。
  • シミュレータはそれらを線形行列に反映し、周波数ごとに解いてゲイン・位相・インピーダンスなど小信号特性を算出する。

4. なぜ MOSFETモデルは「等価回路図」を直接出力しないのか

  • 等価回路図は概念的な説明

    • BSIM4仕様書を見ると、ゲート容量やドレイン–バルクダイオードを回路素子に分解した図があるが、実際には「端子電圧 → 数式評価 → 結果を返す」仕組みで実装される。
  • SPICEシミュレータのスタンピング機能

    • シミュレータは “ゲート–ドレイン容量” などをどこの行列要素へ足し込むか、あらかじめプログラムしてあるため、ユーザは回路素子を個別に書く必要がない。

5. 詳細ステップのイメージ

5.1 過渡解析の1ステップ

  1. 推定ノード電圧

    • 前の時刻ステップの解をもとに、$\mathbf{x}^{(k)}$ を用意。
  2. BSIM4呼び出し

    • 端子電圧 $\mathbf{x}^{(k)}$ を入力し、インスタンスパラメータ群を参照して $I_d, C_{gd}, \ldots$ を取得。
  3. 行列スタンピング

    • (上記で述べたとおり)容量や電流 → MNA行列偏微分係数 → ヤコビアン行列
  4. 解く

    • 収束するまで 2~3 を繰り返し、最終的に $\mathbf{x}^{(k+1)}$ が得られる。
  5. 時刻を進める

    • 次の時刻へ。これを繰り返すことで過渡解析結果を取得。

6. ユーザにとっての最終的な利点

  1. 高精度な物理モデルが自動化

    • BSIM4の高度な短チャネル効果や寄生容量を、自分で回路素子を記述することなく使える。
  2. 汎用性と将来性

    • SPICEは MNA の解法フレームワークを保持し、新しい MOSFETモデルが出てもモデルコードさえ追加すれば対応可能。
  3. 簡潔なネットリスト

    • ユーザは「M1 drain gate source bulk mymodel L=... W=...」と書くだけで、BSIM4の数式が裏で動き、行列スタンピングも自動。

7. まとめ

  • MOSFETモデル(BSIM4)

    • 端子電圧 + 多数のパラメータ → チャネル電流、寄生容量、ダイオード電流、偏微分係数を計算する “プログラム”。
    • “等価回路”はあくまで仕様書の概念図。実装は数式ベース。
  • SPICEシミュレータ

    • 回路全体のノードと電圧源数から MNA 行列を初期化し、MOSFETモデルが返す情報をスタンピングして解を求める。
    • 容量・電流はメインの MNA 行列へ、偏微分係数はヤコビアン行列へスタンピングする形で、非線形回路方程式の解を進める。

両者が「端子電圧 → モデル計算 → 行列スタンピング → 解」のサイクルを繰り返すことで、最終的に回路の動作点や過渡応答、AC特性が得られます。これにより、ユーザは簡潔なネットリスト記述だけで高度な MOSFET シミュレーションを実行可能。BSIM4対応の SPICE シミュレータは、内部でどのノード間に何を足し込むかをプログラムしており、ユーザが余計なサブサーキットを書く必要はないのが大きなメリットです。


おわりに

本記事では、MOSFETモデル(BSIM4)と SPICE シミュレータがどのように協力して回路を解いているか、詳しく解説しました。シミュレータは 行列構築と解法 に、モデルは 物理式の評価 に特化し、インターフェースによって結合しています。これを理解すると、モデルパラメータの調整や解析トラブルシューティングにも役立つでしょう。

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?