SlideShare a Scribd company logo
東北大学 工学部 機械知能・航空工学科
2016年度 5セメスター・クラスC3 D1 D2 D3
計算機工学
大学院情報科学研究科
鏡 慎吾
http://www.ic.is.tohoku.ac.jp/~swk/lecture/
12. 順序回路の設計と応用
(教科書5章)
2鏡 慎吾 (東北大学): 計算機工学 2016 (12)
順序回路の設計
• 組合せ論理回路の設計法の分類
• 構造や規則性に着目した手設計(先人の知恵を使う)
• 入力・出力の関係に基づく自動合成(カルノー図など)
• 順序回路の設計法の分類
• 構造や規則性に着目した手設計(前回の各例)
• 入力・出力・状態の関係に基づく自動合成(今回)
3鏡 慎吾 (東北大学): 計算機工学 2016 (12)
同期式順序回路の入力・出力・状態の関係
x1
x2
xn
y1
y2
ym
q1
q2
qp
組合せ回路
yj(t) = gj(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t))
j = 1, 2, …, m
qi(t+1) = fi(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t))
i = 1, 2, …, p
p ビットレジスタ
q1qp q1
next qp
nextq2 q2
next
fi: 状態遷移関数
gi: 出力関数
4鏡 慎吾 (東北大学): 計算機工学 2016 (12)
有限状態機械
• 取り得る状態の数が有限であるようなシステム
• すべての状態を列挙して,どんな入力のときにどの状態からど
の状態に遷移するのか,そのとき何が出力されるのかを考え
尽くすことができる
• 設計手順
• 入力・出力・状態の関係を状態遷移図で表す
• 入力・出力・状態に2進符号を割り当てる
• 状態遷移表・出力表を作成する
• 論理回路に置き換える(必要ならば簡単化する)
5鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 自動販売機
• 100円硬貨だけを受け付ける
• 投入金額が300円に達すると品物が出てくる
• 投入済金額を返却するボタンがある(硬貨投入と同時には押せない)
入力: { なし, 100円硬貨, 返却ボタン}
出力: { なし, 品物, 投入金額返却 }
状態: { 0円投入済,100円投入済, 200円投入済 }
6鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 状態遷移図
0円
投入済
100円
投入済
200円
投入済
100円 / なし 100円 / なし
0円 / なし0円 / なし 0円 / なし
ボタン / なし
ボタン / 返却
ボタン / 返却
100円 / 品物
• 状態を円(ノード)で表す
状態名を記入する
• 状態遷移を矢印(アーク)で表す
入力 / 出力 を付記する
7鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例: 状態・入力・出力の符号化
入力: { なし, 100円硬貨, 返却ボタン }
00 01 11 = x1 x2
出力: { なし, 品物, 投入金額返却 }
00 01 11 = z1 z2
状態: { 0円投入済,100円投入済, 200円投入済 }
00 01 11 = y1 y2
00 01 11
01 / 00 01 / 00
00 / 0000 / 00 00 / 00
11 / 00
11 / 11
11 / 11
01 / 01
8鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 状態遷移表・出力表
y1 y2 x1 x2 Y1 Y2 z1 z2
0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0
0 0 1 0 * * * *
0 0 1 1 0 0 0 0
0 1 0 0 0 1 0 0
0 1 0 1 1 1 0 0
0 1 1 0 * * * *
0 1 1 1 0 0 1 1
1 0 0 0 * * * *
1 0 0 1 * * * *
1 0 1 0 * * * *
1 0 1 1 * * * *
1 1 0 0 1 1 0 0
1 1 0 1 0 0 0 1
1 1 1 0 * * * *
1 1 1 1 0 0 1 1
入力×状態
→ 状態遷移先
の表を状態遷移表,
入力×状態
→ 出力
の表を出力表と呼ぶ.
両方合わせて状態
遷移表と呼ぶことも
多い.
次時刻の状態
9鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: カルノー図による簡単化
Y1
x1 x2
00 01 11 10
y1y2 00 0 0 0 *
01 0 1 0 *
11 1 0 0 *
10 * * * *
Y2
x1 x2
00 01 11 10
y1y2 00 0 1 0 *
01 1 1 0 *
11 1 0 0 *
10 * * * *
z1
x1 x2
00 01 11 10
y1y2 00 0 0 0 *
01 0 0 1 *
11 0 0 1 *
10 * * * *
z2
x1 x2
00 01 11 10
y1y2 00 0 0 0 *
01 0 0 1 *
11 0 1 1 *
10 * * * *
10鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 回路図
DQ
DQ
y2y1 Y1 Y2
x2x1
z2
z1
11鏡 慎吾 (東北大学): 計算機工学 2016 (12)
復習: MIPSの構造
メモリ
32ビットALU
32x32ビット
レジスタ
PC
命令デコーダ
アドレス(32ビット)
データ(8, 16, 32ビット)
次PC計算
制御回路
mux
mux
演算選択
レ
ジ
ス
タ
選
択
12鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例2: 簡易版MIPSの制御回路(付録E章)
ALU
PC
命令
デコーダ
制御回路
汎用
レジスタ
w_en
rs
rt
rw
s
t
w
+4
命令メモリ
addr
inst
en
GPRenPCen
IF ID EX
op
nPC
offset
分岐先計算
分岐
判定
0
1
is_branch
13鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例2: 定義
演算命令と分岐命令だけの簡略版MIPSの制御回路を設計する
入力: 命令デコードの結果生成される is_branch 信号
(分岐命令なら1,演算命令なら0)
出力: イネーブル信号 PCen, GPRen
状態:
• IF (Instruction Fetch): 命令読出し,後続命令アドレス計算
• ID (Instruction Decode): 命令デコード,レジスタ読出,分岐判定
• EX (EXecution): 演算実行,レジスタ書き込み
14鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例2: 状態遷移図
IF ID EX
is_branch = *
/ (PCen, GPRen)
= (0, 0)
is_branch = 1
/ (PCen, GPRen) = (1, 0)
is_branch = *
/ (PCen, GPRen) = (1, 1)
is_branch = 0
/ (PCen, GPRen)
= (0, 0)
「入力 = *」は,入力が1の場合も0の場合も出力・遷移先状態が同じことを表
すとする
15鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例2: 状態遷移表・出力表
Q1 Q0 is_branch Q1' Q0' PCen GPRen
0 0 0 0 1 0 0
0 0 1 0 1 0 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
1 0 0 0 0 1 1
1 0 1 0 0 1 1
1 1 0 * * * *
1 1 1 * * * *
符号割り当て:
IF: Q1Q0 = 00
ID: Q1Q0 = 01
EX: Q1Q0 = 10
16鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例2: カルノー図による簡単化
Q1' Q1 Q0
00 01 11 10
is_branch 0 0 1 * 0
1 0 0 * 0
Q0' Q1 Q0
00 01 11 10
is_branch 0 1 0 * 0
1 1 0 * 0
PCen Q1 Q0
00 01 11 10
is_branch 0 0 0 * 1
1 0 1 * 1
GPRen Q1 Q0
00 01 11 10
is_branch 0 0 0 * 1
1 0 0 * 1
17鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例題 (おまけ)
ある人が狼,羊,牧草とともに旅をしていたところ,川にさしかかった.小さな舟
を漕いで渡るしかない.舟には,漕ぎ手である人のほか,狼,羊,牧草のいず
れか高々1つしか乗せるスペースがない.ただし,人がいないと狼は羊を食べ
てしまい,また羊は牧草を食べてしまう.人,狼,羊,牧草すべて無事に川を渡
るにはどうすればよいか.
(1) こちらの岸と向こう岸に存在し得る人,狼,羊,牧草の組合せを列挙せよ.
これが有限状態機械の状態となる.(渡っている途中の状況は,状態とし
なくてよい.理由を考えよ)
(2) 状態遷移図を作成せよ.ただし入力,出力を考える必要はない.状態に2
進符号を割り当てる必要もない.(ある状態からはどの状態に遷移し得る
かのみを考慮する)
(3) 状態遷移図をもとに,最短で向こう岸に渡るための手順を示せ.答えは一
つとは限らない.(ヒント: 初期状態から順に,あるいは最終状態から逆に
たどるとよい.あるいは状態遷移図を整理しながら考えてもよい)
18鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例題(おまけ) 解答例
状態 こちら岸 向こう岸
A 人狼羊草 – φ
(B 狼羊草 - 人)
C 人羊草 - 狼
D 人狼草 - 羊
E 人狼羊 - 草
(F 羊草 - 人狼)
G 狼草 - 人羊
(H 狼羊 - 人草)
(I 人草 - 狼羊)
J 人羊 - 狼草
(K 人狼 - 羊草)
(L 人 - 狼羊草)
M 狼 - 人羊草
N 羊 - 人狼草
O 草 - 人狼羊
P φ - 人狼羊草
A
G
J
N
P
D
M O
E C
最短経路は二つ
19鏡 慎吾 (東北大学): 計算機工学 2016 (12)
参考
• 今回学んだ Mealy 型の有限状態機械のほかに,出力が状
態にだけ依存する(入力に直接依存しない) Moore 型の有
限状態機械がある.
• Moore 型も Mealy 型も表現能力は同じである.ただし,
Moore 型は入力が出力に反映されるのに1時刻以上か
かる.
• 入力が出力に直接影響するのが好ましくない場合は
Moore 型で設計する必要がある.
• 今回は,状態遷移図から安直に回路を生成した,実際は
• より状態数の少ない有限状態機械で表せるかも知れない
• 符号の割り当て方によって,回路がもっと簡単になるかも
知れない
などといったことも考える必要がある.
20鏡 慎吾 (東北大学): 計算機工学 2016 (12)
練習問題
論理値の系列(例えば 0100110101...) を入力として受け取って,
「0011」という系列が現れたとき初めて1を出力し,それ以外では0
を出力する順序回路を設計せよ.
入力を x,状態を y1y2 (次時刻の状態を Y1Y2),出力を z とする.
00 01 10 11
21鏡 慎吾 (東北大学): 計算機工学 2016 (12)
解答例
Y2
Y1

More Related Content

PDF
kagami_comput2016_11
PDF
kagami_comput2016_10
PDF
kagami_comput2016_09
PDF
kagami_comput2016_08
PDF
kagamicomput201711
PDF
kagamicomput201712
PDF
kagami_comput2015_10
PDF
kagamicomput201810
kagami_comput2016_11
kagami_comput2016_10
kagami_comput2016_09
kagami_comput2016_08
kagamicomput201711
kagamicomput201712
kagami_comput2015_10
kagamicomput201810

What's hot (20)

PDF
kagami_comput2016_07
PDF
kagamicomput201709
PDF
kagami_comput2016_14
PDF
kagamicomput201708
PDF
kagami_comput2015_11
PDF
kagami_comput2016_06
PDF
kagami_comput2016_02
PDF
kagamicomput201809
PDF
kagami_comput2015_8
PDF
kagamicomput201811
PDF
kagamicomput201710
PDF
kagami_comput2015_6
PDF
kagami_comput2016_05
PDF
kagamicomput201706
PDF
kagamicomput201704
PDF
kagami_comput2016_03
PDF
kagamicomput201707
PDF
kagami_comput2016_13
PPTX
積分要素の応答性(MATLAB)
PPTX
積分要素の過渡応答性(MATLAB)
kagami_comput2016_07
kagamicomput201709
kagami_comput2016_14
kagamicomput201708
kagami_comput2015_11
kagami_comput2016_06
kagami_comput2016_02
kagamicomput201809
kagami_comput2015_8
kagamicomput201811
kagamicomput201710
kagami_comput2015_6
kagami_comput2016_05
kagamicomput201706
kagamicomput201704
kagami_comput2016_03
kagamicomput201707
kagami_comput2016_13
積分要素の応答性(MATLAB)
積分要素の過渡応答性(MATLAB)
Ad

Viewers also liked (18)

PDF
kagami_comput2015_12
PDF
kagami_comput2016_04
PDF
kagami_comput2016_01
PDF
kagami_comput2015_13
PDF
kagami_comput2015_14
PDF
kagami_comput2015_9
PDF
HTML5クイズ!
PDF
そしてjsの基礎へ戻る#4
PDF
フレッシュマンセミナー20060614
PDF
kagami_comput2015_4
PDF
JavaScript 基礎文法のまとめ
PDF
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
PPTX
La vida
PDF
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
PDF
CMSI計算科学技術特論A(3) OpenMPの基礎
PDF
Spanish_AdSenseOnlineOverview_121103_ps
PDF
kagami_comput2015_7
PDF
CMSI計算科学技術特論A (2015) 第2回 MPIの基礎
kagami_comput2015_12
kagami_comput2016_04
kagami_comput2016_01
kagami_comput2015_13
kagami_comput2015_14
kagami_comput2015_9
HTML5クイズ!
そしてjsの基礎へ戻る#4
フレッシュマンセミナー20060614
kagami_comput2015_4
JavaScript 基礎文法のまとめ
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
La vida
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
CMSI計算科学技術特論A(3) OpenMPの基礎
Spanish_AdSenseOnlineOverview_121103_ps
kagami_comput2015_7
CMSI計算科学技術特論A (2015) 第2回 MPIの基礎
Ad

Similar to kagami_comput2016_12 (13)

PDF
kagamicomput201812
PDF
kagamicomput201701
PDF
プログラミングロボットを用いたオンライン併用型の協調学習実践
PDF
kagami_comput2015_1
PDF
kagamicomput201801
PDF
kagamicomput201807
PDF
kagamicomput201714
PDF
【minecraft】レッド​ストーン回路赤石論理学【配布資料】
PDF
kagamicomput201814
PDF
2012研究室紹介(大川)
PPTX
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
PDF
チューリング・マシンとコンピュータ工学
PDF
kibayos beaker-070829
kagamicomput201812
kagamicomput201701
プログラミングロボットを用いたオンライン併用型の協調学習実践
kagami_comput2015_1
kagamicomput201801
kagamicomput201807
kagamicomput201714
【minecraft】レッド​ストーン回路赤石論理学【配布資料】
kagamicomput201814
2012研究室紹介(大川)
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
チューリング・マシンとコンピュータ工学
kibayos beaker-070829

More from swkagami (11)

PDF
kagamicomput201813
PDF
kagamicomput201808
PDF
kagamicomput201806
PDF
kagamicomput201805
PDF
kagamicomput201804
PDF
kagamicomput201803
PDF
kagamicomput201802
PDF
kagamicomput201713
PDF
kagamicomput201705
PDF
kagamicomput201703
PDF
kagamicomput201702
kagamicomput201813
kagamicomput201808
kagamicomput201806
kagamicomput201805
kagamicomput201804
kagamicomput201803
kagamicomput201802
kagamicomput201713
kagamicomput201705
kagamicomput201703
kagamicomput201702

kagami_comput2016_12

  • 1. 東北大学 工学部 機械知能・航空工学科 2016年度 5セメスター・クラスC3 D1 D2 D3 計算機工学 大学院情報科学研究科 鏡 慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 12. 順序回路の設計と応用 (教科書5章)
  • 2. 2鏡 慎吾 (東北大学): 計算機工学 2016 (12) 順序回路の設計 • 組合せ論理回路の設計法の分類 • 構造や規則性に着目した手設計(先人の知恵を使う) • 入力・出力の関係に基づく自動合成(カルノー図など) • 順序回路の設計法の分類 • 構造や規則性に着目した手設計(前回の各例) • 入力・出力・状態の関係に基づく自動合成(今回)
  • 3. 3鏡 慎吾 (東北大学): 計算機工学 2016 (12) 同期式順序回路の入力・出力・状態の関係 x1 x2 xn y1 y2 ym q1 q2 qp 組合せ回路 yj(t) = gj(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t)) j = 1, 2, …, m qi(t+1) = fi(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t)) i = 1, 2, …, p p ビットレジスタ q1qp q1 next qp nextq2 q2 next fi: 状態遷移関数 gi: 出力関数
  • 4. 4鏡 慎吾 (東北大学): 計算機工学 2016 (12) 有限状態機械 • 取り得る状態の数が有限であるようなシステム • すべての状態を列挙して,どんな入力のときにどの状態からど の状態に遷移するのか,そのとき何が出力されるのかを考え 尽くすことができる • 設計手順 • 入力・出力・状態の関係を状態遷移図で表す • 入力・出力・状態に2進符号を割り当てる • 状態遷移表・出力表を作成する • 論理回路に置き換える(必要ならば簡単化する)
  • 5. 5鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例1: 自動販売機 • 100円硬貨だけを受け付ける • 投入金額が300円に達すると品物が出てくる • 投入済金額を返却するボタンがある(硬貨投入と同時には押せない) 入力: { なし, 100円硬貨, 返却ボタン} 出力: { なし, 品物, 投入金額返却 } 状態: { 0円投入済,100円投入済, 200円投入済 }
  • 6. 6鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例1: 状態遷移図 0円 投入済 100円 投入済 200円 投入済 100円 / なし 100円 / なし 0円 / なし0円 / なし 0円 / なし ボタン / なし ボタン / 返却 ボタン / 返却 100円 / 品物 • 状態を円(ノード)で表す 状態名を記入する • 状態遷移を矢印(アーク)で表す 入力 / 出力 を付記する
  • 7. 7鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例: 状態・入力・出力の符号化 入力: { なし, 100円硬貨, 返却ボタン } 00 01 11 = x1 x2 出力: { なし, 品物, 投入金額返却 } 00 01 11 = z1 z2 状態: { 0円投入済,100円投入済, 200円投入済 } 00 01 11 = y1 y2 00 01 11 01 / 00 01 / 00 00 / 0000 / 00 00 / 00 11 / 00 11 / 11 11 / 11 01 / 01
  • 8. 8鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例1: 状態遷移表・出力表 y1 y2 x1 x2 Y1 Y2 z1 z2 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 * * * * 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 * * * * 0 1 1 1 0 0 1 1 1 0 0 0 * * * * 1 0 0 1 * * * * 1 0 1 0 * * * * 1 0 1 1 * * * * 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 * * * * 1 1 1 1 0 0 1 1 入力×状態 → 状態遷移先 の表を状態遷移表, 入力×状態 → 出力 の表を出力表と呼ぶ. 両方合わせて状態 遷移表と呼ぶことも 多い. 次時刻の状態
  • 9. 9鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例1: カルノー図による簡単化 Y1 x1 x2 00 01 11 10 y1y2 00 0 0 0 * 01 0 1 0 * 11 1 0 0 * 10 * * * * Y2 x1 x2 00 01 11 10 y1y2 00 0 1 0 * 01 1 1 0 * 11 1 0 0 * 10 * * * * z1 x1 x2 00 01 11 10 y1y2 00 0 0 0 * 01 0 0 1 * 11 0 0 1 * 10 * * * * z2 x1 x2 00 01 11 10 y1y2 00 0 0 0 * 01 0 0 1 * 11 0 1 1 * 10 * * * *
  • 10. 10鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例1: 回路図 DQ DQ y2y1 Y1 Y2 x2x1 z2 z1
  • 11. 11鏡 慎吾 (東北大学): 計算機工学 2016 (12) 復習: MIPSの構造 メモリ 32ビットALU 32x32ビット レジスタ PC 命令デコーダ アドレス(32ビット) データ(8, 16, 32ビット) 次PC計算 制御回路 mux mux 演算選択 レ ジ ス タ 選 択
  • 12. 12鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例2: 簡易版MIPSの制御回路(付録E章) ALU PC 命令 デコーダ 制御回路 汎用 レジスタ w_en rs rt rw s t w +4 命令メモリ addr inst en GPRenPCen IF ID EX op nPC offset 分岐先計算 分岐 判定 0 1 is_branch
  • 13. 13鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例2: 定義 演算命令と分岐命令だけの簡略版MIPSの制御回路を設計する 入力: 命令デコードの結果生成される is_branch 信号 (分岐命令なら1,演算命令なら0) 出力: イネーブル信号 PCen, GPRen 状態: • IF (Instruction Fetch): 命令読出し,後続命令アドレス計算 • ID (Instruction Decode): 命令デコード,レジスタ読出,分岐判定 • EX (EXecution): 演算実行,レジスタ書き込み
  • 14. 14鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例2: 状態遷移図 IF ID EX is_branch = * / (PCen, GPRen) = (0, 0) is_branch = 1 / (PCen, GPRen) = (1, 0) is_branch = * / (PCen, GPRen) = (1, 1) is_branch = 0 / (PCen, GPRen) = (0, 0) 「入力 = *」は,入力が1の場合も0の場合も出力・遷移先状態が同じことを表 すとする
  • 15. 15鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例2: 状態遷移表・出力表 Q1 Q0 is_branch Q1' Q0' PCen GPRen 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 * * * * 1 1 1 * * * * 符号割り当て: IF: Q1Q0 = 00 ID: Q1Q0 = 01 EX: Q1Q0 = 10
  • 16. 16鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例2: カルノー図による簡単化 Q1' Q1 Q0 00 01 11 10 is_branch 0 0 1 * 0 1 0 0 * 0 Q0' Q1 Q0 00 01 11 10 is_branch 0 1 0 * 0 1 1 0 * 0 PCen Q1 Q0 00 01 11 10 is_branch 0 0 0 * 1 1 0 1 * 1 GPRen Q1 Q0 00 01 11 10 is_branch 0 0 0 * 1 1 0 0 * 1
  • 17. 17鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例題 (おまけ) ある人が狼,羊,牧草とともに旅をしていたところ,川にさしかかった.小さな舟 を漕いで渡るしかない.舟には,漕ぎ手である人のほか,狼,羊,牧草のいず れか高々1つしか乗せるスペースがない.ただし,人がいないと狼は羊を食べ てしまい,また羊は牧草を食べてしまう.人,狼,羊,牧草すべて無事に川を渡 るにはどうすればよいか. (1) こちらの岸と向こう岸に存在し得る人,狼,羊,牧草の組合せを列挙せよ. これが有限状態機械の状態となる.(渡っている途中の状況は,状態とし なくてよい.理由を考えよ) (2) 状態遷移図を作成せよ.ただし入力,出力を考える必要はない.状態に2 進符号を割り当てる必要もない.(ある状態からはどの状態に遷移し得る かのみを考慮する) (3) 状態遷移図をもとに,最短で向こう岸に渡るための手順を示せ.答えは一 つとは限らない.(ヒント: 初期状態から順に,あるいは最終状態から逆に たどるとよい.あるいは状態遷移図を整理しながら考えてもよい)
  • 18. 18鏡 慎吾 (東北大学): 計算機工学 2016 (12) 例題(おまけ) 解答例 状態 こちら岸 向こう岸 A 人狼羊草 – φ (B 狼羊草 - 人) C 人羊草 - 狼 D 人狼草 - 羊 E 人狼羊 - 草 (F 羊草 - 人狼) G 狼草 - 人羊 (H 狼羊 - 人草) (I 人草 - 狼羊) J 人羊 - 狼草 (K 人狼 - 羊草) (L 人 - 狼羊草) M 狼 - 人羊草 N 羊 - 人狼草 O 草 - 人狼羊 P φ - 人狼羊草 A G J N P D M O E C 最短経路は二つ
  • 19. 19鏡 慎吾 (東北大学): 計算機工学 2016 (12) 参考 • 今回学んだ Mealy 型の有限状態機械のほかに,出力が状 態にだけ依存する(入力に直接依存しない) Moore 型の有 限状態機械がある. • Moore 型も Mealy 型も表現能力は同じである.ただし, Moore 型は入力が出力に反映されるのに1時刻以上か かる. • 入力が出力に直接影響するのが好ましくない場合は Moore 型で設計する必要がある. • 今回は,状態遷移図から安直に回路を生成した,実際は • より状態数の少ない有限状態機械で表せるかも知れない • 符号の割り当て方によって,回路がもっと簡単になるかも 知れない などといったことも考える必要がある.
  • 20. 20鏡 慎吾 (東北大学): 計算機工学 2016 (12) 練習問題 論理値の系列(例えば 0100110101...) を入力として受け取って, 「0011」という系列が現れたとき初めて1を出力し,それ以外では0 を出力する順序回路を設計せよ. 入力を x,状態を y1y2 (次時刻の状態を Y1Y2),出力を z とする. 00 01 10 11
  • 21. 21鏡 慎吾 (東北大学): 計算機工学 2016 (12) 解答例 Y2 Y1