SPICE 2G.6

1975 年にリリースされた電子回路シミュレータSPICE 2G6は その後の全ての電子回路シミュレータのルーツとなりましたが、 UC Berkeley からリリースされた最後のバージョンSPICE 3F5では 抜け落ちた機能もあって、 今でも動かしたくなることがあります。

しかし、現時点ではソースコードやドキュメントが分散し、 見付けにくくなってきましたので、 ここに、まとめておくことにしました。

SPICE 2G6Fortranで書かれた完成度の高いプログラムですが、 まだグラフィックディスプレイが生まれる前の時代ですから、 130 字/行のラインプリンタで ASCII文字を使ったグラフを印字する設計になっています。 しかし、現時点では、その後のコンピュータ技術の劇的進歩により、 グラフィック機能についてはAWKなどのscript言語による gnuplotなどの作図プログラムとの併用(一体化)は極めて容易で、 グラフィック機能の不足は何ら問題ではなくなってしまいました。

ただ、当時としては、 その後のUnixベースのworkstaionの普及という環境の革命的変化が、 22,000 行のFortranプログラムのCへの書き換えによる、 (Unix の)X11によるグラフィック機能と、 その後の新しいデバイスに対応するための、 いくつかの機能追加を含むSPICE3の開発を促し、 1985 年 3 月にpublic domainのソフトウェアとして SPICE 3F5が公開されました。 現在のFreeBSDでは ports/cad/spice に収容されています。

ここに収容したSPICE 2G6のソースコードは 386BSD時代のプロジェクトの一つとして、 Fortranのソースコードをf2cCに変換してコンパイル するようにしたもので、 そのコードのごく一部をFreeBSD-8.4で使えるように書き換えたものです。

テスト用のサンプルスクリプトを一つ付けておきましたが、 SPICE Version 2G User's Guideにも、いくつかのサンプルが含まれています。

SPICE 2G6は入力ファイルを標準入力から読みますので、

  spice2 <file
と起動してくでさい。

このプログラムの実行にはf2cの run-time libraly が必要で、 FreeBSD-8.4 の ports/lang/f2c をインストールすれば良いのですが、 これをコンパイルするためには ports/distfiles/f2c-20060810/f2c.tar が必要で、 自分で見付けてこないとコンパイルできなくなっていますので、 ここに置いておくことにしました。

SPICEの解説書のほとんどが、SPICE 3F5から派生したPSpice などの商用ソフトウェアを前提にしていて、 SPICE 2G.6を前提にしたものは極めて少ないのですが、

  Thomas W. Thorpe,- COMPUTERRIZED CIRCUIT ANALYSIS WITH SPICE
	(Jhon Wiley & Sons, Inc) ISBN 0-471-55164-3
は今でも見られると思います。

SPICEが開発された当時の事情については The Origins of SPICE に開発者Laurence W. Nagelによる 解説があります。

SPICE 2G6のアルゴリズムについては SPICE2: A COMOUTER PROGRAM TO SIMULATE SEMICONDUCTOR CIRCUIT bt Laurence W. Nagelで見られます。

なお、SPICE 3F5リリース以降のbug fixJspice3XSPICE などで開発された新しい機能の追加が NGSPICE で行われていて、 このうちXSPICE以外はFreeBSD-8.4の ports/cad にも収容されています。

なお、SPICE 2G.6 本来のソースコードは Spiceにあります。

平林 浩一, 2015-09-20