HDL オブジェクトを独立階層モジュールとしてアウト オブ コンテキスト (OOC) フローを実行することにより、ボトムアップ フローを設定できます。OOC フローの概要については、 『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』 (UG892) を参照してください。
OOC フローは、次のように実行されます。
- 下位 OOC モジュールは最上位から独立させて実行され、独自の制約があります。
- OOC モジュールは必要に応じて実行できます。
- OOC モジュールを一度合成したら、その run の RTL または制約を変更しない限り、再度合成を実行する必要はありません。
- 最上位を実行すると、下位の OOC run はブラック ボックスとして処理されます。
IP が OOC モードで合成されると、最上位合成 run でこれらの IP のブラック ボックスが推論されます。このため、最上位合成制約に含まれる IP 内部のピン、ネット、セルなどのオブジェクトは参照できません。インプリメンテーションでは、Vivado Design Suite によって IP の DCP からのネットリストが、最上位デザイン ファイルの合成で生成されたネットリストとリンクされ、IP ブラック ボックスが解決されます。インプリメンテーションで生成された IP の XDC 出力ファイルがユーザー制約と共に適用されます。IP 内部のものを参照する制約がある場合、合成中にこれに関する警告が表示されますが、インプリメンテーションで解決されます。
これにより、合デザイン全体を合成する必要がなくなるので、最上位の実行時間を大幅に短縮できることがあります。
OOC run 用にモジュールを設定するには、[Sources] ウィンドウの [Hierarchy] ビューでモジュールを右クリックして Set As Out-Of-Context for Synthesis をクリックし、OK をクリックします。
[Set as Out-of Context for Synthesis] ダイアログ ボックスには、次の情報およびオプションが表示されます。
- [Source Node]
- OOC として設定するモジュール。
- [New Fileset]
- 新しいファイルセット名。変更可能です。
- [Generate Stub]
- スタブ ファイルを作成する場合にオンにします。
- [Clock Constraint File]
- 新しい XDC テンプレートが作成されるようにするか、ドロップダウン リストから既存の XDC ファイルを選択してその XDC ファイルがこのファイルセットにコピーされるように設定します。この XDC ファイルには、OOC モジュールのすべてのクロック ピンのクロック定義が含まれます。
OOC は自動的に設定されて実行されます。作成された OOC run は [Design Runs] ウィンドウに新しい run として表示されます。OOC として設定したモジュールは、[Sources] ウィンドウの [Compile Order] ビューで [Block Sources] の下に表示されます。
Out-of-Context フローを設定すると、新しい run が設定されます。
このオプションを実行するには、run を右クリックして Launch Runs をクリックします (合成 run の実行 を参照)。これにより下位モジュールが最上位モジュールとして設定され、I/O バッファーを作成せずに合成が実行されます。
合成で生成されたネットリストが保存され、スタブ ファイルを作成するオプションをオンにした場合は後で使用できるようにスタブ ファイルが作成されます。スタブ ファイルは、ブラック ボックス属性が設定された、入力と出力を持つ下位モジュールです。
最上位モジュールを再実行すると、ボトムアップ合成によりスタブ ファイルがフローに挿入され、下位モジュールがブラック ボックスとしてコンパイルされます。インプリメンテーション run では下位ネットリストが挿入され、デザインを完了します。