速度と面積の最適化
リソースの共有、ストリーミング、パイプライン、RAM マッピングによる改善
ターゲット ハードウェアに対し、速度と面積の最適化を使用して、タイミングおよび面積の要件を満たす HDL コードを MATLAB® 関数から生成します。面積の最適化は、設計のリソース使用率を削減します。速度の最適化は、クリティカル パスを最適化することで設計がより高い周波数で実行されるように、ターゲット FPGA での設計のタイミングを改善します。HDL Coder™ に関する最適化の各タイプの詳細については、HDL Coder での速度および面積の最適化を参照してください。
関数
coder.hdl.loopspec | Unroll or stream loops in generated HDL and SystemC code |
coder.hdl.pipeline | MATLAB 式の出力にパイプライン レジスタを挿入 |
hdl.npufun | Apply neighborhood processing and element-wise operations to an incoming image or matrix for frame-to-sample conversion |
hdl.iteratorfun | Apply iterative operation to an incoming image or matrix for frame-to-sample conversion |
トピック
最適化の基礎
- HDL Coder での速度および面積の最適化
さまざまな速度および面積の最適化と、設計の最適化方法を確認。 - クロック イネーブルの速度の指定
クロック イネーブルを設計のベース速度または入力データ速度で実行するように設定します。 - クロック イネーブルの最小化
クロック イネーブルのないレジスタのコードを生成。 - 定数乗算器の最適化
定数乗算器の最適化とは何か、およびこの最適化を指定する方法。
面積の最適化
- 永続配列と dsp.Delay の RAM へのマッピング
HDL ワークフロー アドバイザーで [MATLAB から HDL へのワークフロー]、[コード生成]、[最適化] タブを選択します。 - ROM への行列のマッピング
行列定数を ROM にマッピングするには、次の条件があります。 - MATLAB コードの RAM マッピング
RAM マッピングとは、MATLAB コードのストレージと遅延の要素を RAM にマッピングする面積の最適化です。 - MATLAB コードの RAM マッピングの比較
hdl.RAM
、dsp.Delay
、永続配列変数およびユーザー定義 System object™ のプライベート プロパティは RAM にマップできますが、異なる属性をもちます。 - Map Matrices to Block RAMs to Reduce Area
This example shows how to use the RAM mapping optimization in HDL Coder™ to map persistent matrix variables to block RAMs in hardware. - Loop Streaming to Reduce Area
This example shows how to use the design-level loop streaming optimization in HDL Coder™ to optimize area.
速度の最適化
- MATLAB コードのパイプライン化
パイプラインは、レジスタをハードウェアの戦略的な場所に挿入してクリティカル パスを分割することで、最大クロック速度の向上に役立ちます。 - MATLAB 式のパイプライン
MATLAB 式の出力へのレジスタの挿入 - MATLAB ループの最適化
面積または速度のためのループの最適化 - 分散型パイプライン方式
分散型パイプライン方式の定義、利点およびコスト - クロックレート パイプライン
パイプライン レジスタを低速のデータ レートではなく、高速のクロック レートで挿入する
I/O の最適化
- HDL Code Generation from Frame-Based Algorithms
Generate synthesizable HDL code from frame-based algorithms by using the HDL Coder frame-to-sample conversion to target sample-based and pixel-based hardware and reduce I/O consumption and prototyping times. - Use Neighborhood, Reduction, and Iterator Patterns with a Frame-Based Model or Function for HDL Code Generation
Generate HDL code from a frame-based design that models neighborhood, reduction, and iterator patterns.