フリップフロップ
フリップフロップ回路は一般的に2つの出力があって、片方がHighのときもう片方はLow、片方がLowのときもう片方はHighというように シーソーのような出力をする回路として登場します。この回路の要点は何なのか? 例えば、片方が決まるともう片方も決まるなら 片方は使わなくていいよね ということになりますがその通りです。
図1-17の真ん中左側の回路が最も単純なフリップフロップ回路の一例です。 2つのNAND回路からの出力が交差しながら戻って、またNANDゲートの入力になっています。 この交差部分は上を絶縁通過しているだけで、導線同士が接触しているわけではありません。 接続部分は回路図では白い丸印にしますが、このシミュレーターの白丸はちょっと見づらいですね。 入力をいじってみると両方Lのときは、出力は両方Hとなりフリップフロップしていませんが、実際の使用では入力が両方Lの状態は使いません。 上だけHにしたときは、出力の上下はLH、下だけHにしたとき、出力はHLとフリップフロップします。 重要なのが入力が両方Hのときなのですが、出力の上下がHLになるときとLHになるときの2通りがあると思います。 詳細には、入力がHLのとき出力はLHですが、このとき入力をHHにしても相変わらず出力はLHです。 逆に入力がLHのとき出力はHLですが、次に入力をHHにしても出力はHLのままで、つまり入力HHの前の出力の状態が、 そのまま保持されていることになります。これは前の状態を記憶していることに他なりません。 このようにフリップフロップのとても重要な点は出力の状態を保持することができる回路という点です。
次に真ん中右側の「Dラッチ」についてです。この回路は左側の回路にさらに2つのNANDゲートを加えて、ゴニョゴニョ繋げたものです。 以下、入力の上側をD入力、下側をC入力と呼びます。この回路はC入力がLのときは、出力の状態は変わりません。 ところがHになるとその間、D入力のHLの状態が出力の上側に反映されるようになります。このようにD入力を出力に反映するタイミングを C入力で制御できるのが、Dラッチということになります。
一番下のDフリップフロップは1つインバータが入りますが、Dラッチを2個繋げた回路です。 この回路もD入力の状態を、C入力で制御して出力するという点ではDラッチと同じですが、その反映のタイミングが異なります。 DフリップフロップはC入力がLからHに変わった瞬間だけ、D入力を出力に反映することができます。 つまりC入力のL→H立ち上がり時のD入力の状態が出力に反映されるようになります。 それ以外のタイミングでは出力の状態を変化させることはできません。
このC入力がいわゆるCPUのクロックに当たるものです。Dフリップフロップは図17一番上のボックス状の記号で表現されます。
図1-17