FPGA 設計および協調設計 - AMD System Generator および HDL Coder - MATLAB & Simulink

特定分野の専門家およびハードウェア エンジニアは、MATLAB および Simulink を使用して、AMD® FPGA、Zynq®-7000 SoC、Zynq UltraScale+ RFSoC/MPSoC、および Versal® 適応型 SoC 上に展開するためのプロトタイプおよび量産アプリケーションを開発しています。

MATLAB と Simulink を使用すると、次のことが可能になります。

  • システムレベルでのハードウェア アーキテクチャのモデル化
  • コードを記述しない FPGA または SoC のプログラミング
  • MATLAB および Simulink 製品を使用した FPGA または SoC のシミュレーションおよびデバッグ
  • FPGA または SoC 統合用の量産 HDL および C コードの生成

「当社は専門分野について十分な経験がありますが、FPGA 統合の経験はほとんどありません。Simulink と HDL Coder を使用することで、自社製品のためのインテリジェントなアルゴリズムの設計に注力できるようになり、設計したアルゴリズムを特定の FPGA で簡単に実行できるようになりました。」

モデリングとシミュレーション

モデルベースデザインに Simulink を使用することにより、ハードウェア実装を高位でモデル化し、システムコンテキストでシミュレーションすることで、AMD FPGA および Zynq SoC アプリケーションの開発時間を短縮できます。また、リソースの使用を効率化するために固定小数点 (30:45)に量子化したり、合成可能なネイティブ浮動小数点 (9:19) HDL を生成して FPGA をより簡単にプログラムしたりすることもできます。

HDL Coder は、信号処理無線通信モーターと電力制御、および画像/動画処理などのアプリケーション用に、HDL 対応の Simulink Function および MATLAB Function ブロックから直接合成可能な VHDL® または Verilog® を生成します。

AMD の Vitis Model Composer は、システムレベルのシミュレーションとハードウェアへの展開を可能にするために AMD 固有のブロックを Simulink に追加します。Model Composer ブロックをネイティブ Simulink ブロックと統合して HDL コードを生成することができます。

SoC Blockset を使用すると、メモリの使用やスケジューリング/OS の影響など、Zynq UltraScale+ MPSoC および RFSoC デバイスのハードウェアとソフトウェアの相互作用のパフォーマンスを解析することができます。

モデリングとシミュレーション

同じ設計に浮動小数点演算と固定小数点演算を混在させます。この三角関数演算は、標準の AMD FPGA リソースを使用して浮動小数点で実装されます。


MATLAB および Simulink でのライブ解析を使用した、AMD Zynq SoC ソフトウェア無線プラットフォームで実行されている無線アプリケーションのプロトタイプ。

MATLAB および Simulink でのライブ解析を使用した、AMD Zynq SoC ソフトウェア無線プラットフォームで実行されている無線アプリケーションのプロトタイプ。

FPGA ベースおよび Zynq SoC ベースのプラットフォームにおけるプロトタイピング

プロトタイピングを開始するには、サポートパッケージをダウンロードして、ライブ無線のソフトウェア無線ブラシレス DC モーター制御、ライブカメラ入力を使用した動画および画像処理、またはディープラーニング推論処理用の、事前に構成された AMD FPGA および Zynq SoC ベースの評価プラットフォームをターゲットにすることができます。HDL Coder では、Simulink から直接 FPGA または SoC をプログラミングする手順が用意されています。HDL コードを書く必要はありません。

複数の手法から選択して、MATLAB および Simulink から直接 FPGA プロトタイプをデバッグできます。IP を挿入してAXI レジスタの読み取りまたは書き込みを行い (5:40)、MATLAB とオンボードメモリ位置の間で大きな信号または画像ファイルを転送するか、MATLAB で解析できるよう、内部の信号からFPGA へデータをキャプチャするか、あるいは、MATLAB または Simulink テストベンチを使用して FPGA インザループ (2:52)を実行している評価キットでアルゴリズムをテストします。


量産統合のための HDL および IP コアの生成

HDL コード生成機能の HDL ブロックプロパティをサポートするほとんどのブロックでは、パイプライン挿入、リソース共有、RAM マッピングなどのカスタムハードウェア実装オプションを指定することができます。HDL コード生成の設定を使用すると、最適化、リセットスタイル、クロックイネーブル、命名規則などをグローバルにカスタマイズすることができます。Simulink で実装アーキテクチャを設計する機能とともに、AMD FPGA および Zynq SoC デバイスの速度と面積の最適化を完全に制御することができます。

Vivado® の非アルゴリズム コンテンツと統合するために、可読性に優れた論理合成可能な RTL を生成することができます。Zynq 用の HDL Coder サポートパッケージをインストールしている場合は、Arm® プロセッサやその他のデバイス IP と通信するための各種の AXI プロトコルを使用する IP コア ラッパーを生成することができます。Zynq 用の Embedded Coder サポートパッケージを使用して、Arm アプリケーション プロセッサをプログラムするためのドライバおよびアプリケーション ソフトウェアを生成することができます。

生成された HDL および IP コアのレポート

生成された HDL および IP コアのレポート。IP コアの生成レポートには、AXI レジスタおよびプロトコルへの設計の入出力マッピングが記載されます。


ターゲット プラットフォームのサポートの拡張

HDL を生成できる I/O マッピングを伴うプレースホルダーを使用して、カスタムリファレンス設計を定義します。

ターゲット プラットフォームのサポートの拡張

MathWorks が提供するサポートパッケージに含まれていない FPGA ベースまたは SoC ベースのプラットフォームに展開する必要がある場合は、リファレンス設計を作成またはダウンロードして、HDL Coder にプラグインすることができます。SoC Blockset または Vivado を使用して、リファレンス設計を開発することができます。AMD FPGA または SoCベースのプラットフォーム用のサードパーティのリファレンス設計は、File Exchange で Analog Devices®Avnet®SpeedgoatTrenz Electronics などのプロバイダーから入手することができます。