◎順序論理回路

順序論理回路の話は始めるときりがない。ここでは、 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 フリップフロップの構成

RS フリップフロップの作り方を考える前に、下のような回路を考えてみよう:

x = ¬¬¬x は論理的にはあり得ないことだが、実際の論理ゲートでは、信号 の伝達に遅れ(ゲート遅延)があるので、この回路は NOT 回路の遅延時間の3倍 くらいの時間間隔で出力が H になったり L になったりをくり返す(発振する、 という)。
(では、NOT 回路が1個だとどうなるかというと、普通に使われている NOT 回路の場合、1個では遅延時間が小さ過ぎて、うまく発振せず、H と L の中 間の電圧で安定してしまうだろう。)

では、次のように 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 に リセットできる。