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はクロックです。
まず、赤枠で示した部分は、負論理SRラッチになっています。
CLKがLowのとき、CLKと接続された二つのNANDゲートの出力は、JとKの状態に関係なく、Highになります。よって、CLKがLowのとき、負論理SRラッチの仕組みより、Qの状態を保持します。
一方、CLKがHighのときは、JとKと前回のQの状態によって、Qの状態が決まります。
CLKがHighでJとKがLowのときは、CLKがLowのときと同じです。
以下の端子状態において、QがLowのとき、負論理SRラッチの入力が二つともHighになるので、QはLowのままです。
以下の端子状態において、QがHighのとき、負論理SRラッチの入力が上がHigh、下がLowになるので、QはLowに変化します。
よって、CLKがLowのときのQの状態に関係なく、CLK=High、J=Low、K=Highにすると、Qは、Lowになります。
以下の端子状態において、QがLowのとき(
以下の端子状態において、QがHighのとき(
よって、CLKがLowのときのQの状態に関係なく、CLK=High、J=High、K=Lowにすると、Qは、Highになります。
以下の端子状態において、QがLowのとき(
以下の端子状態において、QがHighのとき(
よって、J=High、K=HighでCLKをHighにすると、Qは、CLKがLowのときのQの状態と逆の状態になります。
JKフリップフロップの記号は、以下のように表します。▷マークは、クロック入力です。