トップデジタル回路 > Tフリップフロップ

Tフリップフロップ

1.Tフリップフロップとは

Tフリップフロップは、トグル(toggle)フリップフロップの略で、 クロックが加わるたびに出力の状態が反転するフリップフロップである。

2.Tフリップフロップ(by J-K FlipFlop)

Tフリップの実現方法はいくつか知られている。最初に、J-Kフリップフロップを使った実現方法を示す。

上の回路では、マスタースレーブJ-Kフリップで説明した中間変数を2段用いてシミュレーションしている。

一方、下の回路では、Tフリップフロップの仕様から 次のようなシンプルなプログラムで表現している。 ここでクロック信号Tの現在の値を t0、一つ前の値 tL とする。

if (tL && !t0) {	// クロックの立下り
    n0 = !o0;	// 反転
    n1 = !n0;
} else {
    n0 = o0;	// 現在の値を保持
    n1 = o1;
}

両者のタイムチャートを比較すると位相が180°ずれている。 Tフリップフロップの仕様では初期値は規定されていないため、いずれも仕様を満たしている。

実際の回路では、コンピュータのメモリの初期状態と同じで、初期値がどうなるかは分からない。 個々のANDゲートやORゲートの出力端子の初期値は定まっていない。

もちろん、初期値を確定しておきたいケースは多くある。 それには、それなりの回路がさらに付加されるわけである。

3.XORゲートによるTフリップフロップ

下に、XORゲートを使ったTフリップフロップを示す。 タイムチャートを見れば分かるように、入力信号Tが1の期間は非常に短い。 出力信号が変わる前に0に戻さねばならない。すなわち、パルス幅を XORゲートの遅延時間より短くする。

もし、T = 1 の期間が長くなると出力 Q は 0 → 1 → 0 のように反転を繰り返す。 下に、幅を長くした時の様子を示す。

このため、T の立ち上り後、出力 Q が変化する前に T = 0 とする必要がある。 このような T-FF を、 パルス型T-FF(もしくはAC型T-FF) と呼ぶ。 このような、入力 T の制約をなくした T-FF を DC型T-FF と呼ぶ。

パルス幅が長すぎる場合の例を下に示す。

XORはORに似た記号で表されるため、簡単な回路に見えるが、実際はそうではない。 XORの二つの入力をA、Bで表すと、出力Qは

 Q=A・BA・B
と表される。 基本ゲートでこの論理式を表現すると、NOTゲートが二つ、ANDゲートが二つ、 ORゲートが一つ、合計5つのゲートが使われる。工夫すれば4個のゲートで実現できる。 例えば、R-Sフリップフロップは二つのゲートで構成されるから、XORは簡単な回路とは言えない。

パルス型T-FFを自分で回路を組んで実現する場合、 パルス幅が短すぎてもいけない。 実際の信号はシミュレータのタイムチャートに示すようなきれいな矩形波ではない。 回路には否応なしにLCRが含まれるため、クロックの立ち上がり、 立下りにそれなりの時間が必要となるため、パルス幅が短すぎると、 十分に立ち上がらないうちに、立下りが起きることになり、 1として検出されないケースが生まれる。