Subsections


2 回路の記述


2.1 全体の構成と慣例

解析する回路をSpiceに指定するには,回路のつなぎ方と要素の値を定義する要素行と,モデルのパラメータを指定したり実行の制御を定義する制御行とで記述します. 入力ファイルの最初の行はタイトルであり,最後の行は``.END''でなければなりません. その他の行の順序は任意です(もちろん,継続行は元になる行の直後になければなりません).

回路の各要素は,要素の名前,要素がつながる回路のノード,要素の電気的特性を決定するパラメータの値からなる要素行で指定します. 要素名の最初の文字により要素の種類を指定します. Spiceの要素の種類の形式は,後ほど説明します. 文字列``XXXXXXX'', ``YYYYYYY'', ``ZZZZZZZ''は,任意の英数字列を表わします. 例えば,抵抗の名前は,文字 R で始まる1文字以上の文字列です. したがって,R, R1, RSE, ROUT, R3AC2ZY は,すべて正しい抵抗の名前です. 素子の種類各々についての詳細は,次の節で説明します.

1行の中のフィールドは,1個以上の空白,1個のカンマ,1個の等号(`='),括弧で区切られます. 余分な空白は無視されます. 次の行の1桁目を`+'で始めると,行を継続できます. Spiceは,2桁目以降から読み込みを続けます.

名前のフィールドは,文字(AからZ)で始め,区切文字を含んではいけません.

数値のフィールドは,整数フィールド(12, -44),浮動小数点数フィールド(3.14159),整数または浮動小数点数のあとに整数の指数が続くもの(1e-14, 2.65e3),整数または浮動小数点数のあとに以下の尺度が続くもののいずれかです.

T  =  1012     G  =  109     Meg  =  106     K  =  103     mil  =  25.4-6
m  =  10-3     u  =  10-6     n  =  10-9     p  =  10-12     f  =  10-15
数値の直後に続く尺度でない文字は無視されます. 尺度の直後に続く文字も無視されます. したがって,10, 10V, 10Volts, 10Hz は, すべて同じ数値になり,M, MA, MSec, MMhos は, すべて同じ尺度になります. 1000, 1000.0, 1000Hz, 1e3, 1.0e3, 1KHz, 1K は,すべて同じ数値となることに注意してください.

ノードの名前は,任意の文字列です. 基準(グラウンド)ノードは,かならず`0'です. Spice3ではノードの名前は数値としてではなく文字列として扱われるので,`0'と`00'は異なったノードになりますが,Spice2では同じノードになります. 回路には,電圧源とインダクタのみのループ,または電流源とコンデンサのみのループを作ってはなりません. 回路の各ノードは,グラウンドと直流的につながっていなければなりません. 非終端伝送線路を許している伝送線路のノードおよびMOSFETのサブストレートノード(内部的に2箇所とつながっている)を除いては,各ノードは2つ以上の素子とつながっていなければなりません.


2.2 タイトル行,コメント行,.END 行


2.2.1 タイトル行

例:

POWER AMPLIFIER CIRCUIT
TEST OF CAM CELL

入力ファイルの最初の行はタイトル行です. この行は,出力の各部分のヘッダとして,そのまま表示されます.


2.2.2 .END 行

例:

.END

入力ファイルの最後の行は,``.End''行でなければなりません. ピリオドも名前の一部であることに注意してください.


2.2.3 コメント

一般形:

* $ \langle$ 任意のコメント$ \rangle$
例:

* RF=1K      Gain should be 100
* Check open-loop gain and phase margin

最初の桁のアスタリスクは,この行がコメント行であることを表わします. コメント行は,回路の記述の任意の場所に置くことができます. Spice3は,行頭が空白の場合もコメント行として扱います.


2.3 素子のモデル

一般形:

.MODEL MNAME TYPE(PNAME1=PVAL1 PNAME2=PVAL2 ...)
例:

.MODEL MOD1 NPN (BF=50 IS=1E-13 VBF=50)

最も単純な回路の要素は,典型的にはいくつかのパラメータ値を必要とするだけです. しかし,Spiceに含まれている素子によっては(特に半導体素子),数多くのパラメータ値を必要とするものもあります. 回路の中では,同じパラメータで定義した素子を複数使うことがよくあります. こういった理由により,独立した .MODE 行で素子モデルの一連のパラメータを定義して,一意のモデル名を割り当てます. そして,Spiceの素子要素行では,モデル名を参照します.

これらの複雑な素子の場合,素子要素行は素子名,素子がつながるノード,素子のモデル名からなります. さらに,ある素子については,幾何的な係数,初期条件といったオプションのパラメータを指定することもできます(詳細についてはトランジスタとダイオードの3.4節を参照してください).

上記の MNAME はモデル名で, TYPE は次の15種類のうちの1つです.

R 半導体抵抗モデル
C 半導体コンデンサモデル
SW 電圧制御スイッチ
CSW 電流制御スイッチ
URC 一様分布RCモデル
LTRA 有損失伝送線路モデル
D ダイオードモデル
NPN NPN BJTモデル
PNP PNP BJTモデル
NJF NチャネルJFETモデル
PJF PチャネルJFETモデル
NMOS NチャネルMOSFETモデル
PMOS PチャネルMOSFETモデル
NMF NチャネルMESFETモデル
PMF PチャネルMESFETモデル

パラメータの値は,パラメータ名の後ろに等号を続け,パラメータ値を続けて指定します. 値が指定されていないモデルのパラメータには,各モデルごとに以下で与えられるデフォルト値が設定されます. モデル,モデルのパラメータ,デフォルト値は,素子要素行の記述とともに次の節に載っています.


2.4 サブ回路

Spiceの要素からなるサブ回路を定義して,素子モデルと同様な方法で参照することができます. サブ回路は,入力ファイル中で,要素行の集まりによって定義します. プログラムは,サブ回路が参照された場所に一連の要素を挿入します. サブ回路の大きさや複雑さに制限はありません. サブ回路は,他のサブ回路を含むことができます. サブ回路の使い方の例は,付録Aにあります.


2.4.1 .SUBCKT 行

一般形:

.SUBCKT subnam N1 $ \langle$ N2 N3 ...$ \rangle$
例:

.SUBCKT OPAMP 1 2 3 4
回路の定義は,.SUBCKT 行で始まります. SUBNAM はサブ回路の名前で,N1, N2, ...は外部ノードで,0 以外を指定します. .SUBCKT に続く要素行の集まりによってサブ回路を定義します. サブ回路の定義の最後の行は .ENDS 行です(2.4.2節を参照のこと). サブ回路の定義の中に制御行が現われてはなりません. それ以外のもの(別のサブ回路の定義,素子モデル,サブ回路の呼出し(2.4.3節を参照のこと)など)はサブ回路の定義に入れることができます. サブ回路の定義の一部となっている素子モデルや別のサブ回路の定義は,局所的なものです(つまり,そのようなモデルや定義は,サブ回路の定義の外側には見えません). .SUBCKT 行に現われない要素のノードも,0 (グラウンド)を除いては局所的です. グラウンドは常に大域的です.


2.4.2 .ENDS 行

一般形:

.ENDS $ \langle$ SUBNAM$ \rangle$
例:

.ENDS OPAMP

サブ回路の定義の最後の行は,.ENDS 行でなければなりません. サブ回路の名前が含まれている場合,そのサブ回路の定義が終わることを表わします. 省略されている場合は,すべてのサブ回路の定義が終わります. 名前は,サブ回路の定義が入れ子になっている場合のみ必要です.


2.4.3 サブ回路の呼出し

一般形:

XYYYYYYY N1 $ \langle$ N2 N3 ...$ \rangle$ SUBNAM
例:

X1 2 4 17 3 1 MULTI

Spiceでは,文字`X'で始まる仮想要素を指定することにより,サブ回路を使用できます. その後には,サブ回路を展開する時に使う回路のノードを指定します.

2.5 ファイルを結合する: .INCLUDE 行

一般形:

.INCLUDE filename
例:

.INCLUDE /users/spice/common/wattmeter.cir

特に共通のモデルやサブ回路など,回路の記述の一部をさまざまな入力ファイルで再利用することがよくあります. Spiceの任意の入力ファイルで .include 行を使うと,他のファイルの内容があたかもその場所にコピーされたようになります. ファイル名に関しては,オペレーティングシステムによる制限以外に,Spiceによる制限はありません.

ayumi
2017-03-27