デザインの移行

1 つのターゲット プラットフォームにインプリメントされたアプリケーションを別のプラットフォームに移行するには、ターゲット プラットフォーム間の違いとその違いがデザインに及ぼす影響について理解することが重要です。

主な注意事項:

  • リリースで変更があったか。
  • 新規ターゲット プラットフォームに別のターゲット プラットフォームが含まれているか。
  • カーネルを複数の SLR (Super Logic Region) に再分配する必要があるか。
  • デザインが新しいプラットフォームで必要な周波数 (タイミング) パフォーマンスを満たすか。

次の図に、このガイドおよびトピックで説明される移行フローを示します。

1: ターゲット プラットフォームの移行チャート


重要: デザインの移行を開始する前に、FPGA およびターゲット プラットフォームのアーキテクチャを理解することが重要です。

FPGA アーキテクチャの理解

デザインを新しいターゲット プラットフォームに移行する前に、FPGA アーキテクチャの基礎を理解しておく必要があります。次の図に、ザイリンクス FPGA デバイスのフロアプランを示します。理解する必要のあるコンセプトは、次のとおりです。

  • SSI デバイス
  • SLR
  • SLR の配線リソース
  • メモリ インターフェイス
2: 4 つの SLR 領域を含むザイリンクス FPGA の物理的な表示


ヒント: 上記の FPGA フロアプランは、各 SLR に DDR メモリ インターフェイスを含む 4 つの SLR がある、SSI デバイスのものです。

スタックド シリコン インターコネクト デバイス

SSI デバイスでは、シリコン インターコネクトを介して複数のシリコン ダイが一緒に接続され、1 つのデバイスにパッケージされます。SSI デバイスを使用すると、かなり多くの接続が提供されるので、複数のダイ間でバンド幅の大きな接続ができるようになります。また、レイテンシもかなり低くなり、消費電力も複数の FPGA またはマルチチップ モジュールのいずれかのアプローチ方法よりもかなり低くなるほか、大量のインターコネクト ロジック、トランシーバー、およびオンチップ リソースを 1 つのパッケージに統合できるようになります。SSI デバイスの利点については、『ザイリンクスのスタックド シリコン インターコネクト テクノロジで飛躍的な FPGA 容量、帯域幅、電力効率を実現』 (WP380: 英語版日本語版) を参照してください。

Super Logic Region

SLR (Super Logic Region) は、SSI デバイスに含まれる 1 つの FPGA ダイ スライスです。複数の SLR コンポーネントがアセンブルされて、SSI デバイスになります。各 SLR には、ほとんどのザイリンクス FPGA デバイスに使用される能動回路が含まれます。この回路には、次が多く含まれます。

  • LUT
  • レジスタ
  • I/O コンポーネント
  • ギガビット トランシーバー
  • ブロック メモリ
  • DSP ブロック

1 つまたは複数のカーネルを SLR 内にインプリメントできます。1 つのカーネルを複数の SLR にまたがってインプリメントすることはできません。

SLR の配線リソース

FPGA にインプリメントされるカスタム ハードウェアは、オンチップ配線リソースを介して接続されます。SSI デバイスの配線リソースには、次の 2 種類があります。

SLR 間リソース
SLR 間配線リソースは、ハードウェア ロジックの接続に使用される、高速リソースです。Vitis テクノロジでは、カーネルをインプリメントする際にハードウェア エレメントを接続するのに最適なリソースが自動的に選択されます。
SLL (Super Long Line) リソース
SLL は、1 つの領域から次の領域へロジックを接続するために使用される SLR 間の配線リソースです。これらの配線リソースは、SLR 間配線よりも遅くなります。ただし、カーネルが 1 つの SLR に配置され、そこに接続される DDR が別の SLR にある場合、Vitis テクノロジには自動的に専用ハードウェアをインプリメントして、パフォーマンスに影響なく SLL 配線リソースが使用されるようにします。配置の管理に関する情報は、カーネル配置の変更 を参照してください。

メモリ インターフェイス

SLR にはそれぞれ 1 つまたは複数のメモリ インターフェイスが含まれます。これらのメモリ インターフェイスは DDR メモリの接続に使用され、ホスト バッファーのデータがカーネル実行前にコピーされます。カーネルは、それぞれデータを DDR メモリから読み込んで、結果を同じ DDR メモリに書き戻します。メモリ インターフェイスは FPGA のピンに接続し、メモリ コントローラー ロジックを含めます。

ターゲット プラットフォームの理解

Vitis テクノロジでは、ターゲット プラットフォームのとはカスタム ロジックまたはアクセラレータが追加される前に FPGA にインプリメントされるハードウェア デザインのことです。ターゲット プラットフォームでは FPGA の属性が定義され、次の 2 つの領域が含まれます。

  • カーネルおよびデバイス マネージメント ロジックを含むスタティック領域。
  • アクセラレーションされたカーネルのカスタム ロジックが配置されるダイナミック領域。

次の図に、ターゲット プラットフォームが適用された FPGA を示します。

3: 4 つの SLR 領域を含む FPGA 上のターゲット プラットフォーム


ターゲット プラットフォーム (変更できないスタティック領域) には、FPGA を動作させ、ダイナミック領域とのデータ転送に必要なロジックが含まれます。スタティック領域 (図のグレーの部分) は 1 つの SLR 内に含まれることもあれば、上記の例のように複数の SLR にまたがっていることもあります。スタティック領域には、次が含まれます。

  • DDR メモリ インターフェイス コントローラー
  • PCIe® インターフェイス ロジック
  • XDMA ロジック
  • ファイアウォール ロジックなど

ダイナミック領域は、上記の図の白色の部分です。この領域には、ターゲット プラットフォームのリコンフィギャラブル コンポーネントすべてが含まれ、すべてのアクセラレータ カーネルが配置されます。

スタティック領域はデバイスで使用可能なハードウェア リソースの一部を使用するので、ダイナミック領域にインプリメントされるカスタム ロジックではその残りのリソースしか使用できません。上記の例では、ターゲット プラットフォームは FPGA の使用可能な 4 つの DDR メモリ インターフェイスすべてを定義しています。これには、DDR インターフェイスで使用されるメモリ コントローラー用のリソースが必要になります。

各ターゲット プラットフォームのダイナミック領域にインプリメントできるロジックの量については、Vitis 2019.2 ソフトウェア プラットフォーム リリース ノート を参照してください。これについては、カーネル配置の変更 でも説明しています。