IP コアを含む場合の制約ファイルの順序 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: 制約の使用 (UG903)

Document ID
UG903
Release Date
2022-06-01
Version
2022.1 日本語

IP コアは、1 つまたは複数の XDC ファイルと共に配布されることが多く、そのような IP コアが RTL プロジェクト内で生成されると、その XDC ファイルもさまざまなデザイン コンパイル段階で使用されます。

たとえば、次の図では、プロジェクトに含まれている IP の 1 つが、1 つの XDC ファイルと共に配布されています。

図 1. IP ソースの XDC ファイル

デフォルトでは、IP の XDC ファイルがユーザー XDC ファイルの前に読み込まれます。この順序で処理することで、IP に XDC で参照できるクロック オブジェクトを作成できます。また、ユーザー制約が IP の後に評価されるので、IP コアで設定された物理制約をユーザー制約で上書きできます。ただし、ユーザーまたは別の IP で生成されたクロック オブジェクトに依存している IP コアは例外です (get_clocks -of_objects [get_ports clka] など)。この場合、IP の XDC がユーザー ファイルの後に読み込まれます。

この動作は、各 XDC ファイルに設定されている PROCESSING_ORDER プロパティで指定します。

  • EARLY: 最初に読み込む必要のあるファイル
  • NORMAL: デフォルト
  • LATE: 最後に読み込む必要のあるファイル

IP の XDC では、PROCESSING_ORDER プロパティは EARLY または LATE に設定されます。IP の XDC ファイルの PROCESSING_ORDER プロパティが NORMAL に設定されていることはありません。PROCESSING_ORDER 設定が同じユーザー XDC (または Tcl) ファイルは、Vivado IDE で表示されている順序で読み込まれます。グループ内の順序を変更するには、Vivado IDE の制約セット内でファイルの位置を移動するか、reorder_files コマンドを使用します。

PROCESSING_ORDER 設定が同じ IP の XDC ファイルは、IP コアをインポートまたは作成した順序で読み込まれます。この順序は、プロジェクトの作成後には変更できません。

ユーザー グループと IP XDC PROCESSING_ORDER グループの間の相対的な順序は、次のとおりです。

  1. EARLY とマークされているユーザー制約
  2. EARLY とマークされている IP 制約 (デフォルト)
  3. NORMAL とマークされているユーザー制約
  4. LATE とマークされている IP 制約 (クロック依存関係を含む)
  5. LATE とマークされているユーザー制約
注記: ユーザー制約の後に処理するため PROCESSING_ORDER が LATE に設定されている IP の XDC ファイルは、<IP_NAME>_clocks.xdc という名前になります。

次の図に、PROCESSING_ORDER プロパティの設定例を示します。

図 2. PROCESSING_ORDER プロパティの設定例

これと同等の Tcl コマンドは、次のとおりです。

set_property PROCESSING_ORDER EARLY [get_files wave_gen_pins.xdc]
注記: IP をアウト オブ コンテキストで合成すると、IP によりデフォルトのクロック定義を含む _ooc.xdc ファイルが必要に応じて供給されます。_ooc.xdc の USED_IN プロパティは synthesis out_of_context implementation (順序は関係なし) に設定されます。アウト オブ コンテキスト合成中は、_ooc ファイルはほかの制約よりも先に処理されます。