ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Mealy マシンと Moore マシンの概要

Mealy マシンと Moore マシンのセマンティクス

Mealy と Moore は、有限ステート マシンのモデリングにおける業界標準の基本パラダイムとして幅広く認知されています。一般にステート マシン モデルでは、以下に示すように、次のステートは現在のステートとその入力値の関数です。

X(n+1)=f(X(n),u)

この方程式は、以下を意味します。

X(n)タイム ステップ n のステートを表す。
X(n+1)次のタイム ステップ n+1 のステートを表す。
u入力値を表す。

ステートは、ローカル データとチャート アクティビティの組み合わせです。このため、ステートを計算するということは、ローカル データの更新と、現在のアクティブなステートから新しいステートへの遷移を行うことを意味します。ステートはタイム ステップ間で存続します。

上記に関連して、Mealy マシンと Moore マシンそれぞれにセマンティクスが適切に定義されます。

マシンのタイプセマンティクス用途
Mealy出力値は、以下のように入力値とステートの関数に該当する。

y=g(X,u)

クロック エッジでステート遷移が発生するクロック同期マシン
Moore出力値は、以下のようにステートのみの関数に該当する。

y=g(X)

クロック エッジで出力値が修正されるクロック同期マシン

Stateflow® チャート セマンティクス (Mealy チャートと Moore チャートの作成 を参照) のサブセットとして、純粋な Mealy または Moore のセマンティクスを実装したチャートを作成できます。Mealy チャートと Moore チャートは、C 言語や HDL のシミュレーションおよびコード生成で使用が可能です。

    メモ:   Stateflow チャートから HDL コードを生成するには、別途提供されている HDL Coder™ ソフトウェアを使用しなければなりません。

Mealy マシンと Moore マシンのモデル

Stateflow ソフトウェアには、信号処理の配列認識を例として、Mealy マシンと Moore マシンの使用方法を紹介するモデルが付属しています。モデルを開くには、MATLAB® プロンプトで「sf_seqrec」と入力します。

既定のステート マシン タイプ

Stateflow チャートを作成する場合、既定のタイプは Mealy チャートと Moore チャートのセマンティクスに拡張 Stateflow チャート セマンティクスが組み合わされたハイブリッド ステート マシン モデルになります。この既定のチャート タイプは、Classic と呼ばれます。

出力値の可用性

Mealy マシンが遷移の出力値を計算するのに対して、Moore マシンはステートの出力値を計算します。このため、Mealy チャートは、Moore チャートよりも速く、チャートの既定パスの実行時点で出力値を計算できます。Mealy チャートに対して [初期化時に指定されたチャートを実行 (入力)] チャート プロパティを有効にした場合は、この計算は t = 0 (最初のタイム ステップ) で発生します。そうでない場合は、t = 1 (次のタイム ステップ) で発生します。一方、Moore マシンが出力値を計算できるのは、既定パスの実行後になります。それまでは、出力値には既定値が使用されます。

Mealy チャートと Moore チャートの利点

Mealy チャートと Moore チャートは、Classic Stateflow チャートと比較して以下の利点があります。

  • 作成した Mealy チャートと Moore チャートを検証して、正式な定義とセマンティクスのルールに準拠させることができます。エラー メッセージが (設計時点ではなく) コンパイル時点で表示されます。

  • Moore チャートは、C と HDL ターゲットの両方に対して、Classic チャートよりも効率的な実装を可能にします。

この情報は役に立ちましたか?