SPICEシミュレータとBSIM4モデルの協調
~なるべく詳しく解説します~
1. MOSFETモデル(BSIM4)が返す情報の全体像
1.1 端子電圧 → 物理パラメータ → 電流・容量・偏微分
BSIM4の実装コード(C/C++やVerilog-Aなど)では、ユーザが指定するMOSFETパラメータ(しきい値電圧や移動度係数など)と、SPICEから与えられる端子電圧 $V_g, V_d, V_s, V_b$ を用いて、以下を計算します。
-
チャネル電流 $I_d$
- 短チャネル効果やチャネル長変調、サブスレッショルド領域などを考慮し、ドレイン電流がどう変化するかを式で評価。
-
寄生容量・ダイオード容量
- ゲート–ドレイン / ゲート–ソース / ゲート–バルクの各容量 $(C_{gd}, C_{gs}, C_{gb})$ や、ドレイン–バルク / ソース–バルクの接合容量 $(C_{db}, C_{sb})$ など。
-
接合ダイオード電流
- バルク–ドレイン、バルク–ソースの pn 接合電流を電圧依存で算出し、リーク電流や電圧依存容量を含む。
-
偏微分係数(ヤコビアン要素)
- $\frac{\partial I_d}{\partial V_g}, \frac{\partial I_d}{\partial V_d}$ などの微分値や、容量の電圧微分などを返し、ニュートン–ラプソン法・小信号解析に必要な情報を提供。
モデルは「端子電圧を与えるとこれらの値を返す」ことに専念し、回路全体を解くわけではありません。
2. SPICEシミュレータが行うこと
2.1 ネットリスト解析とインスタンス生成
-
ネットリスト読込
例:「M1 drain gate source bulk mymodel L=... W=...」のような記述から、デバイス名(M1)、各端子(drain, gate, source, bulk)の接続先ノードを割り当てる。
「mymodel」に紐づく BSIM4 パラメータファイル(.MODELステートメントや .lib)も同時に読み込み、MOSFET設計寸法 (L, W) などと合わせて「後で BSIM4 を呼び出すためのインスタンス情報」を構築。 -
インスタンス構造の準備
シミュレータ内部で “M1” に対応するインスタンスを生成し、BSIM4モデルに必要なパラメータ(たとえば 100以上ある細かな物理パラメータ群)をセットしておく。
これら多数のパラメータは、後で MOSFETモデル(BSIM4)のプログラムが端子電圧と組み合わせて計算を行う際に使用され、チャネル電流や寄生容量、ダイオード電流などを導出するための基礎情報となる。
2.2 MNA行列構造の用意
2.2.1 Modified Nodal Analysis (MNA) の枠組み
-
MNAの基本思想
- 一般的なノード解析では「ノード電位を未知変数」とするが、電圧源などを扱うために Modified Nodal Analysis (MNA) が採用される。
- 結果、未知変数は「(ノード数 - 1) + (電圧源数)」になり、大きさ $(N-1+M)\times(N-1+M)$ の行列・ベクトルを用意する。
-
ノード数 + 電圧源数が行列サイズを決める
- ノードの数や電圧源の数によって、最終的な行列サイズが決定される。
- シミュレータはこの情報をもとにメモリを確保し、非線形解法(ニュートン–ラプソンなど)や AC 解析で利用する。
2.2.2 MOSFETが絡む場合のプログラム設計
-
MOSFET端子割り当て
- ゲート / ドレイン / ソース / バルクという 4端子をどのノード番号に対応させるかを管理。
- 行列の (ゲート, ドレイン) 成分に容量を足し込む、といった形で、どの要素をどの位置に反映するかを決める。
-
BSIM4対応:どの要素をどこに加算するか
- BSIM4モデルが返す容量や電流を、MNA行列の適切な箇所に加算(スタンピング)する方法が、シミュレータ内部にプログラム済み。
- ユーザは “ゲート–ドレイン容量 C=○○” と書かなくても、BSIM4 呼び出しだけで自動反映される。
2.2.3 メモリ構造と最適化
-
疎行列(Sparse Matrix)管理
- 多くの素子がある大規模回路でも、ほとんどの行列要素は 0 になるため、疎行列技術を使う。
- 非ゼロ要素だけを管理することで、BSIM4モデルを大量に配置しても効率的にスタンピング・解法が可能。
3. 「呼び出し→行列更新→解く」の具体的ステップ
3.1 DC解析や過渡解析の1ステップの流れ
-
シミュレータ:推定ノード電圧を用意
- DC解析なら初期値を 0V や簡易な手法で推定、過渡解析なら前ステップの解を流用するなど。
-
MOSFETモデル(BSIM4)を呼び出す
- 端子電圧 $V_g, V_d, V_s, V_b$ とインスタンスに設定済みのパラメータを組み合わせて、$I_d, C_{gd}, \frac{\partial I_d}{\partial V_g}$ などを計算。
-
行列スタンピング
- 返ってきた 容量や電流 は、メインの MNA 行列(あるいは過渡解析用のコンパニオンモデル行列) にスタンピングされます。
- 電流源として KCL に加算する場合や、容量を導体 + 電流源に変換して対角・オフ対角要素に加算する場合など。
- 一方、偏微分係数(ヤコビアン要素) は、ニュートン–ラプソン法や小信号解析用の ヤコビアン行列 にスタンピングされます。
- 非線形解法で電圧を反復的に更新するとき、この偏微分情報が解の収束を導くために必須となるわけです。
- 返ってきた 容量や電流 は、メインの MNA 行列(あるいは過渡解析用のコンパニオンモデル行列) にスタンピングされます。
-
連立方程式を解く
- ニュートン–ラプソン法などでノード電圧を修正。収束しなければまたモデル呼び出し → スタンピング → 解く … を繰り返す。
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ステップ
-
推定ノード電圧
- 前の時刻ステップの解をもとに、$\mathbf{x}^{(k)}$ を用意。
-
BSIM4呼び出し
- 端子電圧 $\mathbf{x}^{(k)}$ を入力し、インスタンスパラメータ群を参照して $I_d, C_{gd}, \ldots$ を取得。
-
行列スタンピング
- (上記で述べたとおり)容量や電流 → MNA行列、偏微分係数 → ヤコビアン行列
-
解く
- 収束するまで 2~3 を繰り返し、最終的に $\mathbf{x}^{(k+1)}$ が得られる。
-
時刻を進める
- 次の時刻へ。これを繰り返すことで過渡解析結果を取得。
6. ユーザにとっての最終的な利点
-
高精度な物理モデルが自動化
- BSIM4の高度な短チャネル効果や寄生容量を、自分で回路素子を記述することなく使える。
-
汎用性と将来性
- SPICEは MNA の解法フレームワークを保持し、新しい MOSFETモデルが出てもモデルコードさえ追加すれば対応可能。
-
簡潔なネットリスト
- ユーザは「M1 drain gate source bulk mymodel L=... W=...」と書くだけで、BSIM4の数式が裏で動き、行列スタンピングも自動。
7. まとめ
-
MOSFETモデル(BSIM4)
- 端子電圧 + 多数のパラメータ → チャネル電流、寄生容量、ダイオード電流、偏微分係数を計算する “プログラム”。
- “等価回路”はあくまで仕様書の概念図。実装は数式ベース。
-
SPICEシミュレータ
- 回路全体のノードと電圧源数から MNA 行列を初期化し、MOSFETモデルが返す情報をスタンピングして解を求める。
- 容量・電流はメインの MNA 行列へ、偏微分係数はヤコビアン行列へスタンピングする形で、非線形回路方程式の解を進める。
両者が「端子電圧 → モデル計算 → 行列スタンピング → 解」のサイクルを繰り返すことで、最終的に回路の動作点や過渡応答、AC特性が得られます。これにより、ユーザは簡潔なネットリスト記述だけで高度な MOSFET シミュレーションを実行可能。BSIM4対応の SPICE シミュレータは、内部でどのノード間に何を足し込むかをプログラムしており、ユーザが余計なサブサーキットを書く必要はないのが大きなメリットです。
おわりに
本記事では、MOSFETモデル(BSIM4)と SPICE シミュレータがどのように協力して回路を解いているか、詳しく解説しました。シミュレータは 行列構築と解法 に、モデルは 物理式の評価 に特化し、インターフェースによって結合しています。これを理解すると、モデルパラメータの調整や解析トラブルシューティングにも役立つでしょう。