以下のコマンド行は,回路記述ファイルの中で解析やグラフ作成を指示するためのものです. 会話型のコマンド解釈系(第5節で詳しく説明されている)にも同様のコマンドがあります. 入力ファイルで解析やグラフ(あるいは表)の作成を指示する方法は,バッチ実行で役立ちます. -b オプションが指定されるか,省略時の入力がファイルからリダイレクトされている場合に,バッチモードに入ります. バッチモードでは,入力ファイルの制御行により指定された解析(たとえば``.ac'', ``.tran''など)が,(``.control''行が存在する場合を除いて; 会話型コマンド解釈系の節を参照のこと)即座に実行されます. -r 「生ファイル」オプションが指定された場合,すべての生成されたデータはSpice3生ファイルに書き出されます. 生ファイルはSpice3の会話型モードまたはNutmegによって読み込まれます. 詳しくは,第5節を参照のこと. この場合,内部の素子の変数の値を記録するために .SAVE 行(4.4.1を参照)を使います(付録Bを参照のこと).
生ファイルが指定されていない場合,次に説明する .PRINT, .PLOT, .FOUR 制御行によって,グラフ(ラインプリンタ形式)と表を表示します. .PRINT, .PLOT, .FOUR 行は,Spice2との互換性をとるためのものです.
Spice3にはシミュレーション用のさまざまな変数があり,精度や速度を制御したり,ある素子の省略時の値を制御するために変更できます. これらのパラメータは,``set''コマンド(5.3.39節で説明します)または``.OPTIONS''行により変更できます.
一般形:
.OPTIONS OPT1 OPT2 ... (または OPT=OPTVAL ...)例:
.OPTIONS RELTOL=.005 TRTOL=8
.OPTIONS 行を使うと,プログラムの制御を初期状態に戻し,特定のシミュレーションの目的のためのオプションを設定できます. Nutmeg用の追加のオプションも指定でき,そのオプションはNutmegが入力ファイルを読んだときに効果を発揮します. ``set''コマンドによって指定されたNutmeg用のオプションは, あたかも .OPTIONS 行で指定されたかのようにSpice3にも渡されます. .OPTIONS 行によって設定できるパラメータと`set'コマンドの書式については,会話型のコマンド解釈系に関する5.3.39節を参照のこと. 以下のオプションは,任意の順序で任意に組み合わせることができます. (以下の) `x'は,ある正の数を表わします.
オプション | 効果 |
ABSTOL=x | 電流の絶対誤差の許容範囲を再設定します.省略時の値は1pA. |
BADMOS3 | MOS3モデルで``kappa''の不連続性がある古いバージョンを使います. |
CHGTOL=x | 電荷の許容範囲を再設定します.省略時の値は 1.0e-14. |
DEFAD=x | MOSドレイン拡散面積の値を再設定します.省略時の値は0.0. |
DEFAS=x | MOSソース拡散面積の値を再設定します.省略時の値は0.0. |
DEFL=x | MOSチャネル長の値を再設定します.省略時の値は100.0m . |
オプション | 効果 |
DEFW=x | MOSチャネル幅の値を再設定します.省略時の値は100.0m . |
GMIN=x | 許容できる最小のコンダクタンス GMIN の値を再設定します.省略時の値は 1.0e-12. |
ITL1=x | 直流動作点の繰り返し回数の制限を再設定します.省略時の値は100. |
ITL2=x | 直流伝達関数の繰り返し回数の制限を再設定します.省略時の値は50. |
ITL3=x | 過渡解析の繰り返し回数の下限を再設定します.省略時の値は4.(注意:Spice3では実装されていません). |
ITL4=x | 過渡解析の各時点の繰り返し回数の制限を再設定します.省略時の値は10. |
ITL5=x | 過渡解析の総繰り返し回数の制限を再設定します.省略時の値は5000.ITL5=0 と設定すると,このチェックを省きます.(注意:Spice3では実装されていません). |
KEEPOPINFO | 交流,歪み,極-ゼロ解析のいずれかを行なったときに,動作点の情報を保持します.これは回路が大きな場合に(冗長な) ``.OP''解析を行ないたくない場合に特に有用です. |
METHOD=name | Spiceが使用する数値積分手法を設定します.使用できる名前は,``Gear''または``trapezoidal'' (または単に``trap'')です.省略時の値は trapezoidal. |
PIVREL=x | 最大の列の値と受け入れ可能なピボットの値の相対比率を再設定します.省略時の値は 1.0e-3. 数値計算のピボット選択アルゴリズムでは,受け入れ可能な最小のピボット値が EPSREL=AMAX1(PIVREL*MAXVAL, PIVTOL) によって決定されます. ここで MAXVAL はピボットの対象となる列の最大の要素です(部分ピボッティング). |
PIVTOL=x | ピボットになることができる行列の要素の絶対最小値を再設定します.省略時の値は 1.0e-13. |
RELTOL=x | 相対誤差の許容値を再設定します.省略時の値は0.001 (0.1%). |
TEMP=x | 回路の動作温度を再設定します.省略時の値は摂氏27度(300ケルビン). TEMP は,温度に依存する任意の素子で指定した値が優先されます. |
TNOM=x | 素子のパラメータを測定した名目温度を再設定します.省略時の値は摂氏27度(300ケルビン). TNOM は,温度に依存する任意の素子で指定した値が優先されます. |
TRTOL=x | 過渡解析の誤差の許容値を再設定します.省略時の値は7.0. このパラメータはSpiceが実際の打ち切り誤差を大きく見積る係数の推定値です. |
TRYTOCOMPACT | LTRAモデルのみに適用されます. 指定されると,シミュレータはLTRA伝送線路の入力電圧と電流の過去のヒストリを圧縮しようとします. |
VNTOL=x | 絶対電圧誤差の許容値を再設定します.省略時の値は1 V. |
さらに,Spice2エミュレーションモードでは,次のオプションが働きます.
オプション | 効果 |
ACCT | 課金情報と計算時間の統計を表示します. |
LIST | 入力データの要約を表示します. |
NOMOD | モデルパラメータの表示を抑止します. |
NOPAGE | 改ページを抑止します. |
NODE | ノードの表を表示します. |
OPTS | オプションの値を表示します. |
.NODESET V(NODNUM)=VAL V(NODNUM)=VAL ...例:
.NODESET V(12)=4.5 V(4)=2.23
.NODESET 行は,指定したノードを指定した電圧に保つという予備的な試みを行なうことにより,直流解析や過渡解析の初期解を見つけやすくします. その後この制約は緩和され,本当の解に向かって繰り返しを続けます. 双安定または不安定な回路で収束するために .NODESET 行が必要になることがあります. 一般には,この行が必要とされることはありません.
.IC V(NODNUM)=VAL V(NODNUM)=VAL ...例:
.IC V(11)=5 V(4)=-5 V(2)=2.2
.IC 行は,過渡解析の初期条件を設定します. .TRAN 制御行に UIC パラメータが指定されているかどうかによって,2通りに解釈されます. また,この行を .NODESET 行と混同してはいけません. .NODESET 行は直流の収束を助けるだけで,(多安定の回路を除いては)最終的なバイアスの解には影響しません. 2つの解釈は,以下の通りです.
.AC DEC ND FSTART FSTOP例:
.AC OCT NO FSTART FSTOP
.AC LIN NP FSTART FSTOP
.AC DEC 10 1 10K .AC DEC 10 1K 100MEG .AC LIN 100 1 100HZ
DEC は10倍の変化を表わし,ND は10倍あたりの点の数です. OCT はオクターブの変化を表わし,NO はオクターブあたりの点の数です. LIN はリニアな変化を表わし,NP は点の数です. FSTART は開始周波数,FSTOP は最終周波数です. この行が入力ファイルに存在すると,Spiceは指定された範囲について回路の交流解析を行ないます. この解析に意味があるようにするためには,少なくとも一つの独立電源に AC 値を指定する必要があります.
.DC SRCNAM VSTART VSTOP VINCR[
SRC2 START2 STOP2 INCR2] 例:
.DC VIN 0.25 5.0 0.25 .DC VDS 0 10 .5 VGS 0 5 1 .DC VCE 0 10 .25 IB 0 10U 1U
DC 行は,直流伝達特性の電源と,その掃引の範囲を定義します(コンデンサは開放され,インダクタは短絡されます). SRCNAM は独立電圧源または電流源の名前です. VSTART, VSTOP, VINCR は,それぞれ開始値,最終値,増分です. 最初の例では,電圧源 VIN の値が,0.25Vから5Vまで,0.25Vきざみで増えていきます. オプションで2番目の電源(SRC2)を掃引パラメータに指定できます. この場合,第2の電源のそれぞれの値について,最初の電源が掃引されます. このオプションは,半導体素子の出力特性を得るのに役立ちます. 付録Aの2番目の回路例の説明を参照のこと.
.DISTO DEC ND FSTART FSTOP F2OVERF1例:
.DISTO OCT NO FSTART FSTOP F2OVERF1
.DISTO LIN NP FSTART FSTOP F2OVERF1
.DISTO DEC 10 1kHz 100Mhz .DISTO DEC 10 1kHz 100Mhz 0.9
.DIST 行は,回路の小信号歪み解析を行ないます. 多次元のテイラー級数を使って動作点の非直線性を表わして,多次元のVolterra級数解析を行ないます. 級数展開では3次までの項を使います.
オプションのパラメータ F2OVERF1 が指定されていない場合,.DISTO は高調波解析を行ないます. すなわち,単一の入力周波数 F1 に関する回路の歪みを解析します. 入力周波数は,.AC コマンドとちょうど同じように,.DISTO コマンドの引数で指定された範囲で掃引されます. この周波数の入力は,1つ以上の入力電源に現われてもよく,振幅と位相は入力となる電源の行に DISTOF1 キーワードの引数として指定します(独立電源の説明(3.2.1節)を参照のこと). (DISTOF2 キーワードの引数は,この場合関係ありません). この解析によって,入力周波数 F1 を掃引した場合の,すべてのノード電圧と枝電流の高調波 2F1 , 3F1 の交流値の情報が生成されます. (1という値は,入力の基本波では cos(2F1t) と等価であるという慣習により,(複素数の歪み出力としての) 1は,2F1 においては cos(2(2F1)t) を意味し,3F1 においては cos(2(3F1)t) を意味します.) Nutmegのコマンドで歪みの成分(2F1 または 3F1 )を選択して,表示やグラフの作成ができます. (通常,おもに高調波成分の振幅に関心があるので,交流歪み値の振幅を調べることになるでしょう). これらの値は,実際の高調波成分の交流値であり,HD2 や HD3 とは異なります. HD2 や HD3 を求めるには,.AC 行から得られる対応する F1 の交流値で割る必要があります. この除算はNutmegのコマンドでできます.
オプションの F2OVERF1 パラメータを指定する場合は,0.0を超え1.0未満の実数を指定します. この場合,.DISTO はスペクトル解析を行ないます. 2つの異なった周波数 F1 と F2 の正弦波を回路に入力したとみなします. F1 は .DISTO 制御行にしたがって .AC 制御行と同じように掃引されます. F1 が掃引される間,F2 は x という単一の周波数に固定されます. 回路の中の各独立電源は,F1 , F2 という2種類の(重ね合わされた)正弦波による歪み解析用の入力となります. F1 成分の振幅と位相は,電源の入力行の DISTOF1 キーワードの引数で指定します(独立電源の説明(3.2.1節)を参照のこと). F2 成分の振幅と位相は,電源の入力行の DISTOF2 キーワードの引数で指定します. この解析によって,入力周波数 F1 を掃引した場合の,すべてのノード電圧と枝電流の混変調出力周波数 F1 + F2 , F1 - F2 , 2F1 - F2 の交流値の情報が描かれます. 関心のある混変調出力を setplot コマンドを使って選択し,print および plot コマンドを使って表示することができます. 高調波解析の場合と同様に,結果は混変調周波数の実際の交流電圧や電流であり,IMパラメータを得るには,.AC の値で標準化する必要があります.
独立電源の記述に DISTOF1 または DISTOF2 キーワードがない場合,その電源は対応する周波数の入力がないと仮定されます. 振幅と位相の省略時の値は,それぞれ1.0と0.0です. 位相は,度で指定します.
正確な結果を得るために,理想的には F2OVERF1 を無理数とすべきですが,実際には不可能なので,その値を分数で表わしたときの分母ができるだけ大きくなるよう(最低3以上)にしてください(すなわち,F2OVERF1 を分数 A/B で表わしたとき,A と B に共通の因数がなく,B ができるだけ大きくなるようにしてください.F2OVERF1 は1未満なので,A < B となります.). なぜそうすべきかを説明するために,F2OVERF1 が 49/100 の場合と 1/2 の場合を考えてみます. スペクトル解析では,出力される周波数は F1 + F2 , F1 - F2 , 2F1 - F2 です. 後者の場合, F1 - F2 = F2 となり,同じ周波数に強い基本波の F2 成分があるため,F1 - F2 成分は誤りとなってしまいます. 同様に,後者の場合, F1 + F2 = 2F1 - F2 であり,それぞれの結果も誤りとなってしまいます. = 49/100 の場合, F1 - F2 = 51/100F149/100F1 = F2 なので,この問題は生じません. この場合,2つの周波数成分は,F2 と F1 - F2 という非常に近いところにあります. Volterra級数を使う利点のひとつは,たとえば過渡解析の場合とは異なり,記号で表わされた混合周波数(すなわち nF1 + mF2 )における歪みを計算するので,歪みの成分がたとえ非常に近くにあっても,歪みの大きさを正確に求めることができることです. 欠点は,もちろん2つの混合周波数が一致した場合に,結果が結合されて表示されないことです(これはおそらく後処理によって可能です). 現状では,関心のある利用者は,混合周波数の値を自分で調べて,必要なら混合周波数が一致した歪みを加算してください.
.NOISE V(OUTPUT ,REF ) SRC(
DEC| LIN| OCT)
PTS FSTART FSTOP例:
+ PTS_PER_SUMMARY
.NOISE V(5) VIN DEC 10 1kHZ 100Mhz .NOISE V(5,3) V1 OCT 8 1.0 1.0e6 1
.NOISE 行は,回路のノイズ解析を行ないます.
OUTPUT は総出力ノイズを求めるノードです.
REF が指定されている場合,ノイズの電圧は
.NOISE 制御行は2つのグラフを生成します. 一つはノイズスペクトル密度曲線で,もう一つは指定した周波数範囲の総積分ノイズです. すべてのノイズ電圧/電流は2乗の単位です(スペクトル密度では V2 /Hz および A2 /Hz,積分ノイズでは V2 および A2 ).
.OP
入力ファイルにこの行を含めると,インダクタを短絡し,コンデンサを開放して,回路の直流動作点を決定するようSpiceに指示します. 直流解析は,過渡解析の初期条件を決定するために過渡解析の前に,また,非線形素子の線形化小信号モデルを決定するために,交流小信号解析,ノイズ解析,極-ゼロ解析の前に,自動的に行なわれます(前述の KEEPOPINFO 変数(5.5節)を参照のこと).
.PZ NODE1 NODE2 NODE3 NODE4 CUR POL例:
.PZ NODE1 NODE2 NODE3 NODE4 CUR ZER
.PZ NODE1 NODE2 NODE3 NODE4 CUR PZ
.PZ NODE1 NODE2 NODE3 NODE4 VOL POL
.PZ NODE1 NODE2 NODE3 NODE4 VOL ZER
.PZ NODE1 NODE2 NODE3 NODE4 VOL PZ
.PZ 1 0 3 0 CUR POL .PZ 2 3 5 0 VOL ZER .PZ 4 1 4 1 CUR PZ
CUR は (出力電圧)/(入力電流) 型の伝達関数を表わし,VOL は (出力電圧)/(入力電圧) 型の伝達関数を表わします. POL は極解析のみを表わし,ZER はゼロ解析のみを表わし,PZ は極-ゼロ解析を表わします. この機能は,主に極またはゼロを見つける計算が収束しない場合に,少なくとも一方を出力するために用意されています. NODE1 および NODE2 は,2つの入力ノードで,NODE3 および NODE4 は,2つの出力ノードです. したがって,出力と入力のポートと伝達関数の種類に関して完全な自由があります.
会話モードでは,コマンドの構文は同じですが,最初のフィールドは .PZ ではなく PZ です. 結果を表示するには,コマンド`print all'を使います.
.SENS OUTVAR例:
.SENS OUTVAR AC DEC ND FSTART FSTOP
.SENS OUTVAR AC OCT NO FSTART FSTOP
.SENS OUTVAR AC LIN NP FSTART FSTOP
.SENS V(1,OUT) .SENS V(OUT) AC DEC 10 100 100k .SENS I(VTEST)
.SENS 解析を指定すると,0はでないすべての素子パラメータに対する OUTVAR の感応度が計算されます. OUTVAR は回路の変数(ノードの電圧または電圧源の枝電流)です. 最初の形式は,OUTVAR の直流動作点の値の感応度を計算します. 2番目の形式は,OUTVAR の交流値の感応度を計算します. 交流感応度で指定するパラメータは,交流解析のパラメータと同じです(上述の .AC を参照のこと). 出力される値の次元は,(入力1パーセントの変化あたりの出力の変化率ではなく)入力1単位の変化あたりの出力の変化です.
.TF OUTVAR INSRC例:
.TF V(5, 3) VIN .TF I(VLOAD) VIN
TF 行は,直流小信号解析の小信号出力と入力を定義します. OUTVAR は小信号出力変数で,INSRC は小信号入力電源です. この行があると,Spiceは伝達関数(出力/入力)の直流小信号値,入力抵抗,出力抵抗を計算します. 最初の例では,Spiceは VIN に対する V(5, 3) の比と,VIN の小信号入力抵抗と,ノード5と3の間で測った小信号出力抵抗を計算します.
.TRAN TSTEP TSTOP TSTART TMAX例:
.TRAN 1NS 100NS .TRAN 1NS 1000NS 500NS .TRAN 10NS 1US
TSTEP は,表示やグラフの増分です. TSTEP は,後処理系と共に使うために提案された計算間隔として扱われます. TSTOP は最終の時刻で,TSTART は最初の時刻です. TSTART が省略されている場合,0と仮定されます. 過渡解析は,常に時刻0から始まります. 区間 0, では,(安定状態に達するまで)回路は解析されますが,出力は保存されません. 区間 , では,回路が解析され,出力が保存されます. TMAX は,Spiceが用いる最大のステップの大きさです. 省略時の値として,プログラムは TSTEP または ( - )/50.0 のいずれか小さいほうを選びます. TMAX は,計算の間隔を表示の増分 TSTEP よりも小さくしたい場合に有用です.
UIC (初期条件を使う)は,オプションのキーワードで, 過渡解析に先立ってSpiceが安定動作点の解を求めないように指示するものです. このキーワードが指定された場合,Spiceはさまざまな要素の IC=... によって指定された値を過渡解析の初期条件として使い,解析を進めます. .IC 制御行が指定された場合,その素子の初期条件を計算するために .IC 行のノードの電圧が使われます. UIC が指定されていない場合の .IC 制御行の解釈については,.IC の説明(4.2.2節)を参照のこと.
.SAVE ベクトル ベクトル ベクトル ...例:
.SAVE i(vin) input output .SAVE @m1[id]
後にSpice3またはNutmegで使えるように,.SAVE 行でリストされたベクトルを生ファイルに記録します(Nutmegはシミュレート機能のないSpice3のデータ解析部です). 標準的な書式でベクトルの名前を指定できます. .SAVE 行が指定されていない場合,標準のベクトルの組(ノードの電圧,電圧源の枝電流)が保存されます. .SAVE 行が指定されている場合,指定されたベクトルのみが保存されます. 素子の内部データに関しては,付録Bを参照のこと. 生ファイルの使い方については,会話型コマンド解釈系の5節も参照のこと.
.PRINT PRTYPE OV1 OV2 ... OV8例:
.PRINT TRAN V(4) I(VIN) .PRINT DC V(2) I(VSRC) V(23, 17) .PRINT AC VM(4, 2) VR(7) VP(8, 3)
.PRINT 行は,1つから8つの出力変数からなる表の内容を定義します. PRTYPE は,出力させたい分析の種類(DC, AC, TRAN, NOISE, DISTO)です. 電圧や電流の出力変数の書式は,print コマンドの5.3.28節で説明されているものと同じです. Spice2は,出力変数を次の書式に制限しています(この制限はSpice3にはありません).
VR | 実部 |
VI | 虚部 |
VM | 振幅 |
VP | 位相 |
VDB | 20 log10(振幅) |
ノイズ解析と歪み解析の出力変数の一般形は,他の解析の形式とは異なります.
各解析種別について,.PRINT 行の数に制限はありません.
.PLOT PLTYPE OV1 (PLO1, PHI1) OV2 (PLO2, PHI2) ... OV8例:
.PLOT DC V(4) V(5) V(1) .PLOT TRAN V(17, 5) (2, 5) I(VIN) V(17) (1, 9) .PLOT AC VM(5) VM(31, 24) VDB(5) VP(5) .PLOT DISTO HD2 HD3(R) SIM2 .PLOT TRAN V(5, 3) V(4) (0, 5) V(7) (0, 10)
.PLOT 行は,1つから8つの出力変数からなる1つのグラフの内容を定義します. PLTYPE は,出力させたい分析の種類(DC, AC, TRAN, NOISE, DISTO)です. OVI の構文は,.PRINT 行や会話モードの plot コマンドと同じです.
2つ以上の軌跡が重なったところは,文字`X'で示されます.
1つのグラフに2つ以上の変数が現われる場合,最初に指定された変数はグラフに描かれるだけでなく,表でも出力されます. すべての変数の表出力が必要な場合は,.PRINT 行も指定してください.
各解析種別について,.PLOT 行の数に制限はありません.
.FOUR FREQ OV1 OV2 OV3 ...例:
.FOUR 100K V(5)
.FOUR (フーリエ)行は,過渡解析の一部としてフーリエ解析を行なうよう指示します.
FREQ は基本波の周波数,OV1, OV2, OV3 は解析する出力変数です.
フーリエ解析は,区間
ayumi