LTspiceにはインバータ(inv)の論理回路があります。
インバータ(inv)は、LTspice上では主にICのモデル内に使用されています。
この記事では
- インバータ(inv)の作成方法・使い方
- ビヘイビア電源によるインバータ(inv)の作成方法
を説明します。
インバータ(inv)の出し方
- LTspiceを開いた後、メニューバーでcomponentボタンを押します。
- 「Select Component Symbol」が開くので、[Digital]フォルダからinvを選択し、OKボタンを押します。
- インバータ(inv)が回路図上に表示されます。
インバータ(inv)のポイント
- インバータ(inv)の左下角にある丸はCOM端子となっています。このCOM端子は通常GNDに接続して使用します。また、入力(S,R)と出力(Q,Q反転)の端子で使用しないものはCOM端子に接続すると、シミュレーション時間を短縮することができます。
- COM端子やGNDを入力端子(S,R)に接続しても、入力の論理レベルは”L”となりません。”L”にするためには、0V(厳密にはVt以下)の電圧源を入力に接続する必要があります。
インバータ(inv)のシミュレーション例
実際にインバータ(inv)を使用してみましょう。上図のシミュレーションでは入力端子INにPWL電圧V1(1sで0Vから5Vになる電圧源)を接続した時の出力端子OUTの電圧を観測しています。上の右がシミュレーション結果となっており、赤が入力端子INの電圧、青が出力端子OUTの電圧となっています。
また、インバータ(inv)はパラメータを設定することができます。インバータ(inv)に記載してある、「Vhigh=5」は「Logic high level(論理"H"レベル)」です。入力端子INの電圧が閾値電圧Vt以下の場合、Vhighで指定した電圧となります。「Vlow=0」は「Logic low level(論理"L"レベル)」です。入力端子INの電圧が閾値電圧Vt以上の場合、Vlowで指定した電圧となります。パラメータはコントロール(Ctrl)を押しながら、部品を右クリックした際に出てくるComponent Attribute Editorメニューの「Value」か「SpiceLine」にパラメータを入力することで設定できます。「Vhigh」は出力の”H”レベルとなっており、デフォルトでは1Vになります。「Vlow」は出力の”L”レベルとなっており、デフォルトでは0Vになります。
その他、インバータ(inv)で使用できるパラメータを以下に示します。
パラメータ | デフォルト値 | 意味 |
Vhigh | 1 | Logic high level(論理"H"レベル) |
Vlow | 0 | Logic low level(論理"L"レベル) |
Trise | 0 | Rise time(立ち上がり時間) |
Vfall | Trise | Fall time(立ち下がり時間) |
Tau | 0 | Output RC time constant(RC時定数) |
Cout | 0 | Output capacitance(出力キャパシタンス) |
Rout | 1 | Output impedance(出力インピーダンス) |
Rhigh | Rout | Logic high level impedance(論理"H"レベルインピーダンス) |
Rlow | Rout | Logic low level impedance(論理"L"レベルインピーダンス) |
Td | 0 | Propagation delay(伝搬遅延) |
Ref | 0.5*(Vhigh+Vlow) | Input Logic threshold |
Vt | 0.5*(Vhigh+Vlow) | Schmitt input trip point(閾値電圧) |
Vh | 0.1 | Schmitt input hysteresis(ヒステリシス電圧) |
ビヘイビア電源でインバータ(inv)を作成する方法
ビヘイビア電源を用いてもインバータ(inv)を作成することができます。上図のシミュレーションでは入力端子INにPWL電圧V1(1sで0Vから5Vになる電圧源)を接続した時の出力端子OUTの電圧を観測しています。上の右がシミュレーション結果となっており、赤が入力端子INの電圧、青が出力端子OUTの電圧となっています。
ビヘイビア電源B1の式は以下のように記述します。
これは入力端子INの電圧が{VTHRESH}より大きい時は{VSS}となり、入力端子INの電圧が{VTHRESH}より小さい時は{VDD}となるようにしています。
上の回路をネットリストで記述すると以下のようになります。
.SUBCKT NOTnet IN OUT PARAM:VDD=5 VSS=0 VTHRESH=2.5 B1 OUT 0 V=IF(V(IN)>{VTHRESH},{VSS},{VDD}) .ENDS NOTnet