生成された固定小数点ファイルの操作
この例では、浮動小数点から固定小数点への変換時に生成されたファイルを操作する方法を示します。
はじめに
このチュートリアルでは、浮動小数点で実装されたシンプルなフィルターと関連するテストベンチを使用して、生成された固定小数点コードのファイル構造について説明します。
design_name = 'mlhdlc_filter'; testbench_name = 'mlhdlc_filter_tb';
MATLAB® コード
MATLAB 設計: mlhdlc_filter
MATLAB テストベンチ: mlhdlc_filter_tb
設計のシミュレーション
コードの生成前にテストベンチを使用して設計をシミュレートし、実行時エラーが発生しないことを確認します。
mlhdlc_filter_tb
HDL Coder™ プロジェクトの新規作成
新しいプロジェクトを作成するには、次のコマンドを入力します。
coder -hdlcoder -new flt2fix_project
次に、'mlhdlc_filter' ファイルを [MATLAB 関数] としてプロジェクトに追加し、'mlhdlc_filter_tb' を [MATLAB テスト ベンチ] として追加します。
MATLAB HDL Coder プロジェクトの作成と入力に関する詳細なチュートリアルについては、MATLAB から HDL へのワークフロー入門を参照してください。
固定小数点コード生成ワークフロー
固定小数点コード生成ステップの準備として、次のタスクを実行します。
[ワークフロー アドバイザー] ボタンをクリックしてワークフロー アドバイザーを起動します。
[固定小数点の変換] オプションで
[Convert to fixed-point at build time]
を選択します。[固定小数点の変換] のステップを右クリックして [選択したタスクまで実行] を選択し、インストルメント化された浮動小数点シミュレーションを実行します。
これらの手順に関する詳細なチュートリアルについては、浮動小数点から固定小数点への変換を参照してください。
浮動小数点設計の構造
元の浮動小数点設計とテストベンチの関係は次のとおりです。
浮動小数点から固定小数点への変換では、元の設計とテストベンチに次の要件が適用されます。
テストベンチ 'mlhdlc_filter_tb.m' (1) はスクリプトであるか、入力のない関数でなければなりません。入力を取るローカル補助関数はテスト ベンチに含めることができます。
設計 'mlhdlc_filter.m' (2) は関数でなければなりません。
設計をテストベンチから少なくとも 1 回は呼び出さなければなりません。すべての呼び出しサイトから推奨される固定小数点型が決定されます。
設計とテストベンチの両方で、ファイル内の他のサブ関数や MATLAB パスのその他の関数を呼び出すことができます。matlab/toolbox 内に存在する関数は固定小数点に変換されません。
現在の例では、MATLAB テストベンチ 'mlhdlc_filter_tb' に設計関数 'mlhdlc_filter' の単一の呼び出しがあります。テストベンチは、浮動小数点の入力をもつ設計を呼び出し、浮動小数点の結果をプロット用に蓄積します。
型の検証
型検証ステップでは、この設計の固定小数点コードが生成されてコンパイルされ、型の適用時にエラーが発生しないかどうかが検証されます。出力ファイルの構造は次のようになります。
固定小数点型の検証プロセスで実行される手順は次のとおりです。
設計ファイル 'mlhdlc_filter.m' が固定小数点に変換され、固定小数点 MATLAB コード 'mlhdlc_filter_fixpt.m' (3) が生成されます。
浮動小数点設計で呼び出されるすべてのユーザー記述関数が固定小数点に変換され、生成される設計ファイルに含められます。
'mlhdlc_filter_wrapper_fixpt.m' (2) という名前の新しい設計ラッパー ファイルが作成されます。このファイルは、テストベンチから提供される浮動小数点データ値を変換ステップで設計の入力に応じて決められた固定小数点型に変換します。それらの固定小数点の値が変換された固定小数点設計 'mlhdlc_filter_fixpt.m' に入力されます。
'mlhdlc_filter_fixpt.m' が HDL コード生成に使用されます。
生成されたすべての固定小数点ファイルが出力ディレクトリ 'codegen/mlhdlc_filter/fixpt' に格納されます。
ワークフロー アドバイザーのログ ウィンドウで生成されたコードのリンクをクリックし、生成された固定小数点設計とラッパーを確認します。