トップデジタル回路 > 同期式カウンタ―JKフリップフロップ使用(3)

同期式カウンタ―JKフリップフロップ使用(3)

J = K という条件の下で同期式カウンタ―を構築することもできる。 設計は楽になるが、自由度がなくなる分、一般には回路が複雑となる。

1.JKフリップフロップによる同期式カウンタ

同期式カウンタとはカウンタを構成する全てのフリップフロップが同じクロックで動作するものである。 Dフリップフロップを使う方法とJKフリップフロップを使う方がよく知られている。

JK-FFの現在のJ,K,Qの値と次の時刻におけるQの値(Q'で表す)の関係は以下の表の通りである。

JK-FFの動作
JKQQ'
000 0
100 1
010 0
110 1
001 1
101 1
011 0
111 0

この表は次のように書き換えることもできる。x印はこの値には関係しないことを表す。

JK-FFの出力の変化に対するJとKの値
出力の変化JK
0 → 00x
0 → 11x
1 → 0x1
1 → 1x0

J = K という条件付きの場合、下表になることは自明である。

JK-FFの出力の変化に対するJKの値
出力の変化JK
0 → 00
0 → 11
1 → 01
1 → 10

2.JKフリップフロップによる3進同期式カウンタ

JKフリップフロップによる3進同期式カウンタを設計する。最初に、次のような真理値表を作成する。

JK-FFによる3進カウンタ真理値表
Q1Q2Q1'Q2' JK1JK2
0010 10
1001 11
0100 01
11xx xx

左の列から説明する。最初の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は真理値表を次のように捉える。

Q1Q2JK1
00 1
10 1
01 0
11 x

この場合

 JK1Q1Q2+Q1Q2Q2 
となる。
 JK2=Q1Q2Q1・Q2=Q1Q2 
このときの回路図およびタイムチャート(画像)を下に示す。

タイムチャートからカウンタの出力が 0, 1, 2, 0, 1, ... となっていることを確認できる。

JavaScriptによるシミュレーションを下に示す。

3.JKフリップフロップによる4進同期式カウンタ

4進カウンタの場合は前に求めた回路が J = K を満たしている。

J1、K1は、いずれも全ての行を1と考えることができるので、

 JK1=1 
 JK2=Q1 
となる。 このときの回路図およびタイムチャート(画像)を下に示す。

タイムチャートからカウンタの出力が 0, 1, 2, 3, 0, 1, ... となっていることを確認できる。

JavaScriptによるシミュレーションを下に示す。

4.JKフリップフロップによる5進同期式カウンタ

JKフリップフロップによる5進同期式カウンタを設計する。最初に、次のような真理値表を作成する。

JK-FFによる5進カウンタ真理値表
Q1Q2Q3 Q1'Q2'Q3' JK1 JK2JK3
000100 100
100010 110
010110 100
110001 111
001000 001
101xxx xxx
011xxx xxx
111xxx xxx

カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。

 JK1Q3
 JK2=Q1
 JK3=Q1・Q2+Q3

回路図およびタイムチャートの画像コピーを下に示す。

タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 0, 1, ... となっていることを確認できる。

JavaScriptによるシミュレーションを下に示す。

5.JKフリップフロップによる6進同期式カウンタ

JKフリップフロップによる6進同期式カウンタを設計する。最初に、次のような真理値表を作成する。

JK-FFによる6進カウンタ真理値表
Q1Q2Q3 Q1'Q2'Q3' JK1 JK2JK3
000100 100
100010 110
010110 100
110001 111
001101 100
101000 101
011xxx xxx
111xxx xxx

カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。

 JK1=1
 JK2=Q1Q3
 JK3=Q1・(Q2+Q3)

回路図およびタイムチャートの画像コピーを下に示す。

タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 5, 0, 1, ... となっていることを確認できる。

JavaScriptによるシミュレーションを下に示す。

6.JKフリップフロップによる7進同期式カウンタ

JKフリップフロップによる7進同期式カウンタを設計する。最初に、次のような真理値表を作成する。

JK-FFによる7進カウンタ真理値表
Q1Q2Q3 Q1'Q2'Q3' JK1 JK2JK3
000100 100
100010 110
010110 100
110001 111
001101 100
101011 110
011000 011
111xxx xxx

カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。

 JK1Q2Q3
 JK2=Q1+Q2・Q3
 JK3=Q2・(Q1+Q3)

回路図およびタイムチャートの画像コピーを下に示す。

タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 5, 6, 0, 1, ... となっていることを確認できる。

JavaScriptによるシミュレーションを下に示す。

7.JKフリップフロップによる8進同期式カウンタ

JKフリップフロップによる8進同期式カウンタを設計する。最初に、次のような真理値表を作成する。

JK-FFによる8進カウンタ真理値表
Q1Q2Q3 Q1'Q2'Q3' JK1 JK2JK3
000100 100
100010 110
010110 100
110001 111
001101 100
101011 110
011111 100
111000 111

カルノー図法による論理式の簡単化は別のページにまとめているのでここでは省略する。 結果を以下に示す。

 JK1Q2Q3
 JK2=Q1+Q2・Q3
 JK3=Q2・(Q1+Q3)

回路図およびタイムチャートの画像コピーを下に示す。

タイムチャートからカウンタの出力が 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, ... となっていることを確認できる。

JavaScriptによるシミュレーションを下に示す。