SPICE3 の設定


Back

[SPICE 半導体デバイスのモデリング]


1. SPICE3F5 のインストールについて

 基礎システムに SPICE3F5 がインストールされました。但し、SPICE3 に標準で付属している front-end 機能は動作しません。シミュレーション機能のみが、バッチモードまたはインタラクティブモードで使用可能です。単に spice3 というコマンドラインを実行するとインタラクティブモードで立ち上がり、ネットリストとシミュレーション、出力制御を記述した入力ファイルをリダイレクトするとバッチモードでの起動となります。バッチモードでの操作法は、SPICE2 と殆ど同じです。また、グラフ表示には、GNUPlot 等の汎用グラフ作成ツールを使用してください。BSD UNIX 等でよく使用されていた Xgraph というグラフ表示ツールを spice3 インタラクティブモードのプロンプトから xgraph というコマンドで呼び出すことも可能です。但し、IRIX上で Xgraph を make する必要があります。VLSI設計システム(Solaris 2.5)上では、SPICE3F5の全機能が使用可能です。

尚、SPICE3 専用の GUI 機能は、3 年生がアルバイトとして製作中です。また、SPICE3 の使用法の解説ページも作成してもらっています。

2. SPICE3F5 のユーザ環境設定

.cshrc に次のような設定を追加してください。

・基礎教育システム用
### SPICE3F5
set path = ( $path /usr/local/spice/bin )
setenv EDITOR "mule"
setenv SPICE_LIB_DIR "/usr/local/spice/lib"
・VLSI設計室用
### for SPICE3F5
set path = ( $path /opt/local/spice/bin )
setenv EDITOR "mule"
setenv SPICE_LIB_DIR "/opt/local/spice/lib"

3. SPICE3F5 簡易コマンドリスト

(a) 起動コマンド
コマンドspice3 [-r rawfile] [-b] [-i] [input file ...]
説明spice3 の起動コマンド。VLSI設計システムでは、spice とすると spice2 が呼び出されるので注意。rawfile は、シミュレーション結果の出力ファイル名。ここには、グラフplot用のバイナリデータが出力される。-b オプションでは、バッチモードで起動される。入力ファイルを spice3 にリダイレクトすると自動的にバッチモードに切り替えられる。-i オプションでは、インタラクティブモードで起動される(デフォルト)。インタラクティブモードでは、コマンドプロンプトに対してコマンドを入力しながらシミュレーションやシミュレーションデータの解析が行える (表(b)参照)。但し、シミュレーションの制御コマンドによる条件設定(.TRANや.AC行)は、予めSPICE入力ファイルに記述しておく必要がある。input file は、SPICEネットリストやシミュレーション制御コマンドを記述した入力ファイルの名前である。(注)バックグラウンド(& 付き)で、これらのモードを起動しないこと。もし、起動してしまったら、プロセスをkillしておくこと。
コマンドnutmeg [data file ...]
説明nutmeg は、spice3 の中のデータ解析フロントエンド・プログラムの部分のみを独立させたものである。spice3のバッチモードで、複数のシミュレーションを実行した後に、nutmegでデータの解析を行うといった使用法が考えられる。data file は、nutmeng の入力用バイナリファイルの名前である。これは、spice3 -r rawfile またはインタラクティブモードにおけるwrite コマンドで指定されるバイナリ出力ファイル (rawfileと呼ばれる) のことである。
コマンドsconvert
説明spice3 (or nutmeg) のバイナリ出力ファイルとASCIIファイルを相互に変換するためのものである。.PRINT または、print コマンドで出力されるテキストファイルとはフォーマットが異なる。入出力其々のファイル名とファイルタイプを聞いてくる。ファイルタイプは、b (binary), a (ascii) の文字を入力する。

(b) インタラクテ ィブモードにおけるコマンドリスト
コマンド意味備考
helpHELPウインドウの表示詳しいSPICEファイルの記述法やコマンドの使用法はこちらで調べる
ac (DEC|OCT|LIN) n f-start f-stop小信号周波数特性解析の実行入力ファイルの .AC記述と同等
alias [word] [text ...]aliasの作成unalias : aliasの解除
alter device parameter value, or alter device valueデバイスモデルパラメータの強制変更
asciiplot plotargsテキストによる簡易グラフ表示の標準出力入力ファイルの .PLOT記述と同等。インタラクティブモードでは、plotコマンドはグラフ出力に使用されている。asciiplot plotargs > file でfileへ出力される。
cd [directory]カレント作業ディレクトリの変更
dc source-name V-start V-stop V-incriment [source-name2 ...]直流特性解析入力ファイルの .DC記述と同等
define function (arg1, arg2, ...) expressionユーザ定義関数の作成undefine : 定義の解消
delete [debug-number ...]breake points と trace の解除debug-number は、status コマンドで標準出力される。delete all で全て解除される
diff plot1 plot2plot1 と plot2のを比較し、違っている個所を出力する
display [varname]回路変数のリストを表示するシミュレーション後でないと変数は表示できない。varnameを省略すると全部表示する
edit [file]エディターの起動。fileを省略すると現在SPICE3にロードされているSPICE入力ファイルが読み込まれる
fourier fundamental_frequency [value ...]valueで指定された変数のフーリエ成分を解析する予め過渡応答解析を実行しておく必要がある。入力ファイルの .FOUR記述と同等
history [number]最後からnumberの数までのコマンドヒストリーの表示表示のみ(多分)
iplot [node ...]インクリメンタリプロットhelp の where 参照
load [file name]シミュレーション結果 (raw file) を spice3 に読み込む。Binary ASCII のどちらでも読み込める
op動作点解析のみを行う入力ファイルの .OP記述と同等
plot exprs [axis conf and so on ....]spice3にロード中のシミュレーション結果または式の計算結果をグラフ表示する。オプションの指定により細かい表示設定が可能だが、複雑なので、helpを参照すること。plot のみ実行すると、表示する変数を要求してくるので、変数リストを入力すると、自動的にフォーマットして表示する。入力ファイルの .PLOT記述と同じシンタクスであるが、テキストが出力される代わりにグラフが表示される。[ ]内のパラメータとして、xlog(x軸片対数), ylog(y軸片対数) loglog(両対数), vs(x軸の変数指定), xlabel(x軸ラベル指定), ylabel(y軸ラベル指定) 等がある。詳しくは、SPICE の HELP 参照。
print [col] [line] expr シミュレーション結果または式の計算結果をテキスト(数値)で標準出力する。入力ファイルの .PRINT記述と同等。ファイルにリダイレクト可能
quitSPICE3 の終了。
resetブレークポイントまでの中間データを破棄して、シミュレータを初期化する。
resume中断したシミュレーションの継続
run [rawfile]SPICE入力ファイルに記述されている解析のみを自動的に実行する。入力ファイルには .TRAN, .AC 等のシミュレーション制御記述行が必ず必要
save [all | output ...]シミュレーション後に保存する変数の指定。writeコマンドは、save コマンドの影響を受ける。入力ファイルの .SAVE記述と同等
sens output_variable, or sens output_variable ac (DEC | OCT | LIN) n f-start f-stop感度解析の実行入力ファイルの .SENS記述と同等
set [word = value] ...SPICE変数およびユーザ変数の設定。変数は、コマンド中で、$word として参照できる。unset : 変数のクリア。SPICE変数については、helpを参照。入力ファイルの .OPTIONS記述の代わりにも使える
setcircsource コマンドで複数読み込まれたSPICE入力ファイルの中から、currentファイルを選ぶsource コマンド参照
setplotspice3 (nutmeg) は、それまでにシミュレーションして得た複数の plot データを保持しており、カレントプロットに設定されているデータに対して、コマンドを適用する。他のプロット(データセット)が必要な場合は、setplot コマンドによりカレントプロットを変更する。
shellSPICE上からUNIXシェルを呼び出す。SPICEに戻るときは、UNIX プロンプトで、exitを用いる。
show devices[:parameters], ...デバイス(インスタンス)のモデルと動作状態を表示する
showmod models[:parameters], ...デバイス(インスタンス)のモデルとモデルパラメータを表示する
source filefileで指定されたSPICE入力ファイルをロードする。source コマンドを繰り返すことで、複数の回路がロードされる。同じシミュレーション条件で異なる回路を繰り返しシミュレーションすることが出来る。setcirc コマンド参照
statustrace と breakpointsの状態を表示する
step [number]number で指定したステップ数だけ計算してstopする
stop [after n] [when value cond value]ブレークポイントの設定、when は、ブレークポイントの条件式を指定する。cond は、比較演算子である。解除は、delete コマンドで行う
tf output_node input_source伝達関数解析の実行入力ファイルの .TF記述と同等
trace [node ...]シミュレーションステップ(breakpoint)毎に、指定されたノードの値を表示する解除は、delete コマンドで行う
tran T-step T-stop [T-start [T-max]] UIC過渡応答解析の実行。T-maxは、最大刻み幅の指定、UIC は、表(d)の .IC の項を参照入力ファイルの .TRAN記述と同等
where収束に問題のあった個所を表示する表示されるのは、1個所のみ
write [file] [exprs]シミュレーション結果のファイル出力デフォルトは、バイナリ出力。set filetype = コマンドによりbinaryとascii形式の選択(必ず小文字で指定)が出来る
(参考)ここにあげた以外に、シミュレーション手続きを自動化する便利なコマンドが多数あります。helpコマンドで調べてみてください。

(c) 変数と共に使用できる演算子と関数
演算意味備考
+ - * / ^ %四則演算および乗数、モジュロ 
,複素数、x, y = x + jy関数の引数リストの中では、単に変数の区切りを表す
& | !論理演算 AND, OR, NOT結果は真理値の1または0
> <関係演算 大なり、小なり結果は真理値の1または0、gt, ltでも表記可
>= <=以上、以下結果は真理値の1または0、ge, leでも表記可
<>不等号結果は真理値の1または0、neでも表記可
=等号結果は真理値の1または0、eqでも表記可
mag(vector)振幅vectorは、ベクタまたはスカラ変数名
ph(vector)位相
j(vector)虚数化
real(vector)実部
imag(vector)虚部
db(vector)振幅のデシベル
log(vector)常用対数
ln(vector)自然対数
exp(vector)指数関数
abs(vector)絶対値
sqrt(vector)ルート
sin(vector)正弦関数
cos(vector)余弦関数
tan(vector)正接関数
atan(vector)逆正接
norm(vector)ベクトルの規格化
rnd(vector)ベクトルの乱数
mean(vector)ベクトル要素の平均値
vector(number)numberの長さのベクトル {0, 1, 2, ..., number -1}
length(vector)ベクトルの長さ
interpolate(plot.vector)plot中のベクトルの補間
deriv(vector)導関数
(参考)デバイスパラメータ値も使用可能 ex. @device[param]、ワイルドカードは all

(d) ソースファイル中に記述する制御命令(主にバッチモードで使用)
コマンド意味備考
.OPTIONSシミュレータ制御のオプション変数の設定、(ex.相対保証精度の指定 .OPTIONS RELTOL=.005、オプション変数リストの出力 .OPTIONS OPTS)setコマンドでも実行可能
.INCLUDEインクルードファイルの指定 (ex. .INCLUDE /opt/usr/spice/lib/analog.lib)
.PRINT解析結果のテキスト出力 (ex. V(4)とI(VIN)の過渡応答をテキスト出力する .PRINT TRAN V(4) I(VIN))8変数まで。TRANの部分は、解析の種類に応じて変更する。表(c)を参照。.PRINT行は複数あってもよい。変数の代わりに all を記述すると、全ノードとブランチの電圧、電流を指定したことになる。
.PLOT解析結果の簡易グラフ表示。フォーマットは .PRINT と同じ8変数まで。表(c)を参照。.PROT行は複数あってもよい。
.SAVEグラフ表示用のシミュレーション結果ファイル(rawfile)に出力する変数のリストの指定。 (ex. ノード2の電圧と電圧源vinの電流をrawfileに保存する。 .SAVE V(2) I(vin))変数指定で all とすると、全てのノードとブランチの電圧、電流を指定したことになる。また、.SAVEを記述しなかった場合も同様の結果となる。
.FOUR.TRAN と同時にフーリエ解析を実行する、(ec. 直流および基本周波数100kHzから第9高調波まで、V(2)のフーリエ成分を調べる、 .FOUR 100k V(2)).TRAN と一緒に行う必要がある。出力変数は複数指定できるが、高調波は第9まで
.NODESETバイアスポイント計算のための初期値設定 (ex. .IC V(1)=-5V)多安定回路の初期状態に影響するが、通常はバイアスポイントの収束を助けるだけの働きを持つ
.IC.TRAN 行にUIC (Use Initial Condition) オプションがあるとき、デバイスの動作点が計算されず、.IC行で指定された値に設定される。
.AC小信号周波数特性解析の実行 (ex.1桁10点計算で、1kHz〜100MHzまで、 .AC DEC 10 1kHz 100MEGHz)(参考) SPICEでは、ミリを M、メガを MEG と表記する
.DC直流特性解析の実行 (ex. VDDを0V〜15Vまで掃引、VGSをネストして掃引 .DC VDD 0V 15V .1V VGS 0V 5V 1V)ソースには、電流源も指定できる
.DISTO小信号歪み(定常状態と変調波)解析の実行 (ex. 1桁10点計算で、1kHz〜100MHzまで、.DISTO 10 1kHz 100MEGHz)
.NOIZEデバイス起源のノイズ解析の実行、結果は、スペクトル密度 (V2/Hz, A2/Hz)と指定帯域の積分で表示 (ex. V(98)-V(95)に対するVINのノイズ影響度(等価入力雑音)を調べる、.NOISE V(98,95) VIN DEC 10 1KHz 1MEGHz
.OP動作点解析(のみ)の実行、(ex. .OP)
.PZ伝達関数解析の実行 (ex. 入力ノード2,3に対する出力ノード5,0の電圧/電圧伝達関数のポールとゼロ点 .PZ 2 3 5 0 VOL PZ)VOLの代わりにCURで出力電圧/入力電流モードとなる。PZの代わりにPOL, ZERを指定し、ポールとゼロを別々に調べられる
.SENSデバイスパラメータ回路定数の摂動による DC, AC 感度解析 (ex. V(9)のAC感度を調べる .SENS V(9) AC DEC 10 100Hz 100kHZ)AC以降を省略するとDC感度解析となる
.TF伝達関数と小信号入出力抵抗解析の実行 (ex. V(5, 3)/VUN, VINに対する小信号抵抗、ノード5,3間の小信号抵抗、 .TF V(5, 3) VIN)
.TRAN過渡応答解析の実行 (ex. 1ns刻みで、500nsまで時間領域解析を行う、但し100ns以後の結果のみ出力、 .TRAN 1ns 500ns 100ns)後にUICを追加するとバイアス点の計算を行わない。結果出力開始時刻のデフォルトは0s

(e) 定数 (nutmeg用、MKS)
定数意味
piπ
e自然対数の底
c真空中光速
i虚数単位
kelvin摂氏絶対零度
echarge電子電荷
boltzボルツマン定数
planckプランク定数


GIF 戻る

GIF 北川ホームページ

GIF 集積回路工学研究室ホームページ

GIF 情報システム工学科ホームページ

GIF 金沢大学ホームページ


メールはこちらへ <kitagawa@is.t.kanazawa-u.ac.jp>

Updated: