クロック信号(CK)に同期して動作する順序回路
![]() |
|
|||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
記号 | 特性表 | |||||||||||||||||||||||||||||||||
ネガティブエッジ型JKフリップフロップ |
|
![]() JKフリップフロップの状態遷移図
|
---|
|
|
---|
このJKフリップフロップの特性は次の表にまとめることができる.
入力 | 状態の変化 | J | K | Qn → Qn+1 |
---|---|---|
0 | × | 0 → 0 |
1 | × | 0 → 1 |
× | 0 | 1 → 1 |
× | 1 | 1 → 0 |
Q: 0 → 0 | Q = 0 の状態で, J = 0 を入力するとセットされない |
---|---|
Q: 0 → 1 | Q = 0 の状態で, J = 1 を入力するとセットされる |
Q: 1 → 1 | Q = 1 の状態で, K = 0 を入力するとリセットされない |
Q: 1 → 0 | Q = 1 の状態で, K = 1 を入力するとリセットされる |
これを実現するには,少なくとも3つの状態を持つ順序回路が必要に鳴る.
ここでは,2つのJKフリップフロップを使用する.
フリップフロップ FF0, FF1の各出力を Q1, Q0と表し,
(Q1, Q0) = (0, 0), (0, 1), (1, 0)の3つの状態を利用する.
(Q1, Q0)の状態 | クロック信号の立ち下がり前後での状態の変化 | 各J, K端子への入力 | ||||||
---|---|---|---|---|---|---|---|---|
n | Q1n | Q0n | Q1n → Q1n+1 | Q0n → Q0n+1 | J1 | K1 | J0 | K0 |
0 | 0 | 0 | 0 → 0 (hole) | 0 → 1 (set) | 0 | × | 1 | × |
(Q1, Q0)の状態 | クロック信号の立ち下がり前後での状態の変化 | 各J, K端子への入力 | ||||||
---|---|---|---|---|---|---|---|---|
n | Q1n | Q0n | Q1n → Q1n+1 | Q0n → Q0n+1 | J1 | K1 | J0 | K0 |
0 | 0 | 0 | 0 → 0 (hold) | 0 → 1 (set) | 0 | × | 1 | × |
1 | 0 | 1 | 0 → 1 (set) | 1 → 0 (reset) | 1 | × | × | 1 |
2 | 1 | 0 | 1 → 0 (reset) | 0 → 0 (hold) | × | 1 | 0 | × |
|
|
---|
J1 = Q0, K1 = Q0
|
|
---|
J0 = Q1, K0 = Q1
J0 = K0 = Q1, J1 = Q0, K1 = Q0が得られる. この式に従って結線した回路図を以下に示す.
n | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
2進表現 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 |
各フリップフロップに要求される状態の変化を下表に示す.
n | フリップフロップの状態 | n+1 | n+1 での状態 | 状態の変化 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Q2n | Q1n | Q0n | Q2n+1 | Q1n+1 | Q0n+1 | Q2n → Q2n+1 | Q1n → Q1n+1 | Q0n → Q0n+1 | ||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 → 0 | 0 → 0 | 0 → 1 |
1 | 0 | 0 | 1 | 2 | 0 | 1 | 0 | 0 → 0 | 0 → 1 | 1 → 0 |
2 | 0 | 1 | 0 | 3 | 0 | 1 | 1 | 0 → 0 | 1 → 1 | 0 → 1 |
3 | 0 | 1 | 1 | 4 | 1 | 0 | 0 | 0 → 1 | 1 → 0 | 1 → 0 |
4 | 1 | 0 | 0 | 5 | 1 | 0 | 1 | 1 → 1 | 0 → 0 | 0 → 1 |
5 | 1 | 0 | 1 | 6 | 1 | 1 | 0 | 1 → 1 | 0 → 1 | 1 → 0 |
6 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 → 0 | 1 → 0 | 0 → 0 |
n | フリップフロップの状態 | 状態の変化と (J, K)への入力値 | |||||||
---|---|---|---|---|---|---|---|---|---|
Q2n | Q1n | Q0n | Q2n → Q2n+1 | (J2, K2) | Q1n → Q1n+1 | (J1, K1) | Q0n → Q0n+1 | (J0>, K0) | |
0 | 0 | 0 | 0 | 0 → 0 | (0, ×) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) |
1 | 0 | 0 | 1 | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) |
2 | 0 | 1 | 0 | 0 → 0 | (0, ×) | 1 → 1 | (×, 0) | 0 → 1 | (1, ×) |
3 | 0 | 1 | 1 | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) | 1 → 0 | (×, 1) |
4 | 1 | 0 | 0 | 1 → 1 | (×, 0) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) |
5 | 1 | 0 | 1 | 1 → 1 | (×, 0) | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) |
6 | 1 | 1 | 0 | 1 → 0 | (×, 1) | 1 → 0 | (×, 1) | 0 → 0 | (0, ×) |
上の表から,Q2n, Q1n,
Q0
Q2n
Q1n
Q0n
J2
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 ×
1 0 1 ×
1 1 0 ×
Q2n
Q1n
Q0n
K2
0 0 0 ×
0 0 1 ×
0 1 0 ×
0 1 1 ×
1 0 0 0
1 0 1 0
1 1 0 1
カルノー図を利用して,J2 (K2) を Q2, Q1, Q0 の論理式で表すことができる.
(J2, K2)の場合と同様に
7進カウンタの状態の変化と J, K への入力の表から,
Q2n, Q1n,
Q0
Q2n
Q1n
Q0n
J1
K1
0 0 0 0 ×
0 0 1 1 ×
0 1 0 × 0
0 1 1 × 1
1 0 0 0 ×
1 0 1 1 ×
1 1 0 × 1
カルノー図を利用して,J1, K1 を Q2, Q1, Q0 の論理式で表す.
同様に,
7進カウンタの状態の変化と J, K への入力の表から,
Q2n, Q1n,
Q0
Q2n
Q1n
Q0n
J0
K0
0 0 0 1 ×
0 0 1 × 1
0 1 0 1 ×
0 1 1 × 1
1 0 0 1 ×
1 0 1 × 1
1 1 0 0 ×
カルノー図を利用して,J0, K0 を Q2, Q1, Q0 の論理式で表す.
n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
2進表現 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
各フリップフロップに要求される状態の変化を下表に示す.
n | フリップフロップの状態 | n+1 | n+1 での状態 | 状態の変化 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Q3n | Q2n | Q1n | Q0n | Q3n+1 | Q2n+1 | Q1n+1 | Q0n+1 | Q3n → Q3n+1 | Q2n → Q2n+1 | Q1n → Q1n+1 | Q0n → Q0n+1 | ||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 → 0 | 0 → 0 | 0 → 0 | 0 → 1 |
1 | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 1 | 0 | 0 → 0 | 0 → 0 | 0 → 1 | 1 → 0 |
2 | 0 | 0 | 1 | 0 | 3 | 0 | 0 | 1 | 1 | 0 → 0 | 0 → 0 | 1 → 1 | 0 → 1 |
3 | 0 | 0 | 1 | 1 | 4 | 0 | 1 | 0 | 0 | 0 → 0 | 0 → 1 | 1 → 0 | 1 → 0 |
4 | 0 | 1 | 0 | 0 | 5 | 0 | 1 | 0 | 1 | 0 → 0 | 1 → 1 | 0 → 0 | 0 → 1 |
5 | 0 | 1 | 0 | 1 | 6 | 0 | 1 | 1 | 0 | 0 → 0 | 1 → 1 | 0 → 1 | 1 → 0 |
6 | 0 | 1 | 1 | 0 | 7 | 0 | 1 | 1 | 1 | 0 → 0 | 1 → 1 | 1 → 1 | 0 → 1 |
7 | 0 | 1 | 1 | 1 | 8 | 1 | 0 | 0 | 0 | 0 → 1 | 1 → 0 | 1 → 0 | 1 → 0 |
8 | 1 | 0 | 0 | 0 | 9 | 1 | 0 | 0 | 1 | 1 → 1 | 0 → 0 | 0 → 0 | 0 → 1 |
9 | 1 | 0 | 0 | 1 | 10 | 1 | 0 | 1 | 0 | 1 → 1 | 0 → 0 | 0 → 1 | 1 → 0 |
10 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 → 0 | 0 → 0 | 1 → 0 | 0 → 0 |
JKフリップフロップの特性から, 上の動作をするためのJK端子への入力値が定まる.
n | フリップフロップの状態 | 状態の変化と(J, K)への入力値 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Q3n | Q2n | Q1n | Q0n | Q3n → Q3n+1 | (J3, K3) | Q2n → Q2n+1 | (J2, K2) | Q1n → Q1n+1 | (J1, K1) | Q0n → Q0n+1 | (J0, K0) | |
0 | 0 | 0 | 0 | 0 | 0 → 0 | (0, ×) | 0 → 0 | (0, ×) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) |
1 | 0 | 0 | 0 | 1 | 0 → 0 | (0, ×) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) |
2 | 0 | 0 | 1 | 0 | 0 → 0 | (0, ×) | 0 → 0 | (0, ×) | 1 → 1 | (×, 0) | 0 → 1 | (1, ×) |
3 | 0 | 0 | 1 | 1 | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) | 1 → 0 | (×, 1) |
4 | 0 | 1 | 0 | 0 | 0 → 0 | (0, ×) | 1 → 1 | (×, 0) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) |
5 | 0 | 1 | 0 | 1 | 0 → 0 | (0, ×) | 1 → 1 | (×, 0) | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) |
6 | 0 | 1 | 1 | 0 | 0 → 0 | (0, ×) | 1 → 1 | (×, 0) | 1 → 1 | (×, 0) | 0 → 1 | (1, ×) |
7 | 0 | 1 | 1 | 1 | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) | 1 → 0 | (×, 1) | 1 → 0 | (×, 1) |
8 | 1 | 0 | 0 | 0 | 1 → 1 | (×, 0) | 0 → 0 | (0, ×) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) |
9 | 1 | 0 | 0 | 1 | 1 → 1 | (×, 0) | 0 → 0 | (0, ×) | 0 → 1 | (1, ×) | 1 → 0 | (×, 1) |
10 | 1 | 0 | 1 | 0 | 1 → 0 | (×, 1) | 0 → 0 | (0, ×) | 1 → 0 | (×, 1) | 0 → 0 | (0, ×) |