J = K という条件の下で同期式カウンタ―を構築することもできる。 設計は楽になるが、自由度がなくなる分、一般には回路が複雑となる。
同期式カウンタとはカウンタを構成する全てのフリップフロップが同じクロックで動作するものである。 Dフリップフロップを使う方法とJKフリップフロップを使う方がよく知られている。
JK-FFの現在のJ,K,Qの値と次の時刻におけるQの値(Q'で表す)の関係は以下の表の通りである。
J | K | Q | Q' | |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
1 | 0 | 0 | 1 | |
0 | 1 | 0 | 0 | |
1 | 1 | 0 | 1 | |
0 | 0 | 1 | 1 | |
1 | 0 | 1 | 1 | |
0 | 1 | 1 | 0 | |
1 | 1 | 1 | 0 |
この表は次のように書き換えることもできる。x印はこの値には関係しないことを表す。
出力の変化 | J | K | |
---|---|---|---|
0 → 0 | 0 | x | |
0 → 1 | 1 | x | |
1 → 0 | x | 1 | |
1 → 1 | x | 0 |
J = K という条件付きの場合、下表になることは自明である。
出力の変化 | JK | |
---|---|---|
0 → 0 | 0 | |
0 → 1 | 1 | |
1 → 0 | 1 | |
1 → 1 | 0 |
JKフリップフロップによる3進同期式カウンタを設計する。最初に、次のような真理値表を作成する。
Q1 | Q2 | Q1' | Q2' | JK1 | JK2 | ||
---|---|---|---|---|---|---|---|
0 | 0 | 1 | 0 | 1 | 0 | ||
1 | 0 | 0 | 1 | 1 | 1 | ||
0 | 1 | 0 | 0 | 0 | 1 | ||
1 | 1 | x | x | x | x |
左の列から説明する。最初のQ1、Q2は現在時刻でのJK-FFの出力の値を表す。 次のQ1'、Q2'は次の時刻におけるJK-FFの出力の値を表す。3進カウンタのため、 0の次が1、1の次が2、2の次が0である。3になることはないため、最後の行は x x とする。
次のJK1は下位のJK-FFの入力を表す。 この欄に入る値がこの設計法の要となる。 まず、 JK1はQ1とQ1'に着目する。
次のJK2は上位のJK-FFの入力を表す。上と同じように Q1とQ1'に着目して、JK2の列を埋めると、表が完成する。
回路設計は各列独立して行う。例えば、JK1は真理値表を次のように捉える。
Q1 | Q2 | JK1 | |
---|---|---|---|
0 | 0 | 1 | |
1 | 0 | 1 | |
0 | 1 | 0 | |
1 | 1 | x |
この場合
JK1=Q1・Q2+Q1・Q2=Q2となる。
JK2=Q1・Q2+Q1・Q2=Q1⊕Q2このときの回路図およびタイムチャート(画像)を下に示す。
タイムチャートからカウンタの出力が 0, 1, 2, 0, 1, ... となっていることを確認できる。
JavaScriptによるシミュレーションを下に示す。
4進カウンタの場合は前に求めた回路が J = K を満たしている。
J1、K1は、いずれも全ての行を1と考えることができるので、
JK1=1 JK2=Q1となる。 このときの回路図およびタイムチャート(画像)を下に示す。
タイムチャートからカウンタの出力が 0, 1, 2, 3, 0, 1, ... となっていることを確認できる。
JavaScriptによるシミュレーションを下に示す。
JKフリップフロップによる5進同期式カウンタを設計する。最初に、次のような真理値表を作成する。
Q1 | Q2 | Q3 | Q1' | Q2' | Q3' | JK1 | JK2 | JK3 | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | ||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | ||
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | ||
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | ||
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | ||
1 | 0 | 1 | x | x | x | x | x | x | ||
0 | 1 | 1 | x | x | x | x | x | x | ||
1 | 1 | 1 | x | x | x | x | x | x |
カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。
JK1=Q3
JK2=Q1
JK3=Q1・Q2+Q3
回路図およびタイムチャートの画像コピーを下に示す。
タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 0, 1, ... となっていることを確認できる。
JavaScriptによるシミュレーションを下に示す。
JKフリップフロップによる6進同期式カウンタを設計する。最初に、次のような真理値表を作成する。
Q1 | Q2 | Q3 | Q1' | Q2' | Q3' | JK1 | JK2 | JK3 | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | ||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | ||
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | ||
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | ||
0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | ||
1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | ||
0 | 1 | 1 | x | x | x | x | x | x | ||
1 | 1 | 1 | x | x | x | x | x | x |
カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。
JK1=1
JK2=Q1・Q3
JK3=Q1・(Q2+Q3)
回路図およびタイムチャートの画像コピーを下に示す。
タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 5, 0, 1, ... となっていることを確認できる。
JavaScriptによるシミュレーションを下に示す。
JKフリップフロップによる7進同期式カウンタを設計する。最初に、次のような真理値表を作成する。
Q1 | Q2 | Q3 | Q1' | Q2' | Q3' | JK1 | JK2 | JK3 | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | ||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | ||
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | ||
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | ||
0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | ||
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | ||
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | ||
1 | 1 | 1 | x | x | x | x | x | x |
カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。
JK1=Q2+Q3 JK2=Q1+Q2・Q3 JK3=Q2・(Q1+Q3)
回路図およびタイムチャートの画像コピーを下に示す。
タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 5, 6, 0, 1, ... となっていることを確認できる。
JavaScriptによるシミュレーションを下に示す。
JKフリップフロップによる8進同期式カウンタを設計する。最初に、次のような真理値表を作成する。
Q1 | Q2 | Q3 | Q1' | Q2' | Q3' | JK1 | JK2 | JK3 | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | ||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | ||
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | ||
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | ||
0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | ||
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | ||
0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | ||
1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。
JK1=Q2+Q3 JK2=Q1+Q2・Q3 JK3=Q2・(Q1+Q3)
回路図およびタイムチャートの画像コピーを下に示す。
タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, ... となっていることを確認できる。
JavaScriptによるシミュレーションを下に示す。