RSフリップフロップの禁止入力を解消し、両入力1で反転動作するフリップフロップ。
JKフリップフロップとは、J と K の2つの入力を持ち、クロックの合図に合わせて4種類の動作をする記憶回路のことです。RSフリップフロップを改良して、使えなかった「両方1」の入力に便利な役割を持たせたものです。
身近な例で考えると、多機能なリモコンに似ています。J と K の押し方の組み合わせで「点ける」「消す」「そのまま」「今と逆にする」の4通りの操作ができる、と考えると分かりやすいです。特に「今と逆にする(反転)」ができる点が便利です。
上のツールで▶ボタンを押すと、J と K の組み合わせを順に変えていったときに、クロックの立ち上がりごとに出力Qが「保持→セット→リセット→反転」とどう変わるかを確認できます。
JKフリップフロップは、J と K の組み合わせによって4種類の動作をします。すべてクロックの立ち上がりの瞬間に実行されます。
・保持(J=0, K=0):直前のQをそのまま覚え続ける
・セット(J=1, K=0):Qを1にする
・リセット(J=0, K=1):Qを0にする
・反転(J=1, K=1):Qを今と逆の値にひっくり返す(トグル)
特に役立つのが反転(トグル)です。J=K=1 のままクロックを送り続けると、立ち上がりのたびにQが 0→1→0→1… と交互に切り替わります。これはクロックの回数を数える(分周する)カウンタ回路の部品として使われます。電灯のスイッチを押すたびにオン・オフが切り替わるのと同じ動きです。
JKフリップフロップとRSフリップフロップの最大の違いは「両入力が1のとき」の扱いです。RSでは S=R=1 が禁止(出力が不定)でしたが、JKではその組み合わせに反転という有効な動作を割り当てています。
| 入力の組み合わせ | RSフリップフロップ | JKフリップフロップ |
|---|---|---|
| 0, 0 | 保持 | 保持 |
| 1, 0 | セット(Q=1) | セット(Q=1) |
| 0, 1 | リセット(Q=0) | リセット(Q=0) |
| 1, 1 | 禁止(不定) | 反転(トグル) |
このように、「J/K は S/R に対応し、両方1のときだけ反転になる」と覚えるとすっきりします。禁止状態がなくなったおかげで、JKフリップフロップは使い勝手がよく、カウンタやレジスタなど幅広い回路に応用されています。