SPICE(スパイス)は、電子回路シミュレータである。カリフォルニア大学バークレー校で1970年代前半頃に開発が始まり、以後何回かバージョンアップされた。集積回路の設計に利用可能なように開発されたため、長さや幅などといったパラメータによりトランジスタであれば特性や駆動能力を、配線であればインピーダンスと過渡特性といったものまでシミュレーションする能力まで持つが、単純にディスクリートの素子を定義し、配線は全て等電位とするといったようにして簡単に電子工作のシミュレーションを行う、といった用途にも問題なく使える。
シミュレーション対象となる回路は一般的な受動素子(抵抗、コンデンサなど)と能動素子(ダイオード、トランジスタ、真空管など)と伝送線路、各種電源を組み合わせたものである。解析手法としては過渡解析、直流解析、小信号交流解析、雑音解析などが可能である。
現在使われている、名称にSPICEの語を含むシミュレータは、このバークレー校のものを元に改良、機能付加したものである。それらを含めた総称としてSPICEと呼ばれることもある。 シミュレータへの入力となる回路や動作、制御文などはテキストで記述する。各項目の基本は行単位であるが複数行にまたがる記述も可能であり、その場合には次の行の先頭を + にする。コマンドの記述は終止符 (.) から始まる。 最初の行は表題となり、次の行以降に回路や制御文を記述する。回路網はSPICE書式のネットリスト
回路、動作記述
概略
回路記述は1行1素子で記述する。各行の行頭は素子のインスタンス名(固有の名前)を示し最初の一文字が素子種別を表す。抵抗ならRインスタンス名、インダクタンスなら Lインスタンス名 といった名前となる。続けて、素子の各端子が接続されるノード名を記述し、最後に素子の特性値などを記述する。インスタンス名、ノード名などの区切りには空白文字を使用する。
行頭が * である行は人間のための注釈である。
簡単な例1:CR回路CR circuit* 0---R1---1---C1---2R1 0 1 10C1 1 2 20.END
ここでR1の行の最後は 10 Ω {\displaystyle 10\Omega } 、C1 の行の最後は 20 F {\displaystyle 20F} を示す。0、1、2 はそれぞれの端子のノードを示す。結果として抵抗とキャパシタが直列につながった回路となる。
これだけでは回路記述のみであり電気回路として動作しない。回路として動作させるためには、例えば次のように電圧源(V で始まる素子)を付加する。
簡単な例2:CR回路 + 直流電源CR circuit+power* 0---R1---1---C1---2---V1---0R1 0 1 10C1 1 2 20V1 2 0 5 .END
この例では前述の回路の両端(+側がノード 2 で-側がノード 0 )に 5 V {\displaystyle 5V} の電圧を加えたことになる。電源には直流のほか正弦波やパルス波形、定電流源なども指定できる。電源も形式的には素子との位置づけであり他の素子同様、回路記述内に含める。ノード 0 (グランド)は、必ず含まれていなくてはならない。各部の電圧とは、指定した場所の電位とノード 0 との電位差として定義されている。
これを実際に動作させるには解析内容を指定する。
簡単な例3:CR回路 + 直流電源 + 過渡解析CR circuit+power+transient.TRAN 1 10 * 0---R1---1---C1---2---V1---0R1 0 1 10C1 1 2 20V1 2 0 5.END
.TRAN 文は 1 s e c {\displaystyle 1sec} きざみで 10 s e c {\displaystyle 10sec} まで経過させることを意味する(過渡解析)。なおピリオドに始まる語は各種制御文を意味する。
シミュレータとしては動作した結果の観測も可能でなければならない。次の指定で表示ができる。
簡単な例4:CR回路 + 直流電源 + 過渡解析 + 表示CR circuit+power+transient+print.TRAN 1 10.PRINT TRAN V(1) I(V1) * 0---R1---1---C1---2---V1---0R1 0 1 10C1 1 2 20V1 2 0 5.END
.PRINT 文でノード1の電圧と電源V1の電流を一覧として出力する。ほかに .PLOT 文もありグラフ化することができる。
期待するような、コンデンサに充電されていくようなシミュレーション結果はこのままだと出てこない。これはSPICEは過渡解析を行う前に自動的にDC解析により初期条件の電位を決定し、この際コンデンサはショート状態として扱われるため[要出典]、コンデンサに充電された状態でシミュレーションが開始してしまうためである。充電されていない状態でシミュレーションを開始するためには、.IC 文を使用して初期条件における電位を明示的に指定する。
簡単な例5:CR回路 + 直流電源 + 過渡解析 + 初期条件 + 表示CR circuit+power+transient+ic+print.TRAN 1 10.PRINT TRAN V(1) I(V1)* 0---R1---1---C1---2---V1---0R1 0 1 10C1 1 2 20V1 2 0 5.IC V(1) = 2.END
この例では、コンデンサC1の抵抗R1側のノードの初期電位を 2 V {\displaystyle 2V} に設定する。これはV1の電圧と等しいため、コンデンサが充電されていない状態からシミュレーションが行われる。
なお先頭行と.ENDの間の記述順序は任意である。
SPICEはテキストによる記述を基本としているが、商用版ソフトウェアなどでは回路図CADと統合化してグラフィカルな記述も可能となり、より使いやすくなっている。 素子の記述は一般に頭が種別を示すインスタンス名、それに続くノード名の列挙、必要に応じてパラメータなどの値の列挙が続く形式となっている。ノード名は初期は数値が基本であるがSPICEの種類、バージョンにより英数字での単語も可能となっている。以下に主要な素子を列挙する。(細かいオプションは略) 項目任意性指定するべきもの 接辞文字列大きさ 項目任意性指定するべきもの 接辞文字列大きさ 項目任意性指定するべきもの 接辞文字列大きさ 項目任意性指定するべきもの 項目任意性指定するべきもの 項目任意性指定するべきもの 項目任意性指定するべきもの 項目任意性指定するべきもの 項目任意性指定するべきもの 項目任意性指定するべきもの
素子詳細
抵抗(R)Rインスタンス名 N+ N- 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
値必須抵抗値。単位はオーム。単位は記述しないが、接辞は使える。
meg 10 + 6 {\displaystyle 10^{+6}}
k 10 + 3 {\displaystyle 10^{+3}}
m 10 − 3 {\displaystyle 10^{-3}}
u 10 − 6 {\displaystyle 10^{-6}}
n 10 − 9 {\displaystyle 10^{-9}}
p 10 − 12 {\displaystyle 10^{-12}}
キャパシタ(C)Cインスタンス名 N+ N- 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
値必須容量値。単位はファラド。単位は記述しないが、接辞は使える。
meg 10 + 6 {\displaystyle 10^{+6}}
k 10 + 3 {\displaystyle 10^{+3}}
m 10 − 3 {\displaystyle 10^{-3}}
u 10 − 6 {\displaystyle 10^{-6}}
n 10 − 9 {\displaystyle 10^{-9}}
p 10 − 12 {\displaystyle 10^{-12}}
インダクタ(L)Lインスタンス名 N+ N- 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
値必須インダクタンス値。単位はヘンリー。単位は記述しないが、接辞は使える。
meg 10 + 6 {\displaystyle 10^{+6}}
k 10 + 3 {\displaystyle 10^{+3}}
m 10 − 3 {\displaystyle 10^{-3}}
u 10 − 6 {\displaystyle 10^{-6}}
n 10 − 9 {\displaystyle 10^{-9}}
p 10 − 12 {\displaystyle 10^{-12}}
相互インダクタ(K)Kインスタンス名 Lインスタンス名1次 Lインスタンス名2次 M結合
インスタンス名必須インスタンス名。
Lインスタンス名1次必須1次側のインダクタの体識別名。
Lインスタンス名2次必須2次側のインダクタの体識別名。
M結合必須結合係数。
独立電圧源(V)Vインスタンス名 N+ N- [オプション …]
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
オプション …任意オプション。交流・直流の区別や形式や電圧値など。
独立電流源(I)Iインスタンス名 N+ N- [オプション …]
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
オプション …任意オプション。交流・直流の区別や電圧値など。
電圧制御電流源(G)Gインスタンス名 N+ N- N制御+ N制御- 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
N制御+必須制御電圧プラス端子に接続するネット名。。
N制御-必須制御電圧マイナス端子に接続するネット名。
値必須相互コンダクタンス値。
電圧制御電圧源(E)Eインスタンス名 N+ N- N制御+ N制御- 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
N制御+必須制御電圧プラス端子に接続するネット名。。
N制御-必須制御電圧マイナス端子に接続するネット名。
値必須電圧増幅率。
電流制御電流源(F)Fインスタンス名 N+ N- N制御 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
N-必須マイナス端子に接続するネット名。
N制御必須制御電流がある電圧源のノード名。
値必須電流増幅率。
電流制御電圧源(H)Hインスタンス名 N+ N- N制御 値
インスタンス名必須インスタンス名。
N+必須プラス端子に接続するネット名。
Size:20 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef