シミュレーションとは、ある現象に対して、その現象過程を記述すべき「モデル」をつくり、いくつかの基本入力パラメータに対し、コンピュータにより複雑な計算をし、結果を予測するものです。コンピュータの普及とともに、色々な分野において、専用のシミュレータによる色々なシミュレーションが行われるようになってきました。
回路関係では、LSI設計解析用、ディスクリート回路・構造設計解析用として、下記のようなシミュレータが使われています。回路シミュレータとは、回路図または回路素子をつないだ情報(ネットリスト)から、その回路の電圧電流を計算してくれるツールです。SPICEは、回路シミュレータの範疇にあります。
SPICEは、1972年米国カリフォルニア大バークレイ校(UCB)で、ICの設計検証の目的で、学位論文として開発されました。
UCB版としては、SPICE2(FORTRAN使用)、その後SPICE3(C使用)と進化を続けましたが、ヒューマンインターフェイスの点では、使いにくいものでした。そして、公共機関で開発されたということで、パブリックドメインソフトとしてソースコードが公開されていました。これに注目した米国のベンチャー企業が、SPICE2の完成版であるSPICE2G6が出された1980年代の半ば頃から、UCBのソースコードをベースに、回路図エディタ、波形表示機能等をはじめとする色々な改良・機能拡張を加えて、SPICEの販売を始めました。現在は、SPICE3をベースにしたものも含めて多く(数十種類?)のSPICE系シミュレータがパッケージソフトやフリーウェアとして、全世界に流通しています。
そして現在市販のものの多くは、
・アナログ/ディジタル混在のシミュレーション可能。
・トランジスタレベルの解析に加えて、アナログ・ビヘイビア・モデル(マクロモデル)により更に大きな回路の解析も可能。
となっています。
SPICEは、回路シミュレータでは唯一、デファクトスタンダードとなっており、最初の開発から40年以上たった今でも、ICやディスクリート回路の設計に利用され続けています。
電子回路は、線形素子の抵抗、非線形素子のダイオードやトランジスタ、電気エネルギの充放電を行うコンデンサやコイルなどから構成されます。そのため回路情報は一般的に非線形微分方程式の形で表されます。入力されたネットリスト情報から、節点解析法によりノードの電圧を未知数としてキルヒホッフの電流則に従い回路方程式をたて、できた非線形微分方程式を非線形代数方程式、更に線形代数方程式に変形して解析しています。
現行の全てのSPICE系シミュレータのベースとなっているSPICE2G.6では、大きく以下のDC解析、AC解析、過渡解析の3種類の解析があります。ただし、どの解析を行なう場合も前処理としてDC動作ポイント解析を自動的に行ないます。
注意: 一般的なSPICEシミュレータを想定して記述しています。プログラムによっては当てはまらない場合もあります。
現在出回っているSPICEは、ほとんどが回路図エディタ機能を持っています。したがって、回路解析を行うには、まず解析したい回路を回路図として入力します。シミュレータに前もって用意されている回路部品のシンボルを選び出し、適当な位置に配置し、それらを導線(ワイヤ)で接続します。このとき、シミュレーション用の回路図は、基板パターン図のための回路図とは違う点が二つあります。
一つ目は、シミュレーションするために、回路には信号源や電源も記入する必要があることです。これには電圧源と電流源があり、SPICEの解析で使うほとんどの基本的な信号を発生させることができます。SPICE解析には、DC解析、AC解析、過渡解析の三大解析があります。電圧源と電流源は、設定を変えることでこれらのどの解析でも使用することができます。もし、既存の基本機能にはないもっと複雑な信号が必要である場合は、従属電源と呼ばれる電源を上記の電源(独立電源)と組み合わせることで対応できます。
二つ目の違う点は、回路図に配置する部品には、シミュレーションのための特性データを与えなければならないことです。コンピュータ内で回路を動作させるためには、回路図という絵の情報だけではだめです。配線された各部品が、加えられる電圧や流される電流に対して反応する特性データを持っていなければなりません。
理想的な受動素子(R,L,C)ならば、特性データとして抵抗値などの定数を一つ入力します。ダイオードやトランジスタなど複雑な非線形の特性を持つ能動素子では、モデル・パラメータと呼ばれる決められたいくつかの値を与えます。通常は、すでにシミュレータに組み込まれている部品の型名またはモデル名を指定することで、その部品特性に合ったモデルが選ばれ、シミュレーションに使用されます。これは、ダイオードなどの特性を、SPICEの基本機能を使って等価回路化したものが、SPICEプログラムに組み込まれている場合です。
もし、その組み込みモデルでは表せない特性のモデルが必要な場合は、SPICEの基本機能素子を色々に組み合わせてそれを実現します。そのモデルをパッケージ化して使いやすくする方法が、サブサーキットです。回路図には、任意のピン数をもったブラックボックスとして配置します。それがシミュレーションを実行するときに、指定したモデル・ファイルまたはモデル・ライブラリと呼ばれるデータを参照するという仕組みです。
上記は、作成する回路図の違いについてでしたが、シミュレーションを実行するには、あと二点設定しなければならない項目があります。それは、解析種類の設定と観測ポイントです。
一つ目の解析種類ですが、上述のようにSPICEには、大きく分けてDC解析、AC解析、過渡解析の三種類あります。簡単に言うと、DC解析は入力電源または信号源の直流値(電圧または電流値)を、時間とは無関係に変動させて応答を調べる解析です。AC解析は、正弦波信号源の回路への入力周波数をスイープさせ、回路の周波数特性を調べる解析です。最後の過渡解析は、正弦波やパルスなどを始めとした時間的に変化する信号を回路に入力し、その出力応答を調べる解析です。
二つ目の観測ポイントですが、SPICEに限らず回路図を電子化して扱う場合、ネットリストというどの部品のどの端子同士が結ばれているかを示すリストが使われます。SPICEに入力された回路図のすべての部品と部品を結ぶワイヤは、節点(ノード)として認識され、番号や名前が付けられます。 SPICEでは、解析が実行されるとすべてのノードの電圧が計算されます。また、部品の各端子に流れる電流も計算されます。解析結果をグラフ表示させるために、シミュレーションを実行した後または事前に、どのポイントを観測するのか指定してやる必要があります。
これぐらいで予備知識は十分です。あとは、実際にDEMO版などを入手し、試してみましょう!