本文へスキップ

シムサーキット有限会社は回路シミュレーションに関連する技術/製品/サービスを提供する会社です。

SPICEによる回路シミュレーションとはWhat is circuit simulation?

1.回路シミュレータとは

 シミュレーションとは、ある現象に対して、その現象過程を記述すべき「モデル」をつくり、いくつかの基本入力パラメータに対し、コンピュータにより複雑な計算をし、結果を予測するものです。コンピュータの普及とともに、色々な分野において、専用のシミュレータによる色々なシミュレーションが行われるようになってきました。
 回路関係では、LSI設計解析用、ディスクリート回路・構造設計解析用として、下記のようなシミュレータが使われています。回路シミュレータとは、回路図または回路素子をつないだ情報(ネットリスト)から、その回路の電圧電流を計算してくれるツールです。SPICEは、回路シミュレータの範疇にあります。

電子回路関連で使用されるシミュレータの種類

・回路シミュレータ
・論理シミュレータ
・伝送線路シミュレータ
・電磁界シミュレータ /EMIシミュレータ
・熱解析シミュレータ

2.SPICEの歴史

SPICEは、1972年米国カリフォルニア大バークレイ校(UCB)で、ICの設計検証の目的で、学位論文として開発されました。

Simulation Program with Integrated Circuit Emphasis

UCB版としては、SPICE2(FORTRAN使用)、その後SPICE3(C使用)と進化を続けましたが、ヒューマンインターフェイスの点では、使いにくいものでした。そして、公共機関で開発されたということで、パブリックドメインソフトとしてソースコードが公開されていました。これに注目した米国のベンチャー企業が、SPICE2の完成版であるSPICE2G6が出された1980年代の半ば頃から、UCBのソースコードをベースに、回路図エディタ、波形表示機能等をはじめとする色々な改良・機能拡張を加えて、SPICEの販売を始めました。現在は、SPICE3をベースにしたものも含めて多く(数十種類?)のSPICE系シミュレータがパッケージソフトやフリーウェアとして、全世界に流通しています。 そして現在市販のものの多くは、

・アナログ/ディジタル混在のシミュレーション可能。
・トランジスタレベルの解析に加えて、アナログ・ビヘイビア・モデル(マクロモデル)により更に大きな回路の解析も可能。

となっています。
SPICEは、回路シミュレータでは唯一、デファクトスタンダードとなっており、最初の開発から40年以上たった今でも、ICやディスクリート回路の設計に利用され続けています。


3.回路シミュレーションをする目的とメリット

回路シミュレーションをする目的は、概略以下の2項目に分けられます。
  (1) 理論の検証
  (2) 回路パフォーマンスと歩留まりの解析

回路シミュレーションのメリットには、以下のような項目が上げられます。
  (1) コストを抑えられる。(部品、実験ボード、測定器がいらない)
  (2) 時間短縮ができる。(部品手配、実験ボード製作、測定器手配などの工数)
  (3) 実測不可能なものも測ることができる。(コンピュータ上の理想の測定環境)
  (4) 感電、素子の破裂などが無く、安全である。

ただし、回路シミュレーションとブレッドボード実験は、互いに補い合うものであり、シミュレーションによって大幅にブレッドボード実験の工数を減らすことができても、予測できないレイアウト上の問題などの可能性があり、完全な代用にはならないことに注意して下さい。

このことに関連して、極端な理論として、「完全に模擬できないので、シミュレーションは使い物にならない。」という方(某一流メーカーのカリスマエンジニアなど)がいますが、これはシミュレーションという科学技術を十分に理解していない故の言葉です。

4.アルゴリズム

 電子回路は、線形素子の抵抗、非線形素子のダイオードやトランジスタ、電気エネルギの充放電を行うコンデンサやコイルなどから構成されます。そのため回路情報は一般的に非線形微分方程式の形で表されます。入力されたネットリスト情報から、節点解析法によりノードの電圧を未知数としてキルヒホッフの電流則に従い回路方程式をたて、できた非線形微分方程式を非線形代数方程式、更に線形代数方程式に変形して解析しています。


5.解析の種類

 現行の全てのSPICE系シミュレータのベースとなっているSPICE2G.6では、大きく以下のDC解析、AC解析、過渡解析の3種類の解析があります。ただし、どの解析を行なう場合も前処理としてDC動作ポイント解析を自動的に行ないます。

  1. DC動作ポイント解析

    以下の処理を行ないます。
      ・ コンデンサは解放とする。
      ・ コイルは短絡する。
      ・ 時間の導関数を持つ素子の値は0とする。
      ・ 半導体等はモデルにより線形化する。
    これらにより、全ての回路は抵抗、電圧源、電流源でのみ表され、回路中の全てのノードの電圧電流がオームの法則、キルヒホッフの法則により計算できるようになります。

  2. DC解析(デジボル、X-Yプロッタによる測定と同じ) 

    回路の直流/定常状態での電圧・電流の特性を解析します。電圧・電流源、LCR素子値、トランジスタ・ダイオードなどのデバイス・パラメータ、温度などを変数として変化させて、解析ができます。

  3. AC解析(ネットワークアナライザによる測定と同じ) 

    入力信号の周波数をスイープさせて、回路の定常状態での周波数応答を解析できます。

  4. 過渡解析(オシロスコープやスペアナ(FFT)による測定と同じ)

    時間経過につれての回路応答を解析できます。最も多く使われる解析といえます。

6.SPICE回路シミュレーションで使用される用語

シミュレーション
英語のスペリングは、Simulation と書きます。従って、カタカナに変換すれば、シュミレーション(趣味レーション)はいくら譲歩しても、間違いです。教える立場にあるような方が、明確にシュミと書いて、そう発音しているのを見聞きすると、どんなすばらしい内容でも残念だなと思ってしまいます。基本の用語だけは正しく使いたいものです。
回路記述
回路部品とそれらの相互接続を記述している回路図またはSPICEネットリスト。回路図は、回路図エディタを使って作成されます。SPICEネットリスト・ファイル(回路ファイル)は、テキスト・エディタ(専用の回路ファイル・エディタを持つ場合もある)を使用して作成することができます。
回路図ファイル
専用の回路図エディタを使って作成される回路図のファイル。回路図ファイルは、バイナリのデータで、SPICEプログラム間の互換性はありません。回路をシミュレーションする時は、回路図は、回路ファイル内に含まれるSPICEネットリストに翻訳されます。
ネットリスト
回路内の部品とその相互接続をSPICE構文で記述したもの。
回路ファイル
一つ以上のSPICEネットリストに、必要なSPICE制御構文を加えたファイル。これは、シミュレーションが回路図から行われるときでも、実際にシミュレータ・プログラムへ入力されるファイルです。入力ファイルと呼ばれる場合もあります。
スティミュラス
その応答を評価するために加える回路の状態に影響を与える入力信号源。アナログ/ディジタル混在のSPICEシミュレータならば、アナログ(電圧と電流)とデジタル両方のいろいろなスティミュラス・ソースを提供しています。
解析
回路の反応を分析するためには、それをシミュレーションしなければなりません。シミュレーションを行う前に、ユーザーはシミュレータに、実行したい解析のタイプとどんなタイプの出力オプションを望むかを、伝えなければなりません。これは、解析設定メニュー・オプションを使うか、または直接SPICEコマンド構文のいずれかにより、実行することができます。
収束
SPICEは、回路方程式を解くのに、数値法を使用します。それは、反復のテクニックを使用して正しい解に収束します。注意点として、計算が収束しない場合も可能性としては存在します(すなわち:設定されたエラー許容誤差範囲内において許容できる解が見つからない)。
前処理
(プリ・プロセッシング)
実際のシミュレーション開始の前に入力ファイルのあらゆる処理をすること。例えば、モデル・ライブラリの検索。
ポストプロセッサ
SPICEシミュレータで生成された出力データ・ファイルを、更に処理および/またはプロットするプログラム。
モデル
回路に使われる主要な素子については、電気的特性をパラメータにより指定します。この特定の素子の電気的特性を表現するための構文をSPICEモデルと呼びます。モデルの種類により、パラメータは1個から数十個になる場合もあります。回路部品や半導体のメーカーが、SPICEモデルとして提供しているものもあります。 SPICEで提供されている素子をつなぎ組み合わせて、独自のモデルとして作成することもできます(サブサーキット)。

注意: 一般的なSPICEシミュレータを想定して記述しています。プログラムによっては当てはまらない場合もあります。


7.回路シミュレーション実践前の予備知識    ~SPICE初心者の方へ

 現在出回っているSPICEは、ほとんどが回路図エディタ機能を持っています。したがって、回路解析を行うには、まず解析したい回路を回路図として入力します。シミュレータに前もって用意されている回路部品のシンボルを選び出し、適当な位置に配置し、それらを導線(ワイヤ)で接続します。このとき、シミュレーション用の回路図は、基板パターン図のための回路図とは違う点が二つあります。

 一つ目は、シミュレーションするために、回路には信号源や電源も記入する必要があることです。これには電圧源と電流源があり、SPICEの解析で使うほとんどの基本的な信号を発生させることができます。SPICE解析には、DC解析、AC解析、過渡解析の三大解析があります。電圧源と電流源は、設定を変えることでこれらのどの解析でも使用することができます。もし、既存の基本機能にはないもっと複雑な信号が必要である場合は、従属電源と呼ばれる電源を上記の電源(独立電源)と組み合わせることで対応できます。

 二つ目の違う点は、回路図に配置する部品には、シミュレーションのための特性データを与えなければならないことです。コンピュータ内で回路を動作させるためには、回路図という絵の情報だけではだめです。配線された各部品が、加えられる電圧や流される電流に対して反応する特性データを持っていなければなりません。  理想的な受動素子(R,L,C)ならば、特性データとして抵抗値などの定数を一つ入力します。ダイオードやトランジスタなど複雑な非線形の特性を持つ能動素子では、モデル・パラメータと呼ばれる決められたいくつかの値を与えます。通常は、すでにシミュレータに組み込まれている部品の型名またはモデル名を指定することで、その部品特性に合ったモデルが選ばれ、シミュレーションに使用されます。これは、ダイオードなどの特性を、SPICEの基本機能を使って等価回路化したものが、SPICEプログラムに組み込まれている場合です。
 もし、その組み込みモデルでは表せない特性のモデルが必要な場合は、SPICEの基本機能素子を色々に組み合わせてそれを実現します。そのモデルをパッケージ化して使いやすくする方法が、サブサーキットです。回路図には、任意のピン数をもったブラックボックスとして配置します。それがシミュレーションを実行するときに、指定したモデル・ファイルまたはモデル・ライブラリと呼ばれるデータを参照するという仕組みです。

 上記は、作成する回路図の違いについてでしたが、シミュレーションを実行するには、あと二点設定しなければならない項目があります。それは、解析種類の設定と観測ポイントです。

 一つ目の解析種類ですが、上述のようにSPICEには、大きく分けてDC解析、AC解析、過渡解析の三種類あります。簡単に言うと、DC解析は入力電源または信号源の直流値(電圧または電流値)を、時間とは無関係に変動させて応答を調べる解析です。AC解析は、正弦波信号源の回路への入力周波数をスイープさせ、回路の周波数特性を調べる解析です。最後の過渡解析は、正弦波やパルスなどを始めとした時間的に変化する信号を回路に入力し、その出力応答を調べる解析です。

 二つ目の観測ポイントですが、SPICEに限らず回路図を電子化して扱う場合、ネットリストというどの部品のどの端子同士が結ばれているかを示すリストが使われます。SPICEに入力された回路図のすべての部品と部品を結ぶワイヤは、節点(ノード)として認識され、番号や名前が付けられます。 SPICEでは、解析が実行されるとすべてのノードの電圧が計算されます。また、部品の各端子に流れる電流も計算されます。解析結果をグラフ表示させるために、シミュレーションを実行した後または事前に、どのポイントを観測するのか指定してやる必要があります。

 これぐらいで予備知識は十分です。あとは、実際にDEMO版などを入手し、試してみましょう!