
尚、SPICE3 専用の GUI 機能は、3 年生がアルバイトとして製作中です。また、SPICE3 の使用法の解説ページも作成してもらっています。
・基礎教育システム用
|
### SPICE3F5 set path = ( $path /usr/local/spice/bin ) setenv EDITOR "mule" setenv SPICE_LIB_DIR "/usr/local/spice/lib" |
|
### for SPICE3F5 set path = ( $path /opt/local/spice/bin ) setenv EDITOR "mule" setenv SPICE_LIB_DIR "/opt/local/spice/lib" |
| コマンド | 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) インタラクテ ィブモードにおけるコマンドリスト
| コマンド | 意味 | 備考 |
|---|---|---|
| help | HELPウインドウの表示 | 詳しい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 plot2 | plot1 と 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記述と同等。ファイルにリダイレクト可能 |
| quit | SPICE3 の終了。 | |
| 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記述の代わりにも使える |
| setcirc | source コマンドで複数読み込まれたSPICE入力ファイルの中から、currentファイルを選ぶ | source コマンド参照 |
| setplot | spice3 (nutmeg) は、それまでにシミュレーションして得た複数の plot データを保持しており、カレントプロットに設定されているデータに対して、コマンドを適用する。他のプロット(データセット)が必要な場合は、setplot コマンドによりカレントプロットを変更する。 | |
| shell | SPICE上からUNIXシェルを呼び出す。SPICEに戻るときは、UNIX プロンプトで、exitを用いる。 | |
| show devices[:parameters], ... | デバイス(インスタンス)のモデルと動作状態を表示する | |
| showmod models[:parameters], ... | デバイス(インスタンス)のモデルとモデルパラメータを表示する | |
| source file | fileで指定されたSPICE入力ファイルをロードする。source コマンドを繰り返すことで、複数の回路がロードされる。同じシミュレーション条件で異なる回路を繰り返しシミュレーションすることが出来る。 | setcirc コマンド参照 |
| status | trace と 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形式の選択(必ず小文字で指定)が出来る |
(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) | 導関数 |
(d) ソースファイル中に記述する制御命令(主にバッチモードで使用)
| コマンド | 意味 | 備考 |
|---|---|---|
| .OPTIONS | シミュレータ制御のオプション変数の設定、(ex.相対保証精度の指定 .OPTIONS RELTOL=.005、オプション変数リストの出力 .OPTIONS OPTS) | setコマンドでも実行可能 |
| .INCLUDE | インクルードファイルの指定 (ex. .INCLUDE /opt/usr/spice/lib/analog.lib) | |
| 解析結果のテキスト出力 (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 | プランク定数 |
戻る
北川ホームページ
集積回路工学研究室ホームページ
情報システム工学科ホームページ
金沢大学ホームページ
Updated: