AN 941: デザインブロック再利用チュートリアル: インテル® Agilex™ FシリーズFPGA開発ボード用

ID 709312
日付 12/10/2021
Public
ドキュメント目次

1.1. チュートリアルの概要

このチュートリアルでは、再利用可能なパーティションのデベロッパー (Developer) と、再利用可能なパーティションのコンシューマー (Consumer) の両方の、コア・パーティションとルート・パーティションの再利用フローについて説明します。 大まかに言えば、コア・パーティションとルート・パーティションの再利用フローは類似しています。両方のフローとも、デザイン・パーティションを .qdb ファイルとして保持および再利用します。デザイン・パーティションDeveloperは、Developerプロジェクトでブロックを定義、コンパイル、および保存します。パーティションConsumerでは、1つ以上のConsumerプロジェクトで、独自のロジックとともにブロックをインポートして再利用します。

コア・パーティションの再利用

コア・パーティションの再利用によって、Developerは再利用するためにパーティションを作成、保存、およびエクスポートできます。Developerはコア・パーティションを .qdb としてエクスポートします。その後、Consumerはそのコア・パーティションを別のプロジェクトで再利用できます。コア・パーティションには、LUT、フリップフロップ、M20Kメモリー、DSPブロックなどのコアリソースのみを含めることができます。このフローを使用するには、Consumerプロジェクトのインスタンスに .qdb を割り当てます。

図 1. コア・パーティションの再利用の例

ルート・パーティションの再利用

ルート・パーティションの再利用により、デバイス周辺および関連するコアロジックの合成または最終スナップショットをエクスポートできます。ペリフェラル要素をエクスポートして再利用するには、ルート・パーティションをエクスポートします。周辺リソースには、デバイス周辺のすべてのハード化されたIP (汎用I/O、PLL、高速トランシーバー、PCIe、外部メモリー・インターフェイスなど)、および関連するコアロジックが含まれます。Developerは、Consumerによるコアロジック開発用の領域も予約します。Developerは、この予約領域をパーティションで定義します。Developerは、少なくともモジュールのポート接続をブラック・ボックス・ファイルとして定義します。

図 2. ルート・パーティションの再利用の例

合成または最終パーティションを .qdb としてエクスポートすると、.qdb はそのコンパイル段階の結果を保持します。その後、そのパーティションを別のプロジェクトで再利用すると、Compilerはそのパーティションの .qdb からの以前のコンパイル結果を再利用し、それによってDeveloperの以前のデザイン作業を活用します。

スナップショット再利用の制限

Compilerは、コンパイルの各段階で、パーティションごとにコンパイル結果のスナップショットを生成します。合成後またはFitterの最終段階の後で、パーティションを保存して再利用できます。同じファミリー内の異なるデバイスを対象とするプロジェクトでスナップショットを再利用する場合、再利用できるのは、合成されたスナップショットのみであり、最終スナップショットではありません。次の追加の制限は、同じファミリー内のデバイス間でのスナップショットの再利用に適用されます。

表 1.  ファミリー内のデバイス間でのスナップショット再利用に関する制限
スナップショット再利用のシナリオ 結果
同じファミリー内のデバイス間で最終スナップショットをインポートする。 Fitterは、Consumerプロジェクトでのコンパイル中にエラーを発行します。
異なるファミリーのデバイス間でSynthesizedスナップショットをインポートする。
AUTOデバイスを対象とするプロジェクトからインポートまたはプロジェクトへエクスポートする。 Compilerはこのシナリオをサポートし、対象デバイスが同じファミリー内にある場合でもエラーを発行しません。
root_partition (デバイス周辺) をインポートする。 インポートされたパーティションに無効なFitter割り当て (Logic Lock領域など) が含まれていない限り、Compilerはこのシナリオをサポートします。無効なFitter割り当ては、予期しない結果を生成します。
デバイス周辺の一部を含むコア・パーティションをインポートする。 ペリフェラル要素を含むコア・パーティションをエクスポートしようとすると、予期しない動作が発生する可能性があります。
読み出し専用パーティションをインポートする。 読み出し専用パーティションをインポートしようとすると、予期しない動作が発生する可能性があります。

チュートリアルには、次のモジュールが含まれています。