Main Content

HDL コード生成のワークフローの基礎

HDL Coder™ を使用して合成可能な VHDL® コード、Verilog® コード、および SystemVerilog コードを Simulink® モデルまたは MATLAB® アルゴリズムから生成できます。生成された HDL コードは FPGA プログラミング、ASIC のプロトタイピング、および量産設計で使用できます。HDL ワークフロー アドバイザーを使用して、生成された HDL コードを Xilinx®、Intel®、および Microchip ボードに展開できます。合成前に、速度と面積の設計の最適化を行い、クリティカル パスを強調表示し、リソースの使用率の推定を生成できます。

Workflow illustrating how to start from an HDL-compatible algorithm to HDL code deployed on the target.

MATLAB または Simulink 設計の開発

MATLAB および Simulink で HDL コード生成用の設計を開発できます。HDL Coder を使用して Simulink モデルまたは MATLAB アルゴリズムからコードを生成できます。HDL コード生成と互換性のある構文および関数を使用して MATLAB アルゴリズムを記述します。Simulink で設計を作成するために HDL 互換の Simulink ブロックを使用します。詳細については、HDL 互換 Simulink モデルの作成を参照してください。

HDL Coder プロジェクトのセットアップ

MATLAB アルゴリズムから HDL コードを生成するには、MATLAB 設計用の HDL Coder プロジェクトを作成してセットアップします。HDL コードを生成する HDL Coder プロジェクトに MATLAB ファイルを追加します。詳細については、プロジェクトの作成と設定を参照してください。

HDL コード アドバイザーを使用した HDL 互換性のチェック

HDL コード アドバイザーを使用して Simulink モデルの HDL 互換性をチェックできます。HDL コード アドバイザー ツールは、HDL コード生成との互換性に関して Simulink モデルまたはサブシステムの検証および更新を行います。モデル チェッカー ツールは、モデル コンフィギュレーション設定、端子およびサブシステム設定、ブロック設定、ネイティブ浮動小数点のサポートおよび業界標準のルールへの一致をチェックします。詳細については、HDL コード アドバイザーを使用した Simulink モデルの HDL 互換性のチェックを参照してください。

HDL コードの生成

HDL 互換の Simulink モデルまたは MATLAB アルゴリズムを設計した後に、HDL Coder を使用して HDL コードを生成できます。VHDL、Verilog、SystemVerilog などの目的のターゲット言語を選択できます。HDL Coder はコードを生成する前にモデルをコンパイルします。HDL Coder は、コンフィギュレーション セットおよび生成された HDL ファイルへのリンクを備えた進行状況を示すメッセージを MATLAB コマンド ウィンドウに表示します。

参考

生成された HDL コードの検証

HDL コードを生成した後に、Simulink モデルまたは MATLAB アルゴリズム用の HDL テスト ベンチを使用して設計をテストおよび検証できます。テスト ベンチには、信号ソースによって生成されたスティミュラス データ、コンポーネントのインスタンス化、およびテスト対象のエンティティを駆動するためのクロック、リセットおよびクロック イネーブルの入力が含まれています。

テスト ベンチの実行中、生成された出力データが検証のために HDL モデルの出力と比較されます。Mentor Graphics® ModelSim® シミュレーターを使用して、生成されたテスト ベンチおよびスクリプト ファイルのシミュレーションを実行できます。詳細については、生成された HDL コードの検証を参照してください。

ターゲット ハードウェアへの生成されたコードの展開

HDL Coder にはワークフロー アドバイザーが含まれています。このツールは、生成されたコードの Xilinx ボード、Intel ボード、および Microchip ボードでのプロトタイピングを自動化し、ASIC ワークフローおよび FPGA ワークフローの IP コアを生成します。HDL Coder を使用して、MATLAB 設計または Simulink 設計を次のように展開できます。

  • Intel FPGA や Xilinx FPGA ボードなどのスタンドアロン FPGA ボード上に展開。

  • FPGA I/O ボードを使用する Simulink Real-Time ターゲット マシンなど個別の FPGA やプロセッサをもつプラットフォーム上に展開。

  • Xilinx Zynq®、Intel SoC、または Microchip SoC などの System-on-Chip (SoC) プラットフォームにハードウェアおよびソフトウェアとして展開。

参考

速度と面積の設計の最適化

速度と面積の最適化手法を使用して、リソース使用率、クリティカル パス推定、タイミング要件などの設計要件を満たすことができます。最適化を適用して、よりハードウェア効率に優れた HDL コードを生成します。HDL Coder で面積と速度の最適化を使用して、リソースを節約してターゲット FPGA デバイスでの設計のタイミングを改善します。最適化によって、アルゴリズムの機能的な動作は変わりません。

最初に FPGA プラットフォームで最適化を有効にせずに HDL コードを生成して設計を合成します。設計がタイミング要件を満たさない場合、最適化を有効にして、設計が面積および速度の要件を満たすまでワークフローを再実行できます。最適化の各タイプの詳細については、HDL Coder での速度および面積の最適化を参照してください。

関連するトピック