[0165] フリップフロップ回路

平成12年度秋期 (旧)第2情報処理技術者試験より
次の論理回路において、S = 1、R = 1、X = 0、Y = 1 のとき、S をいったん 0 にした後、再び 1 に戻した。この操作を行った後の X、Y の値はどれか。

ここで、は論理積(AND)、は否定(NOT)を表す。


X = 0、Y = 0
X = 0、Y = 1
X = 1、Y = 0
X = 1、Y = 1

正解

解説

 フリップフロップ回路に関する問題です。

 フリップフロップ回路には用途に応じて様々なものがありますが、メモリセルとしては SRAM などに使用されており、一度データを記憶すると、電源が切れない限り記憶し続ける性質を持っています。DRAM のように、記憶を保持するためのリフレッシュは必要ありません。

 それでは、問題を解いていきましょう。

 初期状態は下図のようになっています。赤い字の端子は 「1」、青い字の端子は 「0」 を表しています。説明のために、それぞれの論理回路に 1 ~ 4 の番号を振りました。実際は瞬間的なものですが、わかりやすくするために、それぞれの論理回路の出力値が変化していく様子をひとつひとつ図示していきます。




 まず、S を 「0」 に変えます。すると、1 の AND回路の出力が「0」に変化します。




 1 の AND回路の出力が「0」 になったので、2 の NOT回路の出力は、「1」に変化します。




 2 の NOT回路の出力が「1」になったので、3 の AND回路の出力は、「1」に変化します。




 3 の AND回路の出力が「1」になったので、4 の NOT回路の出力は、「0」に変化します。




 以上で、S を「0」 に変える操作が完了しました。X、Y の 値が入れ替わっていることに注目してください。

 次に、S を 「1」に変化させます。1 の AND回路は「1」と「0」が入力されることになるので、出力は「0」のままです。




 最終的には、X = 1、Y = 0 となりました。S を「1」 に戻しても、「0」 に変えたときの X、Y の値が、そのまま変化しないことがわかります。つまりこの回路は、S、R から入力された 0 → 1 という値の変化に応じて、出力内容を記憶しているといえます。

 S、R の値を それぞれ 0 → 1 と変化させたときに、X、Y の値がどのように変化するかは、下のアニメーションGIFをみていただければおわかりいただけると思います。




 以上より、ウが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題