順序論理回路の話は始めるときりがない。ここでは、 RS フリップフロップ (RS flipflop, Reset-Set flipflop)という回路だけを紹介する。
フリップフロップというのは、英語でシーソーが上がったり下がったりする様
子を表現する言葉で、日本語で言えば、「ギッコンバッタン」といったところ
である。
今、シーソーに誰も乗っておらず、シーソーの右側が上がった状態だとし
て、そのまま何もしなければ、摩擦によりこの状態が保たれる。逆に右側が下
がった状態だとしても、何もしなければその状態が保たれる。右が上がった状
態を「出力 H」と考え、右が下がった状態を「出力 L」と考えれば、シーソーは
H か L かの1ビットを記憶する装置と考えられる。
さて、今、右が上がっている(出力 H)として、人が右側に乗ると右が下がる。
従って、右に人が乗ってすぐまた降りる(あるいは右を押し下げてまた離す)動
作により、シーソーに L を記憶させる(出力をLにリセットする)ことができる。
同じことを逆に左側に対して行なえば、シーソーに H を記憶させる(出力をH
にセットする)ことができる。
RS フリップフロップ回路もこれと同じような動作をする。RS フリップフロッ
プ回路は R (Reset)端子と S (Set) 端子を持ち、R と S を共に H に保って
おくと、出力は現在の電圧に保たれる。
R 端子の電圧を L に下げると出力が L にリセットされるので、
S を H に保ったまま、R を短時間 L にしてすぐ H に戻す操作をすれば、
回路に L を記憶させる(Reset)ことができる。
逆に、R を H に保ったままで S 端子を L にしてすぐ H に戻すことにより、
回路に H を記憶させる(Set)ことができる。
では、R と S を同時に H から L に変化させ、また同時に H に戻したら
どうなるか? これは、シーソーの両側を同時に押して同時に戻すようなもので
ある。そのあとどちらに傾くかはシーソーごとに異なったり、その時のちょっ
とした条件の違い(風など?)でどうなるかわからないだろう。RS フリップフロッ
プ回路の場合も同様で、このような操作をした場合は、結果はどうなるか保証
できないので、そういう操作はしてはいけないことになっている。
RS フリップフロップの作り方を考える前に、下のような回路を考えてみよう:
では、次のように NOT が2個ならどうだろう:
これなら、現在の出力 Q が H であれ、L であれかそれが保たれるはずである。 そこで、この回路を改造して、Q を H にセットしたり、L にリセットしたり できるようにしよう。
そこで登場するのが NAND ゲートである。H NAND x = ¬x だから、NAND の一 方の入力を H にしたものは、NOT 回路と同じである。それなら、NOT 回路を、 NAND の一方を H にしたもので置き換えてみよう:
もちろん、このように入力を H に固定していたのでは Q をセットしたりリセッ
トしたりはできない。そこで、H に固定されている入力を変化させることができるようにして、下図のように、S 端子、R 端子としよう:
(多くの文献では、S と R の上に横線が引いてある。)
さて、x が何であっても L NAND x = H であった事を思い出してほしい。これ により、(R を H に保ったままで) S 端子を L にすれば Q を H にセットで きる。また、(S 端子を H に保ったままで) R 端子を L にすれば Q を L に リセットできる。