同期式と非同期式
非同期式順序回路
– 入力が変化すると ( 遅延後 ) 即座に回路が 動作
同期式順序回路
– クロックに同期して回路が動作 X
X +Y Y
X
X +Y Y
遅延 クロック
遅延
クロック時以外は 出力に影響無し
同期式と非同期式の長所と短 所
非同期式
– 入力が変化すれば出力も変化
長所 : 反応が速い
短所 : タイミングをうまく取らないと動作不 安定
同期式
– 入力変化後、クロック信号で出力変化
長所 : 動作が安定し易い
短所 : クロックを待つ分反応が遅れる
非同期式回路の不安定性
初期状態 : (X,Y ) =(1,1)
1. X,Y が同時に 0 になる
2. X が一瞬早く 0 になり、その後 Y が 0 になる
3. Y が一瞬早く 0 になり、その後 X が 0 X になる
Y
Z
W X =1
Y =1
Z =1
W =1
初期状態 Z =1, W =1
SRFF
X
Y
Z
W X
Y
Z
W Z
W X
Y
Z
W X
Y
Z
W Z
W
1. X,Y が同時に 0 になる
Z,W =1 と Z,W =0 を繰り返す ( 発振 )
X
Y
Z
W
2. X が一瞬早く 0 になっ た後 Y が 0 になる
Z =0,W =1 で安定する
Y
X 3. Y が一瞬早く 0 になっ た後 X が 0 になる
Z =1,W =0 で安定する
X Y Z W
X Y Z W
X,Y が同時に 0 に
X が一瞬早く 0 に
発振
僅かなタイミングの違いで 結果が変わる
同期式
(
クロック入力付)SR FF
クロック信号が 1 のときのみ動作
SRFF Q S
R
Q Q クロック付 SRFF
S Q
R CK
同期式
SR
フリップフロップの動 作入力 R 出力 Q 出力 Q クロック
入力 S
入力変化後の
クロック信号で出力変 化
クロック時以外の変化は出 力に影響無し
同期式順序回路の設計
順序回路 = 組み合わせ回路 + FF
– 入力 : 外部から + 以前の出力から – 出力 : 外部へ + 以降の入力へ
組み合わせ回路
この回路を FF 設計する 外部入力
I1, I2, …, Im
外部出力
O1, O2, …, On
状態
Q1, Q2, …, Q k
同期式回路の設計
1. 入力 (I1, I2, …Im), 出力 (O1, O2, …On), 状態 (Q1, Q2, …Qk) を決める
2. 状態遷移図を描く
3. 状態遷移表を作成する
4. 拡大入力要求表を作成する
5. FF の入力条件式を求める
6. 出力関数を求める
7. 回路図を描く
ビット反転検出回路の設計
ビット反転検出回路
– 入力が 0→1, 1→0 と反転したときに 1 を出力
入力 I 出力 O
クロック
0→1 を検 出
1→0 を検 出
1.
入力,
出力,
状態の決定入力 I
出力 O クロック
FF Q
ビット反転を検出するには、 1 つ前の 入力 I - を記憶しておけばいい
1 入力 , 1 出力 , 1FF
I ≠Q ならば
1 を出力
I - = 0 と I - =1 の 2 状態 ⇒ FF1 個で記憶可能
2.
状態遷移図を描く 状態 Q : 1 つ前の入力 I - を記憶
出力 O : I ≠Q ならば 1 を出力
q0 Q = 0
q1
Q = 1 1/0 1/1
0/0
0/1
3.
状態遷移表を作成するq0 Q = 0
q1
Q = 1 1/0 1/1
0/0
0/1
入力 現状態 次状態 出力
I Q Q+ O
0 0
0 1
1 0
1 1
0 0
0 1
1 1
1 0
4.
拡大入力表を作るI Q Q+ O
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
入力 出力
状態遷移
4.
拡大入力表を作る使用する FF の入力要求
遷移 入力
I Q Q+ O D
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
入力 出力
状態遷移
4.
拡大入力表を作る使用する FF の入力要求
遷移 入力
I Q Q+ O D
0 0 0 0 0
0 1 0 1 0
1 0 1 1 1
1 1 1 0 1
入力 出力
状態遷移
5.FF
の入力条件式を求めるI Q O D
0 0 0 0
0 1 1 0
1 0 1 1
1 1 0 1
D Q
I
0 1
0 1
� = �
O
Q
I
0 1
0
1 1 1
Q
I
0 1
0
1
6.
出力関数を求めるI Q O D
0 0 0 0
0 1 1 0
1 0 1 1
1 1 0 1
D Q
I
0 1
0
1 1 1
� = �
O Q
I
0 1
0
� = ´ � ⋅� + � ⋅ � ´ 1
¿ � ⨁ �
Q
I
0 1
0 1
1 1
7.
回路図を描くI D Q O
CKQ
クロック クロック
I D Q O
CKQ
使用する FF の入力要求
遷移 入力
I Q Q+ O T
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
入力 出力
状態遷移
TFF
を用いたビット反転検出回 路 使用する FF の入力要求遷移 入力
I Q Q+ O T
0 0 0 0 0
0 1 0 1 1
1 0 1 1 1
1 1 1 0 0
入力 出力
状態遷移
FF
の入力条件式I Q O T
0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0
T Q
I
0 1
0 1
� = ´ � ⋅� + � ⋅ � ´
O
Q
I
0 1
0 1
1 1
Q
I
0 1
0 1
1 1
� =´ � ⋅� + � ⋅ � ´ = � ⨁ �
¿ � ⨁ �
TFF
を用いたビット反転検出回 路クロック
I T Q O
CKQ
T Q
CKQ
I O
クロック
使用する FF の入力要求
遷移 入力
I Q Q+ O S R
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
入力 出力
状態遷移
使用する FF の入力要求
遷移 入力
I Q Q+ O S R
0 0 0 0 0 -
0 1 0 1 0 1
1 0 1 1 1 0
1 1 1 0 - 0
入力 出力
状態遷移
SRFF
を用いたビット反転検出回路
FF
の入力条件式I Q O S R
0 0 0 0 -
0 1 1 0 1
1 0 1 1 0
1 1 0 - 0
S Q
I
0 1
0 1
� = �
R
Q
I
0 1
0
1 1 -
Q
I
0 1
0 1
� = � ⨁ �
� = ´ �
Q
I
0 1
0 - 1
1
SRFF
を用いたビット反転検出 回路I O
クロック
S Q RCKQ
I O
クロック
S Q RCKQ
使用する FF の入力要求
遷移 入力
I Q Q+ O J K
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
入力 出力
状態遷移
使用する FF の入力要求
遷移 入力
I Q Q+ O J K
0 0 0 0 0 -
0 1 0 1 - 1
1 0 1 1 1 -
1 1 1 0 - 0
入力 出力
状態遷移
JKFF
を用いたビット反転検出回路
FF
の入力条件式I Q O J K
0 0 0 0 -
0 1 1 - 1
1 0 1 1 -
1 1 0 - 0
J Q
I
0 1
0 1
� = �
K
Q
I
0 1
0 -
1 1 -
Q
I
0 1
0 1
� = � ⨁ �
� = ´ �
Q
I
0 1
0 - 1
1 -
JKFF
を用いたビット反転検出 回路I O
クロック
J Q KCKQ
I O
クロック
J Q KCKQ
4
進分周器の設計 クロックが入ると、 2 ビット状態 (Q1, Q0) が 00→01→10→11→00 と遷移する 回路
00
01 11
10
1.
入力,
出力,
状態の決定 入力 , 出力は無し
2 ビットであるので FF2 個で記憶可能 0 入力 , 0 出力 , 2FF
Q0 Q1
クロック
2.
状態遷移図,3.
状態遷移表を描 くQ =00
Q =01 Q =11
Q =10
Q
1Q
0Q
1+Q
0+0 0
0 1
1 0
1 1 0 0
1 1
0 1
1
0
4.
拡大入力表を作る使用する FF の入力要求
遷移 入力
Q1 Q0 Q 1+ Q0+ D1 D0 J1K1 J0 K0
0 0 0 1
0 1 1 0
1 0 1 1
1 1 0 0
入力 出力 状態遷移
0 1 0 1
0 1 1 0
- 1 - 0 1 - 0 -
- 1 1 - - 1 1 -
5. FF
の入力条件式を求めるQ1 Q0 D1 D0
0 0 0 1
0 1 1 0
1 0 1 1
1 1 0 0
Q0
Q1 0 1
0 1
D1
Q0
Q1 0 1
0 1
D0
1
1
1 1
7.
回路図を描くD1 Q1 Q1
CK
D0 Q0 Q0
CK
クロック
5. FF
の入力条件式を求めるQ1 Q0 J1K1 J0 K0
0 0 0 - 1 -
0 1 1 - - 0
1 0 - 0 1 -
1 1 - 1 - 1
Q0
Q1 0 1
0 1
J0 K0
Q0
Q1 0 1
0 1
J1 K1
- 1 - 0
1 - 0 -
- 1 1 -
- 1 1 -
7.
回路図を描くクロック
J0 Q0 Q0 K0CK
J1 Q1 Q1 K1CK
1
同期式
4
進カウンタの設計– 入力が 1 のとき 00→01→10→11→00 と遷移 し、入力が 0 のときは現状態に留まる
– 遷移 11→00 のとき 1 を出力し、他は 0 を出 力する
状態 Q0 状態 Q1 出力 O クロック
入力 I
スイッチを 押している間 カウンタ作動
11→00 のとき
1 出力
2.
状態遷移図を描くQ =00
Q =01 Q =11
Q =10
1/0
1/0 1/0
1/1
0/0
0/0 0/0
0/0
3.
状態遷移表を作成するI Q1 Q0 Q1+ Q0+ O
0 0 0
1
0 0 1
1
0 1 0
1
0 1 1
1
0 0 0 0
1 0 0 0
1 1
0 1
1 0
0 0
0 1 0 1
0 1 1 0
使用する FF の入力要求
遷移 入力
I Q1 Q0 Q1+ Q0+ O T1 T0
0 0 0 0 0 0
1 0 1 0
0 0 1 0 1 0
1 1 0 0
0 1 0 1 0 0
1 1 1 0
0 1 1 1 1 0
1 0 0 1
入力 出力
状態遷移
使用する FF の入力要求
遷移 入力
I Q1 Q0 Q1+ Q0+ O T1 T0
0 0 0 0 0 0 0 0
1 0 1 0 0 1
0 0 1 0 1 0 0 0
1 1 0 0 1 1
0 1 0 1 0 0 0 0
1 1 1 0 0 1
0 1 1 1 1 0 0 0
1 0 0 1 1 1
入力 出力
状態遷移
I Q1 Q0 O T1 T0
0 0 0 0 0 0
1 0 0 1
0 0 1 0 0 0
1 0 1 1
0 1 0 0 0 0
1 0 0 1
0 1 1 0 0 0
1 1 1 1
Q1Q0
I 00 01 11 10 0
1 T1
Q1Q0
I 00 01 11 10 0
1 T0
Q1Q0
I 00 01 11 10 0
1 O
1 1
1 1
1 1
1
7.
回路図を描くI O
T1 Q1 Q1
CK
クロック
T0 Q0 Q0
CK
演習問題
:
順序回路の設計 1 を連続で 2 回以上入力すると 1 を、
それ以外は 0 を出力する回路を設計せ よ。
入力 I 出力 O クロック
1 1 2 1 2 3 4
連続 2 回 1 が入力
されたので 1 を出力 連続 3 回以上 1 が入力 されたときも 1 を出力
1.
入力,
出力,
状態の決定初期状態を Q = 0
直前の入力の値を Q に保持
Q = 1 かつ I = 1 にのとき O = 1 を出 力
入力 I
出力 O クロック
状態 Q
I =1 かつ Q =1 なら
ば
1 を出力
2.
状態遷移図を描く 状態 Q : 直前の入力を記憶
⇒ 入力が 0 なら q0 へ、 1 なら q1 へ
出力 O : 入力 1 が連続するとき 1
⇒ Q =1 で入力が 1 のとき 1 を出 力 q0
Q = 0
q1
Q = 1 1/1 1/0
0/0
0/0
3.
状態遷移表を作成するq0 Q = 0
q1
Q = 1 1/1 1/0
0/0
0/0
入力 現状態 次状態 出力
I Q Q+ O
0 0
0 1
1 0
1 1
0 0
0 0
1 0
1 1
4.
拡大入力表を作る使用する FF の入力要求
遷移 入力
I Q Q+ O D
0 0 0 0
0 1 0 0
1 0 1 0
1 1 1 1
入力 出力
状態遷移
使用する FF の入力要求
遷移 入力
I Q Q+ O D
0 0 0 0 0
0 1 0 0 0
1 0 1 0 1
1 1 1 1 1
入力 出力
状態遷移
5.FF
の入力条件式を求める6.
出力関数を求めるI Q D O
0 0 0 0
0 1 0 0
1 0 1 0
1 1 1 1
D Q
I 0 1
0 1
O Q
I 0 1
0 1
1 1
1
7.
回路図を描くI O
D Q
CKQ
クロック
前問を
TFF,SRFF,JKFF
を用いて作れ使用する FF の入力要求
遷移 入力
I Q Q+ O T S R J K
0 0 0 0
0 1 0 0
1 0 1 0
1 1 1 1
入力 出力
状態遷移
前問を
TFF,SRFF,JKFF
を用いて作れ使用する FF の入力要求
遷移 入力
I Q Q+ O T S R J K
0 0 0 0 0
0 1 0 0 1
1 0 1 0 1
1 1 1 1 0
入力 出力
状態遷移
使用する FF の入力要求
遷移 入力
I Q Q+ O T S R J K
0 0 0 0 0 0 -
0 1 0 0 1 0 1
1 0 1 0 1 1 0
1 1 1 1 0 - 0
入力 出力
状態遷移
使用する FF の入力要求
遷移 入力
I Q Q+ O T S R J K
0 0 0 0 0 0 - 0 -
0 1 0 0 1 0 1 - 1
1 0 1 0 1 1 0 1 -
1 1 1 1 0 - 0 - 0
入力 出力
状態遷移
I Q T
0 0 0
0 1 1
1 0 1
1 1 0
I O
T Q
CKQ
クロック
T Q
I 0 1
0 1
1 1
I Q S R
0 0 0 -
0 1 0 1
1 0 1 0
1 1 - 0
Q
I 0 1
0
1 1 -
S
Q
I 0 1
0 - 1
1 R
I
O
クロック
S Q RCKQ
I Q J K
0 0 0 -
0 1 - 1
1 0 1 -
1 1 - 0
Q
I 0 1
0 -
1 1 -
J
Q
I 0 1
0 - 1
1 - K
I
O
クロック
J Q KCKQ
問題
:
順序回路の設計 初期状態から、 1 を奇数回入力すると 1 を、それ以外は 0 を出力する回路を 設計せよ。
入力 I 出力 O クロック
1 2 3 4 5
1 回入力されたので
1 を出力 3 回入力されたので 1 を出力
6
解き方の方針
解き方の方針
初期状態を Q = 0
1 が奇数回入力されると Q = 1 1 が偶数回入力されると Q = 0
Q =0 から Q =1 に移動するとき O =1 を 出力
入力 I
出力 O クロック
状態 Q
I = 1 かつ Q =0 なら
ば 1 を出力
状態遷移図
状態 Q : 1 が奇数回入力されれば 1
⇒1 が入力されるたびに状態を反転する
出力 O : 奇数回めの入力 1 のとき 1 ⇒ Q =0 から Q =1 に移動するとき 1
を出力
q0 Q = 0
q1
Q = 1 0/0 0/0 1/1
1/0