JKフリップフロップ

JKフリップフロップとは、クロック、J、Kを入力として、クロックの立ち上がりエッジで、Qが以下の真理値表のように変化するフリップフロップのことです。

J K 前回のQ Q
L L L L
L L H H
L H X L
H L X H
H H L H
H H H L

上記の真理値表のQを機能で表現すると、以下になります。

J K Q
L L 前回のQを保持
L H リセット(L)
H L セット(H)
H H

前回のQの論理否定

例えば、以下は、NANDゲートのみで構成したJKフリップフロップです。CLKはクロックです。

JKフリップフロップの動作確認

まず、赤枠で示した部分は、負論理SRラッチになっています。

CLKがLowのとき、CLKと接続された二つのNANDゲートの出力は、JとKの状態に関係なく、Highになります。よって、CLKがLowのとき、負論理SRラッチの仕組みより、Qの状態を保持します。

一方、CLKがHighのときは、JとKと前回のQの状態によって、Qの状態が決まります。

CLK=High、J=Low、K=Lowのとき

CLKがHighでJとKがLowのときは、CLKがLowのときと同じです。

CLK=High、J=Low、K=Highのとき

以下の端子状態において、QがLowのとき、負論理SRラッチの入力が二つともHighになるので、QはLowのままです。

以下の端子状態において、QがHighのとき、負論理SRラッチの入力が上がHigh、下がLowになるので、QはLowに変化します。

よって、CLKがLowのときのQの状態に関係なく、CLK=High、J=Low、K=Highにすると、Qは、Lowになります。

CLK=High、J=High、K=Lowのとき

以下の端子状態において、QがLowのとき(QはHigh)、負論理SRラッチの入力が上がLow、下がHighになるので、QはHighに変化します。

以下の端子状態において、QがHighのとき(QはLow)、負論理SRラッチの入力が二つともHighになるので、QはHighのままです。

よって、CLKがLowのときのQの状態に関係なく、CLK=High、J=High、K=Lowにすると、Qは、Highになります。

CLK=High、J=High、K=Highのとき

以下の端子状態において、QがLowのとき(QはHigh)、負論理SRラッチの入力が上がLow、下がHighになるので、QはHighに変化します。

以下の端子状態において、QがHighのとき(QはLow)、負論理SRラッチの入力が上がHigh、下がLowになるので、QはLowに変化します。

よって、J=High、K=HighでCLKをHighにすると、Qは、CLKがLowのときのQの状態と逆の状態になります。

JKフリップフロップの記号

JKフリップフロップの記号は、以下のように表します。▷マークは、クロック入力です。