このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
効率的な HDL コードを生成するための MATLAB コードの記述に関するガイドライン
HDL コード生成での MATLAB 設計要件
HDL コードを MATLAB® 設計から生成する場合、アルゴリズムをハードウェア面積と速度の要件を満たすアーキテクチャに変換します。
MATLAB 設計には次の要件があります。
設計内の MATLAB コードは HDL コード生成用にサポートされていなければなりません。
入力と出力は行列と構造体のいずれにもならないようにしなければなりません。
コマンド ラインからコードを生成する場合、次のコマンドを使用してコード生成の準備状態を確認します。
coder.screener('design_function_name')
Fixed-Point Designer™ からの関数のサポートなど、MATLAB 言語サポートのリファレンスについては、HDL コード生成でサポートされている関数を参照してください。
MATLAB コードの記述に関するガイドライン
より良い HDL コードを迅速に生成するためには、次のベスト プラクティスに従って MATLAB コードを設計してください。
入力データと出力データを直列化します。並列データ処理構造の場合、より多くのハードウェア リソースとピン数が必要になります。
sine、divide、modulo などの関数を使用するアルゴリズムの代わりに、加算および減算アルゴリズムを使用します。加算と減算では、使用するハードウェア リソースが少なくなります。
大規模な配列や行列の使用を避けてください。大規模な配列や行列を使用すると、ストレージのために多くのレジスタや RAM が必要になります。
コードを浮動小数点から固定小数点に変換します。浮動小数点データ型は、ハードウェアを効率よく実現するデータ型ではありません。HDL Coder™ には、浮動小数点を固定小数点に自動的に変換するワークフローがあります。
ループを展開すると、使用する面積が大きくなりますが、速度は向上します。展開するループを少なくしてループ ストリーミングの最適化を有効にすると、使用する面積を抑えられますが、スループットが低下します。