Model Composer では、MCode ブロックにより MATLAB が直接サポートされています。MCode ブロックは、入力値を M 関数に適用し、ザイリンクスの固定小数点型を使用して評価します。評価は、サンプル周期ごとに実行されます。MCode ブロックでは、持続型状態変数を使用することにより、内部ステートを保持できます。入力ポートは指定の M 関数の入力引数、出力ポートは M 関数の出力引数により決定されます。MCode ブロックは、有限ステート マシン、制御ロジック、計算負荷の高いシステムを構築するのに便利です。
MCode ブロックを使用するには、M 関数を記述する必要があります。M ファイルは、M ファイルを使用するモデルのディレクトリまたは MATLAB パスに配置します。
次に、MCode ブロックを使用する例を示します。
- 例 1: 単純なセレクター - 入力の最大値を返すファンクションをインプリメントする方法を示します。
- 例 2: 単純な算術演算 - 単純な演算処理をインプリメントする方法を示します。
- 例 3: レイテンシのある複素乗算器 - レイテンシを持つ複素乗算器を構築する方法を示します。
- 例 4: シフト操作 - シフト操作をインプリメントする方法を示します。
- 例 5: MCode ブロックにパラメーターを渡す - MCode ブロックにパラメーターを渡す方法を示します。
- 例 6: オプションの入力ポート - MCode ブロックにオプションの入力ポートをインプリメントする方法を示します。
- 例 7: 有限ステートマシン - 有限ステート マシンのインプリメント方法を示します。
- 例 8: パラメーター指定可能なアキュムレータ - パラメーター指定可能なアキュムレータを構築する方法を示します。
- 例 9: FIR 例とシステム検証 - FIR ブロックをモデリングし、システム検証を実行する方法を示します。
- 例 10: RPN カリキュレーター - RPN カリキュレーター (スタック マシン) をモデリングする方法を示します。
- 例 11: disp 関数の例 - disp 関数を使用して変数値をプリントする方法を示します。