セット(S)とリセット(R)の入力で出力を保持・変更する基本的なフリップフロップ。
RSフリップフロップとは、1ビット(=0か1のどちらか)の情報を記憶できる回路のことです。S(セット)とR(リセット)という2つの入力で、出力Q(記憶している値)を操作します。
身近な例で考えると、押しボタン式の照明スイッチに似ています。「点ける(S)」ボタンを押すと点灯し続け、「消す(R)」ボタンを押すまでその状態を覚え続けます。どちらのボタンも押していない間は、いまの状態がそのまま保たれます。
上のツールで▶ボタンを押すと、S と R を時間順に変えていったときに、出力Qが「セット→保持→リセット→保持→禁止」とどう動くかをタイムチャートと特性表で確認できます。
RSフリップフロップの基本は、S と R のどちらに1を立てるかで出力を切り替えることです。次の3つの動作を覚えましょう。
・セット(S=1, R=0):出力Qが1になる。S はセット(set=設定する)の頭文字
・リセット(S=0, R=1):出力Qが0になる。R はリセット(reset=消去する)の頭文字
・保持(S=0, R=0):直前のQの値をそのまま覚え続ける
ポイントは、一度セットやリセットをした後、入力を0に戻しても値が消えないことです。これが「記憶できる」という性質の正体です。上のツールのセット直後に S を0へ戻しても、Qが1のまま保持される様子を確認できます。
S=1, R=1 を同時に与えることは「禁止」とされています。これは「1を覚えなさい(セット)」と「0に戻しなさい(リセット)」という矛盾した命令を同時に出していることになるからです。
この状態では出力Qが0になるか1になるか決まらず、これを不定(未定義)と呼びます。さらに、両方の入力を同時に0へ戻すと、回路の動作が安定しない(どちらの値に落ち着くか予測できない)という困った問題も起きます。
身近な例えで言うと、「点けて!」と「消して!」を同時に叫んでいるようなもので、スイッチがどちらに従えばよいか分からなくなります。この禁止状態を解消するために改良されたのが、後に登場するJKフリップフロップです。