順序回路

ディジタル回路
4. 順序回路
五島 正裕
DATE :
ディジタル回路
組み合わせ回路 と 順序回路
 組み合わせ回路 (combinational circuit)
 無記憶
 現在の入力 ⇒ 出力
 ex)
 0101…0…0 ⇒ 0
 0101…1…0 ⇒ 0
 順序回路 (sequential circuit)
 記憶
 入力の履歴 ⇒ 出力
 ex)
 0101…0…0 ⇒ 0
 0101…1…0 ⇒ 1
2
ディジタル回路
順序回路の例
Q
 自動販売機
 使える硬貨は100円のみ
 200円の商品1種のみ
● 100円が 2個投入されると,商品を送り出す
 その順序機械:
 入力 x:100円が投入されると,1サイクルの間だけ 1
 出力 z:1 のとき,商品が送り出される
3
ディジタル回路
順序回路の例
x
0
1
0
1
0
0
0
1
1
0
z
0
0
0
1
0
0
0
0
1
0
time
clock
x
z
4
ディジタル回路
状態
 状態 S:
 ω : 100円を受け取っていない
 Д : 100円を1個受け取っている
time
x
0
1
0
1
0
0
0
1
1
0
S
ω
ω
Д
Д
ω
ω
ω
ω
Д
ω
z
0
0
0
1
0
0
0
0
1
0
5
ディジタル回路
状態機械 (State Machine) の表現
time
0/0
x
0
1
0
1
0
0
0
1
1
0
S
ω
ω
Д
Д
ω
ω
ω
ω
Д
ω
z
0
0
0
1
0
0
0
0
1
0
1/0
S(t +1), z
S(t)
ω
Д
1/1
0/0
x=0
x=1
ω
ω, 0
Д, 0
Д
Д, 0
ω, 1
x/z
状態遷移図
(state diagram)
状態遷移表
(state transition table)
6
ディジタル回路
状態機械の構成
入力
組み合わせ
回路
現状態
出力
次状態
記憶素子
7
ディジタル回路
記憶素子の例
 D-FF(フリップ・フロップ)
 データ入力 : d
 データ出力 : q
 クロック入力 : c (clk)
 働き:
 「クロック・エッジの時の d の値が,次のサイクルの間 q から出力される」
Y
d
q
y
clk
8
ディジタル回路
D-FF の動作
d
0
1
0
1
0
0
0
1
1
0
q
0
0
1
0
1
0
0
0
1
1
time
clock
d
q
9
ディジタル回路
状態割り当て
Y
 状態 ω と Д を(たとえば)D-FF 1個で表現
d
q
y
clk
 状態割り当て:
 D-FF の出力 y:
 ω:y=0
 Д:y=1
 D-FF の入力 Y:
 次状態を ω : y = 0 にしたいなら ,このサイクルに ω : Y = 0 に
 次状態を Д : y = 1 にしたいなら, このサイクルに Д : Y = 1 に
10
ディジタル回路
例題の順序回路
y
Y
d
x
q
z
clock
time
y
0
0
1
1
0
0
0
0
1
0
x
0
1
0
1
0
0
0
1
1
0
Y
0
1
1
0
0
0
0
1
0
0
z
0
0
0
1
0
0
0
0
1
0
11
ディジタル回路
次状態関数 と 出力関数
S(t+1), z
S(t)
x=0
x=1
ω
ω, 0
Д, 0
Д
Д, 0
ω, 1
状態遷移表
ω : y/Y = 0
Д : y/Y = 1
Y
z
y
y
x=0
x=1
0
0
1
1
1
0
次状態関数
(next state function)
の真理値表
x=0
x=1
0
0
0
1
0
1
出力関数
(output function)
の真理値表
12
ディジタル回路
順序回路の構成
y
Y
d
x
q
z
clock
time
q
0
0
1
1
0
0
0
0
1
0
x
0
1
0
1
0
0
0
1
1
0
d
0
1
1
0
0
0
0
1
0
0
z
0
0
0
1
0
0
0
0
1
0
13
ディジタル回路
状態割り当て
18
ディジタル回路
状態割り当て と 状態機械の構造
入力
S(t + 1), z
S(t)
x=0
x=1
S0
S0, 0
S1, 0
S1
S3, 0
S0, 0
S2
S0, 0
S3, 1
S3
S3, 0
S2, 1
出力
x
出力関数
z
次状態関数
現状態
次状態
y1
y2
q
d
q
d
Y1
Y2
clk
19
ディジタル回路
状態割り当て と 状態機械の構造
入力
S(t + 1): Y1Y2, z
S(t): y1y2
x=0
x=1
S0: 00
S0: 00, 0
S1: 01, 0
S1: 01
S3: 10, 0
S0: 00, 0
S2: 11
S0: 00, 0
S3: 10, 1
S3: 10
S3: 10, 0
S2: 11, 1
出力
x
出力関数
z
次状態関数
現状態
次状態
y1
y2
q
d
q
d
Y1
Y2
clk
20
ディジタル回路
状態割り当て と 状態機械の構造
S(t + 1): Y1Y2, z
S(t): y1y2
x=0
x=1
S0: 00
S0: 00, 0
S1: 01, 0
S1: 01
S3: 10, 0
S0: 00, 0
S2: 11
S0: 00, 0
S3: 10, 1
S3: 10
S3: 10, 0
S2: 11, 1
Y1 = x' y'1 y2 + x y1 + y1 y'2
Y2 = x y'2
z = x y1
Y1
Y2
z
y1y2
x=0
x=1
y1y2
x=0
x=1
y1y2
x=0
x=1
00
0
0
00
0
1
00
0
0
01
1
0
01
0
0
01
0
0
11
0
1
11
0
0
11
0
1
10
1
1
10
0
1
10
0
1
21
ディジタル回路
状態割り当て と 状態機械の構造
S(t + 1): Y1Y2, z
S(t): y1y2
S(t + 1): Y1Y2, z
x=0
x=1
S(t): y1y2
x=0
x=1
S0: 00
S0: 00, 0
S1: 01, 0
S0:00
S0: 00, 0
S1: 11, 0
S1: 01
S3: 10, 0
S0: 00, 0
S2:01
S0: 00, 0
S3: 10, 1
S2: 11
S0: 00, 0
S3: 10, 1
S1:11
S3: 10, 0
S0: 00, 0
S3: 10
S3: 10, 0
S2: 11, 1
S3:10
S3: 10, 0
S2: 01, 1
22
ディジタル回路
状態割り当て と 状態機械の構造
S(t + 1): Y1Y2, z
S(t): y1y2
Y 1 = x ^ y1
Y2 = x y'2
z = x (y1 ^ y2)
Y1
x=0
x=1
S0:00
S0: 00, 0
S1: 11, 0
S2:01
S0: 00, 0
S3: 10, 1
S1:11
S3: 10, 0
S0: 00, 0
S3:10
S3: 10, 0
S2: 01, 1
Y2
z
y1y2
x=0
x=1
y1y2
x=0
x=1
y1y2
x=0
x=1
00
0
1
00
0
1
00
0
0
01
0
1
01
0
0
01
0
1
11
1
0
11
0
0
11
0
0
10
1
0
10
0
1
10
0
1
23
ディジタル回路
状態割り当て と 状態機械の構造
S(t + 1): Y1Y2, z
S(t): y1y2
S(t + 1): Y1Y2, z
S(t): y1y2
x=0
x=1
S0: 00
S0: 00, 0
S1: 01, 0
S0: 00
S0: 00, 0
S1: 11, 0
S1: 01
S3: 10, 0
S0: 00, 0
S2: 01
S0: 00, 0
S3: 10, 1
S2: 11
S0: 00, 0
S3: 10, 1
S1: 11
S3: 10, 0
S0: 00, 0
S3: 10
S3: 10, 0
S2: 11, 1
S3: 10
S3: 10, 0
S2: 01, 1
Y1 = x' y'1 y2 + x y1 + y1 y'2
Y2 = x y'2
z = x y1
x=0
x=1
Y 1 = x ^ y1
Y2 = x y'2
z = x (y1 ^ y2)
x
z
y2
y1
y1
x
z
y2
24
ディジタル回路
状態割り当ての「最適化」
 n 個の状態を k 個の FF で表すとき,異なる割り当て
 (2k − 1)! / (2k − n)! k! 通り
 n = 3, k = 2
⇒ 3 通り
 n = 5, k = 3
⇒ 140 通り
 n = 10, k = 4
⇒ 27億+ 通り
 効率のよいアルゴリズムは知られていない!
 仕様どおり,素直に設計したほうがよい?
25
ディジタル回路
状態機械の最小化
26
ディジタル回路
冗長な状態機械の例
S0
1/0
0/0
0/0
S1
1/0
0/0
S2
0/0
S3
1/1
S3
1/1
1/1
0/0
1/0
S0
S1
0/0
0/0
S2
1/0
1/1
0/0
27
ディジタル回路
状態の等価性
 状態 Si と Sj に同じ入力系列を与えて,異なる出力系列が得られる
 ⇒ この入力系列を, Si と Sj の識別系列 (distinguishing sequence) という
 Si と Sj に識別系列が…
 存在する
 ⇒ Si と Sj は識別可能 (distinguishable) という
 存在しない
 ⇒ Si と Sj は等価 (equivalent) という
 等価:
 「あらゆる長さのあらゆる系列を与えても,出力が異ならない」
28
ディジタル回路
状態の等価性
 Si と Sj に,長さ k の識別系列が…
 存在する
 ⇒ Si と Sj は k 識別可能 (k-distinguishable) という
 存在しない
 ⇒ Si と Sj は k 等価 (k-equivalent) という
29
ディジタル回路
1 識別可能 と 1 等価 の 例
0/0
?
Si
0/0
?
1/0
?
0/0
?
1/1
?
Sj
1/0
?
1 等価
0/0
?
Si
Sj
1/0
?
1 識別可能
識別系列: 「1」
30
ディジタル回路
2 識別可能 の 例
0/0
0/0
?
?
1/0
0/0
?
Si
0/0
?
1/1
?
0/1
?
1/0
?
?
Sj
0/0
1/0
?
?
1/0
1/0
?
?
1 等価 で 2 識別可能
識別系列: 「01」 と「10」
31
ディジタル回路
冗長な状態機械の例
S0
1/0
0/0
0/0
S1
1/0
0/0
S2
0/0
S3
1/1
1/1
32
ディジタル回路
1 識別可能 → 2 識別可能
S0
0/?
3 等価
0/?
S1
S2
1/?
1/?
1/?
0/?
S0
0/?
2 等価 ?
0/?
S1
S2
1/?
1/?
1/?
0/?
S3
3 識別可能
1/?
0/?
0/?
S3
2 識別可能
1/?
S0
0/0
?
1/0
?
0/0
?
1/0
?
0/0
?
1/1
?
0/0
?
1/1
?
1 等価
S1
S2
1 等価
S3
1 識別可能
33
ディジタル回路
k 等価性による状態分割
現状態
次状態, 出力
x=0
x=1
S0
S1, 0
S2, 0
S1
S0, 0
S2, 0
S2
S3, 0
S1, 1
S3
S2, 0
S3, 1
状態遷移表
π1
B01
B11
状
態
次ブロック
x=0
x=1
S0
B01
B11
S1
B01
B11
S2
B11
S3
B11
π2
状
態
次ブロック
x=0
x=1
S0
B02
B12
S1
B02
B12
B01
B12 S2
B22
B02
B11
B22 S3
B22
B22
1 等価 → 2等価
B02
2 等価 → 3等価
34
ディジタル回路
冗長な状態機械の例
S0
1/0
0/0
0/0
S1
1/0
0/0
S2
0/0
S3
1/1
S3
1/1
1/1
0/0
1/0
S0
S1
0/0
0/0
S2
1/0
1/1
0/0
35
ディジタル回路
今日のまとめ
36
ディジタル回路
今日のまとめ
 順序回路の表現
 状態遷移図
 状態遷移表
 順序回路の設計
1.
状態機械 :状態遷移表
2.
状態割り当て
3.
次状態関数,出力関数
4.
組み合わせ回路の簡単化(カルノー図,etc)
5.
(回路図の作画)
37
ディジタル回路
今日のまとめ
 状態機械の最小化
 k 等価性による状態分割
 状態割り当て
 順序回路の大きさ
 状態割り当てに依存
 状態割り当ての「最適化」は難しい
38