【LTspice】SRフリップフロップ(SRFLOP)の作成方法と使い方

スポンサーリンク

LTspiceにはSRフリップフロップの論理回路があります。
SRフリップフロップはデジタル回路では有名な回路であり、LTspice上では主にICのモデル内に使用されています。
この記事では

  • SRフリップフロップの作成方法・使い方
  • ビヘイビア電源によるSRフリップフロップの作成方法

を説明します。

SRフリップフロップの出し方

【LTspice】SRフリップフロップの出し方

  1. LTspiceを開いた後、メニューバーでcomponentボタンを押します。
  2. 「Select Component Symbol」が開くので、srflopを選択し、OKボタンを押します。
  3. SRフリップフロップ(SRFLOP)が回路図上に表示されます。

SRフリップフロップのポイント

【LTspice】SRフリップフロップのポイント

  • SRフリップフロップの左下角にある丸はCOM端子となっています。このCOM端子は通常GNDに接続して使用します。また、入力(S,R)と出力(Q,Q反転)の端子で使用しないものはCOM端子に接続すると、シミュレーション時間を短縮することができます。
  • COM端子やGNDを入力端子(S,R)に接続しても、入力の論理レベルは”L”となりません。”L”にするためには、0V(厳密にはVt以下)の電圧源を入力に接続する必要があります。

SRフリップフロップ回路のシミュレーション例

【LTspice】SRフリップフロップ(シミュレーション)
実際にSRフリップフロップを使用してみましょう。上図のシミュレーションでは入力端子Sにパルス電圧V1、入力端子Rにパルス電圧V2を接続した時の出力端子の電圧を観測しています。上の右がシミュレーション結果となっており、ピンクがS、緑がR、青が出力Q、赤が出力Qの反転電圧となっています。

入力(S,R)と出力(Q,Q反転)の関係は下表のようになり、SRフリップフロップ回路となっていることが確認できます(SRフリップフロップについて後日記載します)。
【LTspice】SRフリップフロップ(真理値表)

また、SRフリップフロップはパラメータを設定することができます。SRフリップフロップにある「Vhigh=5」はパラメータです。パラメータはコントロール(Ctrl)を押しながら、部品を右クリックした際に出てくるComponent Attribute Editorメニューの「Value」にパラメータを入力することで設定できます。
【LTspice】SRフリップフロップ(パラメータ).jpg

「Vhigh」は出力の”H”レベルとなっており、デフォルトでは1Vになります。今回は入力端子に印可される電圧が5Vなので、「Vhigh=5V」としています。「Vhigh」は入力の電圧より低くしないとSRフリップフロップが正常に動作しません。

「Vhigh」以外にもパラメータがあります。そのパラメータを以下に示します。

パラメータデフォルト値意味
Vhigh1Logic high level(論理"H"レベル)
Vlow0Logic low level(論理"L"レベル)
Trise0Rise time(立ち上がり時間)
VfallTriseFall time(立ち下がり時間)
Tau0Output RC time constant(RC時定数)
Cout0Output capacitance(出力キャパシタンス)
Rout1Output impedance(出力インピーダンス)
RhighRoutLogic high level impedance(論理"H"レベルインピーダンス)
RlowRoutLogic low level impedance(論理"L"レベルインピーダンス)
Td0Propagation delay(伝搬遅延)
Ref0.5*(Vhigh+Vlow)Input Logic threshold
Vt0.5*(Vhigh+Vlow)Schmitt input trip point(閾値電圧)
Vh0.1Schmitt input hysteresis(ヒステリシス電圧)

ビヘイビア電源でSRフリップフロップを作成する方法

ビヘイビア電源でSRフリップフロップを作成する方法(シミュレーション)
ビヘイビア電源を用いてもSRフリップフロップを作成することができます。上図のシミュレーションでは入力端子Sにパルス電圧V1、入力端子Rにパルス電圧V2を接続した時の出力端子の電圧を観測しています。上の右がシミュレーション結果となっており、ピンクがS、緑がR、青が出力Q、赤が出力Qの反転電圧となっています。

ビヘイビア電源B1の式は以下のように記述します。

V=IF(V(R)>{VTHRESH},{VSS},IF(V(S)>{VTHRESH},{VDD},{VSS}))

これはリセットRが{VTHRESH}より大きい時は{VSS}となり、リセットRが{VTHRESH}より小さいとき&セットSが{VTHRESH}より大きい時に{VDD}となるようにしています。

入力(S,R)と出力(Q,Q反転)の関係は下表のようになり、SRフリップフロップ回路となっていることが確認できます。
ビヘイビア電源でSRフリップフロップを作成する方法(真理値表)

LTspiceと異なるのは、リセットRに信号が入ると必ず出力Qが0になる点です。そのため、厳密にはSRフリップフロップではないのですが、ICもモデル内にはこのSRフリップフロップ回路が使用されていることが多いです。

上の回路をネットリストで記述すると以下のようになります。

.SUBCKT SRLATCH S R Q QB PARAM:VDD=5 VSS=0 VTHRESH=0.5
B1 Q 0 V=IF(V(R)>{VTHRESH},{VSS},IF(V(S)>{VTHRESH},{VDD},{VSS}))
B2 QB 0 V={VDD}-V(Q)
.ENDS SRLATCH

スポンサーリンク