こんにちは!くるです!
今回はフリップフロップの1つ「JKフリップフロップ」について分かりやすく解説していきます。
JKフリップフロップの概要
まずは、簡単にJKフリップフロップについて説明していきます。
JKフリップフロップとは、「$J$」と「$K$」の2種類の入力を持ち、「$Q$」と「$\bar{Q}$」の2種類の出力を持つ回路です。
$J$は「セット」、$K$は「リセット」に対応しており、RSフリップフロップの「S」と「R」と同じ役割を持ちます。
なぜ「JK」なのか疑問に思うと思いますが、特に意味はありません。成り行きでそうなっただけみたいです。
RSフリップフロップの$S=1, R=1$が「禁止」という制限を取り除いた回路であり、RSフリップフロップよりも優秀な回路と思えばいいでしょう。
具体的に見ていきましょう。

真理値表
まずは、JKフリップフロップの真理値表です。
JKフリップフロップは次のような真理値表となっています。

RSフリップフロップの真理値表と比べると分かると思いますが、ほぼ一緒です。違うのは、「$S=1, R=1$」のときだけ。
➀から順番に意味を解説していきます。

➀ $J=0, K=0$のとき
$J=0, K=0$のときは、「セット」も「リセット」も起こりません。つまり、現在の状態をそのまま保持し続けるわけです。
② $J=0, K=1$のとき
$J=0, K=1$のときは「リセット」だけが起こります。つまり、次の状態$Q_{次}$を「0」にするということです。
現在の状態が$Q_{現}$が「0」なら、次の状態$Q_{次}$も「0」
現在の状態が$Q_{現}$が「1」なら、リセットされて、次の状態$Q_{次}$は「0」
③ $J=1, K=0$のとき
$J=0, K=1$のときは「セット」だけが起こります。つまり、次の状態$Q_{次}$を「1」にするということです。
現在の状態が$Q_{現}$が「0」なら、セットされて、次の状態$Q_{次}$は「1」
現在の状態が$Q_{現}$が「1」なら、次の状態$Q_{次}$も「1」
④ $J=1, K=1$のとき
RSフリップフロップでは、$S=1, R=1$が「禁止」されていましたが、JKフリップフロップでは、$J=1, K=1$のときは「反転」します。
現在の状態が$Q_{現}$が「0」なら、反転して、次の状態$Q_{次}$は「1」
現在の状態が$Q_{現}$が「1」なら、反転して、次の状態$Q_{次}$は「0」
RSフリップフロップが$S=1, R=1$が「禁止」されている理由を知りたい方は「RSフリップフロップの真理値表や回路図を分かりやすく解説!」をご覧ください。
真理値表(簡単ver)
最初に見せた真理値表は少し無駄な部分があるため、次のような真理値表が主に使われています。

保持は「現在の状態を保持する」という意味です。どちらの真理値表も意味的には同じものです。
回路図
JKフリップフロップ回路は、RSフリップフロップを使って作られます。以下がその回路図です。

RSフリップフロップをひとまとめにして、以下のように書かれることもありますが、今回は上の回路図を使います。

回路図を読み解く
上の回路図が本当に真理値表通りのものなのかを確かめてみましょう。

➀ $J=0, K=0$のとき
$J=0, K=1$のときは、真理値表では現状態$Q$を「保持」となっていました。
まず、現状態$Q$が「0」であると考えると、各値は次の図のようになります。

$J, K$を入力しても、各値が変化することはありません。
NORは「2つの入力が共に0のときのみ1を出力する回路」です!

次に、現状態$Q$が「1」の場合、各値は次の図のような状態になります。

$J, K$を入力しても、各値が変化することはありません。
よって、現状態$Q$が「0」でも「1」でも、$J=0, K=0$のときは現状態$Q$が「保持」されます。

$J=0, K=0$のときは真理値表通りの動きをするってことっすね~
$J=0, K=1$のとき
$J=0, K=1$のときは、真理値表では現状態$Q$を「0」に「リセット」となっていました。
現状態$Q$が「0」の場合、各値は次の図のような状態になります。

$J, K$を入力しても、何も値は変わらず、$Q$はずっと「0」のままです。
次に、現状態$Q$が「1」のときは、各値は次の動画のような動きをします。音は出ないので安心してください。
この後、$Q$はずっと「0」のままです。
よって、現状態$Q$が「0」でも「1」でも、$J=0, K=1$のときは現状態$Q$が「0」に「リセット」されます。

$J=0, K=1$のときも真理値表通りの動きをしているということですね。
$J=1, K=0$のとき
$J=1, K=0$のときは真理値表では現状態$Q$を「1」に「セット」となっていました。
現状態$Q$が「0」の場合、各値は次の動画のような動きをします。
この後、$Q$はずっと「0」のままです。
また、現状態$Q$が「1」のときは、各値は次の図のような状態になります。

$J, K$を入力しても、何も値は変わらず、$Q$はずっと「1」のままです。
よって、現状態$Q$が「0」でも「1」でも、$J=1, K=0$のときは現状態$Q$が「1」に「セット」されます。

$J=1, K=0$のときも真理値表通りの動きをするってことっすね~
$J=1, K=1$のとき
$J=1, K=1$のときは真理値表では現状態$Q$を「反転」となっていました。
現状態$Q$が「0」の場合、各値は次の動画のような動きをします。
この後、$Q$はずっと「0」のままです。
また、現状態$Q$が「1」のときは、各値は次の動画のような動きをします。
この後、$Q$はずっと「1」のままです。
よって、現状態$Q$が「0」でも「1」でも、$J=1, K=1$のときは現状態$Q$が「反転」されます。
全ての場合において、真理値表と等しいことが分かりました!

タイムチャート
JKフリップフロップを立ち上がりエッジトリガ方式で動かしたときのタイムチャートは次のようになります。

実際に1つずつ目で追って確かめてみてください。
タイムチャートについては、また詳しく解説した記事を書こうと思いますので、乞うご期待!
今回はここまで!
フリップフロップについて簡単に説明した記事もあるので、気になる方はぜひ読んで見てください!
お疲れ様でした!

現在の状態が$Q_{現}$が「0」なら、次の状態$Q_{次}$も「0」
現在の状態が$Q_{現}$が「1」なら、次の状態$Q_{次}$も「1」