ブロックベース・デザイン ユーザーガイド: インテル® Quartus® Prime プロ・エディション

ID 683247
日付 5/07/2018
Public
ドキュメント目次

1.8. トップダウン・デザイン、ボトムアップ・デザイン、およびチームベース・デザインのフロー

トップダウンのデザインフローでは、デザインをトップレベル・プロジェクトでプランニングしてから、そのデザインを下位レベルのデザインブロックに分割します。デベロッパーまたはIPプロバイダーによっては、下位レベルのデザインブロックのHDLコードを個別に作成して検証できますが、一人のチームリーダーがデザイン全体の実装プロジェクトを管理します。

ボトムアップのデザインフローでは、下位レベルのデザインブロックを互いに独立して作成し、そのブロックをトップレベル・プロジェクトに統合します。ボトムアップのデザインフローを実装するために、個々のデベロッパーやIPプロバイダーは、デザインの配置とルーティングの最適化を別々のプロジェクトで完了してから、各下位レベルのブロックを1つのトップレベル・プロジェクトで再利用できます。これらの方法論は、他の場所のデベロッパーのデザインフロー、またはサードパーティーがデザインブロックを作成する場合のデザインフローに役立ちます。

しかし、デザインブロックをボトムアップ・デザイン・フローで独立して開発する場合、個々のデベロッパーは全体的なデザインに関するすべての情報を持っていなかったり、ブロックが他のブロックとどのように接続するかを理解していなかったりすることがあります。この情報がないと、システム統合中に、タイミング・クロージャーやリソースの競合などの問題が発生する可能性があります。このような問題を軽減するには、1つのプロジェクト内で最適化するか、または別々のプロジェクトで独立してブロックを最適化するかして、トップレベル・プロジェクトのデザインをプランニングして、それ以降のトップレベルの統合を行います。

ボトムアップ・デザイン手法を使用するチームは、デザイン・パーティションの配置とルーティングを個別に最適化できます。ただし、別のプロジェクトでデザイン・パーティションを最適化すると、次のような問題が発生する可能性があります。

  • デザイン内の他のパーティションについての情報なしでパーティションを個別にコンパイルすると、フルデザインのためのタイミング・クロージャーを実現するのが困難になる可能性があります。この問題を回避するには、モジュールの境界にポートを常に登録するなど、慎重なタイミングの予算作成とデザインルールの遵守が必要です。
  • デザインでは、リソースの競合や過度の使用を避けるために、リソースのプランニングと割り当てが必要です。Logic Lockリージョンを使用したフロアプランは、独立した インテル® Quartus® Primeプロジェクトで各パーツを個別に開発しながらリソースの競合を回避するのに役立ちます。
  • 個別の インテル® Quartus® Primeプロジェクトを使用する場合は、割り当てとタイミング制約の一貫性を維持することがより困難になります。チームリーダーは、トップレベル・デザインおよびデベロッパーが個別のプロジェクトで定義し、トップレベル・プロジェクトで再利用する 割り当てと制約に一貫性があることを保証する必要があります。

独立して開発したパーティションはすべて、共通のリソースセットを共有する必要があります。異なるパーティション間で共通のリソースを共有するときに発生する可能性のある問題を最小限に抑えるには、単一のプロジェクト内またはトップレベルのプロジェクトのコピー内に、フル・デザイン・レベルの制約を使用してパーティションを作成して、リソースが重複しないようにします。パーティションとLogic Lockリージョンの正しい使用は、トップレベル・デザインに統合する際に発生する可能性のある問題を最小限に抑えるのに役立ちます。

各デベロッパーは、同じプロジェクトのコピーを使用して、トップレベル・デザイン・フレームワークの一貫したビューを確保する必要があります。別のデベロッパーがデザインのタイミングのクリティカルな部分を提供し、最適化する場合、各デベロッパーは、タイミング・クロージャーを維持し、統合中に最良の結果を達成するために、完全なトップレベル・デザイン・フレームワークを備えている必要があります。

デベロッパーがトップレベル・プロジェクトのデザインに関する情報を持っていない場合、チームリーダーは、少なくとも特定の Intel® FPGAデバイスの部品番号と、必要な物理的なタイミング制約を提供する必要があります。デベロッパーは、別のプロジェクトからパーティションを作成してエクスポートできます。デベロッパーが情報を欠いている場合、デベロッパーはクリティカル・パスに追加のタイミングマージンを制限または作成する必要があります。この手法は、パーティションを他のブロックと統合する際のタイミングの問題の可能性を減らすのに役立ちます。