デフォルトでは、IP は最上位デザインから独立させてアウト オブ コンテキスト (OOC) で合成されます。アウト オブ コンテキスト フローを使用する場合は、Vivado 合成時に順序ロジックのタイミング用に OOC フロー専用の XDC ファイルが必要です。この XDC ファイルには、ユーザー IP または別の IP の最上位のクロック定義が含まれます。
カスタム IP を作成するときは、IP をスタンドアロンで合成するときにこれらのクロック定義が使用されるように OOC 用の XDC ファイルを含めることをお勧めします。
OOC フローの詳細は、次の資料を参照してください。
_ooc
が付いていますが、OOC の XDC ファイルであるかどうかは、ファイル名ではなく USED_IN
ファイル プロパティで判別されます。通常のデザインでは、IP は最上位デザインから必要な制約の一部を受け取ります。たとえば、カスタム IP とデバイス境界の間に直接インターフェイスがない場合、通常はその親デザインからの入力クロック定義に依存します。OOC の XDC ファイルには、これらの入力クロック定義のみが含まれます。これは、IP を最上位制約から独立させて合成する場合に、クロック定義が存在するようにするためです。これは必須ではありませんが、その他の制約タイプを追加することはお勧めしません。デザイン全体をインプリメントするときは、IP ネットリストは最上位ネットリストとリンクされるので、OOC の XDC は必要ありません。
次の場合は、OOC の XDC ファイルではなく、IP の XDC ファイルに IP の入力クロック定義を含める必要があります。
- IP に入力バッファーに接続されたクロック定義が含まれる場合
- IP にその IP 内のクロック定義が含まれる場合
OOC モードでは、Vivado 合成で I/O バッファーは挿入されません。
- カスタム IP ポートに入力バッファーがインスタンシエートされている場合は、IP の XDC ファイルに入力クロック定義を含めたままにしておきます。
- 入力クロック定義がフリップフロップや GT などの IP の内部エレメントで定義される場合も、IP の XDC ファイルに入力クロック定義を含めておきます。
- この 2 つのカテゴリに当てはまらない場合は、OOC の XDC ファイルにクロック定義を移動してください。
OOC の XDC ファイルを作成したら、USED_IN
プロパティを out_of_context
に設定して、XDC ファイルが OOC フローの場合にのみ処理されるようにします。
USED_IN
プロパティは {synthesis implementation out_of_context}
にする必要があります。out_of_context
のみを設定すると、合成およびインプリメンテーションでは使用されません。