MealyタイプとMooreタイプの有限状態マシンの違いは何ですか?
ムーアマシンでは、生成される出力は、マシンの現在の状態とそれに関連するものにのみ関連付けられます。 Mealyマシンでは、代わりに状態と特定の入力の両方に関連付けられます。
実用的な観点から見ると、出力はムーアマシンの状態に配置されるため(すべての状態に出力があります)、後者では遷移に出力があります(出力は現在の状態と出力遷移から決定されます) )
ムーアの機械出力は機械の状態のみの関数であり、ミーリー機械の出力は機械の状態とその入力の関数です。
ムーアマシンは、次の形式で表現できる離散動的システムです。
x[k+1] = f(x[k], u[k] )
y[k] = g(x[k] )
ここで、x
状態、u
入力、y
出力、f
は遷移関係(離散ダイナミクス)を表し、g
は出力マップ(ここでは状態ラベル)とk
は時間(シーケンスのインデックス)を示します。
Mealyマシンは少し一般的な形式です。
x[k+1] = f(x[k], u[k] )
y[k] = g(x[k], u[k] )
g
はもはや状態ラベルではなく、Edgeラベルであることに注意してください。
それらは等しくありません特にムーアマシンは厳密に因果関係がありますが、ミーリーマシンはそうではありません。
詳細については、Lee&Seshia、 Introduction to Embedded Systems 、LeeSeshia.org、p.58を参照してください。
これはおそらく例と逸話で最もよく説明されます。
私は空港が嫌いで、空港に行くのは嫌ですが、飛行機に乗ることが大好きです。飛行機に乗る前に私が入力しなければならない3つの異なる状態があります。
Mealyマシンでは、前の状態に由来する違いが生じます-howどこかで得ることが非常に重要です。 Mooreマシンでは、how状態に到達しても違いはありません。
上記に結果を追加して、ステートマシンのムーア表現を作成します。
ムーア表現では、結果はに直接添付されます。 Mealy表現の場合-特定の結果/出力は、どこから来たかによって異なります。例えば、タクシーに乗らずにラウンジで待たなくても飛行機に乗れたら嬉しいです。入力は違いを生みます。 whereの出身地は重要です。 Mealy表現のステートマシンでは、これを図に表示できます。言い換えると、遷移の間、出力/結果は状態の外側に表示されます。
Mealyマシンの出力は現在の状態と現在の入力の両方に依存しますムーア出力は現在の状態のみに依存します。
一般的にMealyマシンはMooreマシンよりfever stateよりも多くあります。
Mealyクロックエッジで出力が変化しますが、Moore出力はロジックが完了するとすぐに変化します。
Mealy入力に対する反応が速くなります一方、Mooreログインにはdecode出力が必要です- より多くの回路遅延。
ムーアは、アクティブクロックパルスの後にのみ変化し、クロックエッジごとに変化します(「外部入力が変化した場合」)