階層デザイン (HD) フローを使用すると、デザインを管理しやすい小型のブロックに分割して個別に処理できます。 Vivado® Design Suite では、この分割されたパーティション モジュールを残りのデザインから独立させて (アウト オブ コンテキスト OOC) インプリメンテーションできます。Vivado Design Suite での設計手法は、次のとおりです。
- モジュール解析
- モジュールを残りのデザインから独立させて、リソース使用量解析およびタイミング解析を実行します。ラッパーまたはダミー ロジックは必要ありません。モジュールのみを合成、最適化、配置配線します。フル デザインの場合と同様に、リソース使用量解析を実行し、タイミング レポートを調べ、配置結果を確認します。
モジュール解析フローでは、パーティション モジュールまたは IP コアはデザインの最上位から独立させて (OOC で) インプリメントします。モジュールは特定のパーツ/パッケージの組み合わせでデバイスの決まった位置にインプリメントされます。I/O バッファー、グローバル クロック、およびその他のチップ レベルのリソースは挿入されませんが、モジュール内にインスタンシエートすることはできます。この OOC インプリメンテーションの結果は、デザイン チェックポイント (DCP) ファイルとして保存できます。
- モジュール再利用
- モジュール解析フローからの配置配線済みモジュールを最上位デザイン内で使用し、検証された結果をロックします。デザインの特定のセクションでタイミング クロージャおよびその他の目標を達成したら、結果をそのまま再利用できます。
この OOC モジュールを再利用する場合、接続ロジックを正しくフロアプランするため、モジュール ピンとインターフェイス ロジックが配置された位置を把握しておく必要があります。インポートされた OOC モジュールの保持レベルは選択できるので、必要に応じて配置配線に少しの変更を加えることができます。このフローでは、OOC インプリメンテーション結果をデバイスのほかのエリアまたは別のデバイスに移動したり複製したりすることはサポートされていません。
モジュール再利用フローには、モジュール制約の構築メカニズムが異なる 2 つの方法があります。最上位デザインと 1 つまたは複数の再利用モジュールを統合する際は、コンテキスト制約 (フル デザインでのモジュールの接続方法を定義) およびタイミング制約が重要です。
モジュール再利用の 2 つの方法は、次のとおりです。
- ボトムアップ再利用
- 最上位デザインに関する知識がなくても、OOC インプリメンテーションを実行し、その OOC 結果を使用して最上位インプリメンテーションを実行できます。IP のような検証済みのモジュールを作成して配置配線まで実行し、1 つまたは複数の最上位デザインで再利用できます。このフローでは、最上位デザインの詳細はわかっていないので、コンテキスト制約はユーザーが指定する必要があります。コンテキスト制約では、モジュールの物理的な位置、モジュール I/O の配置の詳細、クロック ソースの定義、モジュールを出入りするパスのタイミング要件、および未使用 I/O に関する情報などを定義します。
- トップ ダウン再利用
- 最上位デザインおよびフロアプランで OOC インプリメンテーション制約が作成され、OOC インプリメンテーションは最上位デザインにより駆動されます。この方法はチーム デザインで有益で、デザイン内の 1 つまたは複数モジュールの合成およびインプリメンテーションを並行して実行できます。チーム メンバーはそれぞれの担当部分を個別にインプリメントし、その結果を統合デザインで再利用します。このフローでは最上位デザインの詳細 (ピン配置、フロアプラン、タイミング要件) がわかっており、OOC インプリメンテーションをガイドするのに使用されます。これにより、OOC モジュールのピン制約、最上位の入力/出力タイミング要件、境界最適化制約すべてを最上位デザインから作成できます。
どちらの方法を使用しても、デザイン全体ではなく、デザインに含まれるモジュールの 1 つのみをインプリメントするので、インプリメンテーションの実行時間を短縮できます。これにより、1 日に実行可能なコンパイルの回数を増加できるので、設計時間を削減でき、モジュール ベースでタイミングを検証して満たすことができます。残りのデザインが完成していなかったり、使用可能でない場合でも、モジュールの作業を進めることができます。