RSフリップフロップ

RSフリップフロップの構造とシンボル

RSフリップフロップの構造とシンボル

RSフリップフロップは、入力端子がSとRの2つ、出力端子がQと\( \overline{Q} \)の2つです。\( \overline{Q} \)はQの値を反転したものが出力されます。入力値と出力値の組み合わせは、次の真理値表のとおりです。

真理値表その1
S R Q \( \overline{Q} \)
0 0 \( Qprev \) \( \overline{Q}prev \)
0 1 0 1
1 0 1 0
1 1 禁止 禁止

Qprevの値は、SやRが入力される前の状態を表します。S=1かつR=1の組み合わせは禁止です。

出力Qと等価な論理式

RSフリップフロップを論理式の形で表します。まず、真理値表の入力をS,R,Qprevの3変数、出力をQとして書き直します。入力が3変数なので組み合わせは\( 2^3 = 8 \)通りになります。

真理値表その2
S R Qprev Q
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 禁止
1 1 1 禁止

「真理値表その2」からカルノー図を書くと次のようになります。

Qのカルノー図

Qのカルノー図

カルノー図で論理の簡略化を行います。図から、赤い囲みと青い囲みを簡略化できることがわかります。

赤い囲みの論理式
$$ Qred = S \overline{R} (Qprev + \overline{Q}prev) = S \overline{R} $$
青い囲みの論理式
$$ Qblue = \overline{R} Qprev(S + \overline{S} ) = \overline{R} Qprev $$
よって
$$ Q = Qred + Qblue = S \overline{R} + \overline{R} Qprev $$

Verilogシミュレーションで動作を確認

論理式を記述したRSフリップフロップのモジュールを作成し、SとRの値を10ナノ秒単位で切り替えてQの値を確認します。シミュレーションではQの初期値を0としています。

結果確認

シミュレーションで出力される波形でRSフリップフロップの信号を確認すると、確かにS=1かつR=0でQ=1、S=0かつR=1でQ=0となっていることがわかります。また、S=0かつR=0でQの状態を保持していることがわかります。この波形ではSやRの値が変化した直後にQの値が変化していますが、実際の回路ではQの値が変化するまでに遅延時間が存在します。

RSフリップフロプの波形

RSフリップフロプの波形

シミュレーションで使用したモジュールについて

module rs_ffはシミュレーション用であり、実際の論理設計でこのような記述を行うことはまずありません。例えば、FPGA用に論理合成を目的とした設計を行う場合、このようなRSフリップフロップを記述することは通常ありません。

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク