ngspice
Ngspice は mixed-level/mixed-signal 回路シミュレータです。そのソースコードはSpice3f5、Cider1b1そしてXspice といった3つのオープンソース・ソフトウェア・パッケージがベースになっています。また、Ngspiceは電子回路設計自動化ツールの開発プロジェクトであるgEDAの一部になっています。
ngspice のインストール
最新版をインストールしたい場合はソースからインストールすることになることが多くなるでしょう。必ずしも最新版でなくてもよい場合にはバイナリーパッケージからインストールすることもできます。
ソースからインストール
ソースからインストールするには、ソースパッケージ ngspice-version.tar.gz (2012年1月31日にngspice-24.tar.gzがリリースされています)をngspiceのダウンロードページからダウンロードし、適当なディレクトリで展開します。以下の例ではダウンロードディレクトリにあるファイルをホームディレクトリに展開しています。
$ tar xvfz ./ダウンロード/ngspice-24.tar.gz
ソースパッケージを展開すると ngspice-version というディレクトリ(今回の場合は ngspice-24)が作成されていますのでそのディレクトリに移動します。
$ cd ngspice-24/
以下のコマンドを実行しコンパイル、インストールします。
$ ./configure $ make $ sudo make install [sudo] password for hoge:
Linux Mint 12の場合、./configure の実行で以下のようなエラーが出ました。そのため、apt-get install libxaw7-dev でXawライブラリをインストールしています。
configure: error: Couldn't find Xaw library
バイナリーパッケージからインストール
Red Hat系のディストリビューションでは yum コマンドでインストールします。以下は Feodra 16 での実行例です。
$ su パスワード: # yum -y install ngspice
Debian系のディストリビューションでは apt-get コマンドでインストールします。以下 Ubuntu 11.10 での実行例です。
$ sudo apt-get update $ sudo apt-get install ngspice
ngspice の起動とシミュレーションの実行
端末から ngspice と入力すると ngspice が起動し、コマンド入力待ちになります。ここでコマンドを入力していきます。尚、終了するには quit とタイプします。
シミュレーションは source コマンドでネットリストを読込み、run コマンド実行することで行われます。
$ ngspice ****** ** ngspice-24 : Circuit level simulation program ** The U. C. Berkeley CAD Group ** Copyright 1985-1994, Regents of the University of California. ** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html ** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html ** Creation Date: Sun Mar 11 16:41:36 JST 2012 ****** ngspice 1 ->
source コマンドでネットリストファイルを読み込みます。
ngspice 1 -> source lpf.cir Circuit: * gnetlist -g spice-sdb -o lpf.cir /home/hoge/gaf/project1/lpf.sch ngspice 2 ->
run コマンドでシミュレーションを実行します。
ngspice 2 -> run Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 Warning: vin: has no value, DC 0 assumed No. of Data Rows : 501 ngspice 3 ->
ワーニングが出ていますが、ひとまず無視することに。
シミュレーション結果のグラフ表示
シミュレーション結果をグラフ表示するには plot コマンドを実行します。y軸をデシベルでグラフ化するために db(vout) を、ラベルを dB とするために ylabel dB を、y軸の範囲を指定するために ylimit -70 -10を引数に指定しています。
ngspice 3 -> plot db(vout) ylabel dB ylimit -70 -10 ngspice 4 ->
周波数特性のグラフが表示されます。

次に位相特性のグラフを表示させます。ngspice の標準では角度はラジアンになっていますので、以下のように set コマンドで degree に変更します。
ngspice 4 -> set units=degree ngspice 5 ->
引数に ph(vout) ylabel deg. を指定して plot コマンドを実行します。
ngspice 5 -> plot ph(vout) ylabel deg. ngspice 6 ->
位相特性のグラフが表示されます。

また、以下のようにすることで lpf.raw ファイルを作成することができ、gwave 等でも波形表示させることができます。
$ ngspice -b -r lpf.raw lpf.cir