-
Sources ウィンドウの Hierarchy ビューで、Constraints フォルダーの下にあるターゲットの XDC ファイル (uart_top.xdc) を開きます。
この XDC ファイルで、次の 2 つの制約に注目します。
-
create_clock
制約 (1 行目および 2 行目)。 - クロック オブジェクト周期の値に依存する
set_max_delay
制約 (14 行目)。
注記: 上の図の制約は見やすいように編集されているので、実際の XDC ファイルでは行番号が異なる場合があります。 -
- 新しい IP 定義をパッケージする前に、
create_clock
制約をすべて確認します。作成したクロックが IP (GT) の内部クロックである場合、または IP に入力バッファー (IBUF) が含まれている場合、
create_clock
制約はローカル クロックの定義に必要なので、IP XDC ファイルに残しておく必要があります。IP の内部クロックおよびローカル クロック以外のクロックは、親デザインによりクロックが供給されるので、次の手順でそれらのクロックを IP XDC ファイルから OOC XDC ファイルに移動します。
この例では、デザインの XDC ファイルの 1 行目と 2 行目の
create_clock
制約を OOC XDC ファイルに移動します。パッケージする IP を IP カタログからインスタンシエートする場合、クロック定義は親デザインから IP に継承されます。set_max_delay
制約が、定義されているクロック (get_clocks –of_objects
) の PERIOD プロパティに依存している点にも注目してください。この依存関係は、IP および最上位デザインの制約の処理順序の影響を受けます。AMD Vivado™ IDE でカスタム IP をデザインにインスタンシエートすると、デフォルトでは、IP の XDC ファイルが最上位デザインの XDC ファイルより前に処理されます。これは、IP の XDC ファイルの PROCESSING_ORDER プロパティが EARLY に設定されているからです。
デフォルトでは、最上位デザインの XDC ファイルは NORMAL に設定されます。つまり、IP 制約の XDC ファイルがユーザーが作成した最上位デザインの制約より先に処理されます。
set_max_delay
制約はクロックのPERIOD
に依存しているので、IP 制約を処理した後にクロック定義すると、エラーになります。この問題を解決するには、UART IP の XDC ファイルを LATE に設定します。ヒント: XDC のファイル名に「_clock」が付いているAMD IP は、すべて LATE に設定されます。