このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
HDL 用の MATLAB Function ブロック設計パターン
Simulink® および Stateflow® での実装用のアルゴリズムを MATLAB Function ブロックを使用して記述し、そのコードを HDL コード生成に使用できます。HDL 設計パターン ライブラリ eml_hdl_design_patterns
を使用して、ハードウェアのモデル化の一般的なアルゴリズムを MATLAB Function ブロックを使用して実装できます。ライブラリには、HDL コード生成のためのハードウェアとの親和性が高い MATLAB Function ブロックの用途を示す例が含まれています。
ライブラリを開くには、MATLAB® コマンド プロンプトで次のように入力します。
eml_hdl_design_patterns
次のようにして、ライブラリのブロックをさまざまなハードウェア要素のモデル化に使用できます。
ライブラリからモデルにブロックをコピーし、それを計算単位として使用する。
ブロックからコードをコピーし、それを既存の MATLAB Function ブロックでローカル関数として使用する。
カスタム ブロックを作成する場合は、MATLAB Function ブロックから生成される HDL コードをインライン化するか、インスタンス化するかを制御できます。HDL コードをインライン化またはインスタンス化するには、[コンフィギュレーション パラメーター] ダイアログ ボックスで [HDL コード生成] 、 [グローバル設定] をクリックします。右側のペインの [コーディング スタイル] タブで、[インラインの MATLAB Function ブロック コード] を選択します。
メモ
MATLAB Function ブロックの HDL ブロック プロパティ [アーキテクチャ] を MATLAB Datapath
に設定する場合は、[インラインの MATLAB Function ブロック コード] 設定は使用しないでください。代わりに [FlattenHierarchy] を有効にします。詳細については、MATLAB Datapath アーキテクチャを使用した、MATLAB Function ブロック境界を越えた HDL 最適化を参照してください。
HDL 設計パターン ブロック
次の表は、eml_hdl_design_patterns
ライブラリに含まれる HDL 設計パターンのカテゴリの一部をまとめたものです。それぞれのブロックの詳細については、HDL コード生成のための MATLAB Function ブロックを使用したハードウェア設計パターンの作成を参照してください。
ライブラリ サブシステム | 目的 |
---|---|
Combinatorics | 異なる固定小数点データ型をもつ加算、減算、乗算の演算子を含む式などの組み合わせ固定小数点アルゴリズム。 |
Adders | さまざまな加算器ロジックをモデル化するアルゴリズム。 |
Delays | 永続変数のベクトルを使用して整数の遅延、タップ遅延、タップ遅延ベクトル ブロックをモデル化するためのアルゴリズム。これらの設計パターンは、モデル内の MATLAB Function ブロックの各実行間で状態を伝達する逐次アルゴリズムを実装するために使用します。 |
Comparators | ベクトルの最小値を見つけるためのアルゴリズム。 |
FSMs | 固定小数点算術演算と組み合わせて制御ロジックをすばやくモデル化するための MATLAB Function ブロックの
|
Counters | 状態をモデル化し、ループ内部でデータ要素を量子化する方法を示すカウンター ロジック。 |
Shift Registers | シフト レジスタのハードウェア要素をモデル化するアルゴリズム。
|
Word Twiddlers | 整数からビットへの変換やビットから整数への変換など、ワードの変換を実行するアルゴリズム。 |
このライブラリのブロックの HDL コード生成への使用
このライブラリのブロックを使用してモデルをビルドし、HDL コードを生成するには、次を行います。
MATLAB Function ブロックからの HDL コードの生成の詳細については、Generate HDL Code from a MATLAB Function Blockを参照してください。
固定小数点アルゴリズムのサポート
MATLAB Function ブロックでは、浮動小数点演算に加え、Fixed-Point Designer™ の関数 fi
を使用した固定小数点演算をサポートしています。この関数は、任意の語長と小数部の長さを操作するアルゴリズムのコーディングに使用できる丸めモードと飽和モードをサポートしています。HDL Coder™ は、fi
のすべての丸めモードとオーバーフロー モードをサポートしています。MATLAB Function ブロックから生成された HDL コードは、MATLAB セマンティクスに対してビットトゥルーです。生成されたコードは、VHDL および Verilog にネイティブなビット操作演算子およびビット アクセス演算子 (slice、extend、reduce、concatenate など) を使用します。eml_hdl_design_patterns
ライブラリには、fi
オブジェクトを使用するブロックの例 (Adders
サブシステムのブロックなど) が含まれています。