ngspice と logisim-evolution のインストール (macOS) - BIOS PC のセッティング(15)

はじめに

今回は私以外が担当する授業のソフトウェアのインストールを解説する。

アナログ電子回路I の授業では電子回路の特性計算のために ngspice を利用する。以前、ngspice は Homebrew でもインストールできたが、現在インストールできるものはグラフ描画をすることができない。そこで、Homebrew ではなくパッケージを使ったインストール方法を説明する。

また、ディジタル電子回路では logisim を利用する。ただ、logisim 自体が2011年からアップデートされていないため、最近は logisim-evolution というフォークしたアプリが開発されている。3年の授業ではこちらをインストールすることにする。

インストール

1. XQuartz のインストール

ngspice のグラフは X11 という UNIX の Windows システムで描画するように設定されている。macOS は以前デフォルトで X11 のサーバがインストールできたが、現在は Xquartz という別のパッケージに分離されてしまった。そのため、まず Homebrew-cask を使って、Xquartz をインストールする。

brew cask install xquartz

Xquarts はアプリケーションフォルダ内のユーティリティフォルダに入っている。Finder で Command-Shift-U を押すとユーティリティフォルダが開くので、XQuartz をダブルクリックして起動することを確認する。起動が確認できたら、macOS を再起動しておく。

2. ngspice のインストール

ngspice は Sourceforge のサイトからダウンロードできる。2020/5/15に新しい ngspice-32 がリリースされたのだが、こちらはうまく動作するものがインストールできなかった。そこで、一つ前のバージョンである「ngspice-31.pkg」をダウンロードする。この「ngspice-31.pkg」はダブルクリックしても「開発元が未確認のため開ません」と出てしまう。そこで、右ボタンを押して「開く」とし、再度「開く」ボタンをクリックする。後は画面の指示通りにインストールを進める。

インストールされると「/Application」フォルダの下に「ngspice」のフォルダが作成される。このままではターミナルなどから実行できないので、chokidar の時と同様に /usr/local/bin か ~/bin にシンボリックリンクを作成しておく。せっかく自分のフォルダに ~/bin を作ったので、以下の例では ~/bin の下にリンクを張る例を示す。

cd ~/bin
ln -s /Applications/ngspice/bin/ngspice

3. logisim-evolution のインストール

logisim-evolution は Homebrew-cask でインストールできるのだが、最新のバージョンでないと一部の機能が利用できない。しかし、実行周りを作り替えるのは面倒なので、cask でインストール後に jar だけこっそり入れ替えることにする。また、実行には Java の runtime が必要となる。Java を管理する oracle のライセンス形態が変更となり、自由に利用できなくなったため、open な Java runtime もインストールする。ただし、4/21の段階で adoptopenjdk で入る JDK が壊れているようでうまく動作しなかった。少し前のバージョンを tap してインストールする。

brew tap AdoptOpenJDK/openjdk
brew cask install logisim-evolution adoptopenjdk14

起動はターミナルから logisim-evolution としてみる。Help メニューの About... をみると、バージョンは 2.15 だった。このバージョンだと学生がよく利用する Combination analysis や Analyze circuit が実行できない。

f:id:hkob:20200421171539p:plain
logisim-evolution の About 画面 (2.15)

そのうち homebrew cask のアップデートを待っていられないので、無理矢理 jar ファイルを書き換えてしまおう。まず開発者のリポジトリのリリースページから Version 3.3.0 より「logisim-evolution-3.3.0-all.jar」をダウンロードする。

f:id:hkob:20200421171939p:plain
logisim-evolution の Release ページ

その後、ターミナルにて以下のコマンドを実行する

mv ~/Downloads/logisim-evolution-3.3.0-all.jar /usr/local/Caskroom/logisim-evolution/2.15.0/logisim-evolution.jar

Logisim-evolution メニューの「About Logisim-evolution...」を確認すると Ver 3.3.0 になっていることが確認できる。

f:id:hkob:20200421172235p:plain
logisim-evolution の About 画面 (3.3.0)

使い方は2年の実験で説明したので、各自試してみて欲しい。

ngspice の動作確認

エディタで以下のテキストを19.cir として保存する。このファイルをネットリストと呼ぶ。なお、ネットリスト自体の意味はアナログ電子回路で説明してくれるはず。興味があったら自分で調べてみて、2年の電気回路の回路図で検算してみるとよい。

*** 1.9.cir ***
.options hcopydevtype=postscript
* 電圧源を接点1と接点0(GND)との間に設置(電圧は可変)
Vs 1 0
* 電流計を接点1と接点2との間に設置(電圧0にすると電流計になる)
Vi 1 2 0
* 2[Ω]の抵抗を接点2と接点0(GND)との間に設置
R1 2 0 2
* 電圧源の電圧を 0[V] から 8[V] まで 0.1[V] 単位で可変
.dc Vs 0 8 0.1
.probe
.end

ターミナルからngspice 19.cir としてみる。最初の起動時には「XQuartz」が起動するので少し時間がかかる。その後、プロンプトが表示されたら「run」とタイプする。

hkob@BYOD-macOS ~> ngspice 19.cir
******
** ngspice-31 : 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
******

Circuit: *** 1.9.cir ***

ngspice 1 -> run
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000

Warning: vs: has no value, DC 0 assumed

No. of Data Rows : 81

実行すると 81個のデータが計算できたと表示される。その後、以下のコマンドでグラフを描画してみる。

ngspice 2 -> plot i(Vi) xlabel 'E[V]' ylabel 'i[A]'

結果として XQuartz の画面上に以下のようなグラフが描画される。電圧可変時の電流値が計算できており、オームの法則が確認できた。

f:id:hkob:20200421143635p:plain
オームの法則

なお、ngspice はquitコマンドで終了できる。

おわりに

アナログ電子回路Iおよびディジタル電子回路Iの授業前までにインストールを完了しておいて欲しい。homebrew でインストールできないのが辛いところだ。

hkob.hatenablog.com