IP サブシステム デザインが完成し、検証されたので、次に最上位 HDL デザインに含めるための準備が必要です。サブシステム デザインは最上位デザインにモジュールまたはブロックとして含めることができ、また最上位デザインの唯一のブロックにすることも可能です。どちらの場合も、サブシステム デザインの HDL ファイルを生成する必要があります。
-
Sources ウィンドウで最上位デザイン subsystem_1 を右クリックし、Generate
Output Products をクリックします。
このコマンドにより、サブシステム デザインで使用されている IP コアのソースおよび関連制約ファイルが生成されます。
サブシステム デザインに関連付けられているさまざまな出力ファイルを再生成するための Generate Output Product ダイアログ ボックスが開きます。
Vivado IP インテグレーターでは、ブロック デザインの合成方法を選択できます。Synthesis Options には次の 3 つのオプションがあります。
- Global
- ブロック デザインをアウト オブ コンテキスト ブロックとしてではなく、最上位プロジェクトの一部として合成します。
- Out-of-Context per IP
- ブロック デザインの各 IP を個別に、アウト オブ コンテキストのブロック デザインまたは最上位デザインとして合成します。各 IP が不必要に合成されるのを防ぐことはできますが、アップデートするときは、各 IP をアップデートして再合成する必要があります。
- Out-of-context per Block Design
- ブロック デザイン全体を一度に合成しますが、グローバル デザインまたは最上位デザインからはアウト オブ コンテキストで合成します。最上位デザインの合成時にブロック デザインが不必要に合成されるのを防ぐことはできますが、その中に含まれる IP がアップデートされた場合は、ブロック デザインをアップデートして再合成する必要があります。
- デフォルト設定の Out of context per IP をそのまま使用します。
-
Generate をクリックして、すべての出力ファイルの生成します。
または、Flow Navigator で、IP インテグレーターのドロップダウン リストの下にある Generate Block Design をクリックします。
Generate Output Products ダイアログ ボックスが開くので、生成する出力ファイルを確認します。
- OK をクリックします。
- 次の Design Runs ウィンドウに示すように、デザイン内の各 IP のアウト オブ コンテキスト (OOC) run が実行されます。OOC run が完了するまで数分かかる場合があります。
- OOC run が完了したら、Sources ウィンドウで最上位サブシステム デザイン subsystem_1 を右クリックし、Create HDL Wrapper クリックします。
Create HDL Wrapper ダイアログ ボックスが開き、次の 2 つのオプションが示されます。
- Copy generated wrapper to allow user edits
-
ラッパー ファイルを手動で変更する場合は、このオプションを選択します。ブロック デザインは、プロジェクト全体のサブセットであることが一般的です。
その場合は、ラッパー ファイルを変更して、そのラッパーにほかのデザイン コンポーネントをインスタンシエートする必要があります。ブロック デザインの I/O インターフェイスが変更された場合、その変更を反映させるため、ラッパー ファイルを手動でアップデートする必要があります。この方法で作成されたラッパー ファイルは、<project_name>.srcs/sources_1/imports/hdl ディレクトリに保存されます。
- Let Vivado manage wrapper and auto-update
- Vivado IDE で必要に応じてラッパー ファイルが生成およびアップデートされるようにする場合は、このオプションを選択します。この方法で作成されたラッパー ファイルは、ブロック デザインの出力ファイルが生成されるたびに、最新の変更を反映させるため自動的にアップデートされます。ラッパー ファイルは、<project_name>.srcs/sources_1/bd/<bd_name>/hdl ディレクトリに保存されます。
- デフォルトの Let Vivado manage
wrapper and auto-update をオンのままにします。
-
OK をクリックします。
Vivado IDE で subsystem_1 ブロック デザインの最上位 HDL ラッパーが作成され、デザイン ソースに追加されます。
最上位 HDL ソースがプロジェクトに追加されたので、インプリメンテーションの前にプロジェクトにデザイン制約を追加する必要があります。
- Flow Navigator で Add
Sources をクリックします。
Add Sources ウィザードが表示されます。
- Add or Create Constraints をオンにし、Next をクリックします。
-
Add or Create
Constraints ページで をクリックして Add Files をクリックするか、Add Files ボタンをクリックします。
Add Constraints Files ダイアログ ボックスが開きます。
- <Extract_Dir> ディレクトリにある top_ipi.xdc file ファイルを選択し、OK をクリックします。
- Add or Create Constraints ページで Copy constraints files into project がオンになっていることを確認します。
-
Finish をクリックし、制約をプロジェクトに追加します。
これで最上位デザインの合成、インプリメンテーション、ビットストリーム生成が実行できるようになります。
- Flow Navigator で Generate
Bitstream をクリックします。
1 回のクリックで、合成、インプリメンテーション、ビットストリーム生成に必要な手順がすべて実行されます。
No Implementation Results Available ダイアログ ボックスが開きます。
- Yes[Yes] をクリックします。
- Launch Runs ダイアログ ボックスが開きます。ここで、run 実行のためのさまざまなオプションを指定できます。
- OK をクリックします。
-
Vivado Design Suite でビットストリームが生成されると、次の図に示す Bitstream Generation
Completed ダイアログ ボックスが開きます。
- OK をクリックします。
-
Timing ウィンドウで、次の図に示すようにデザインでタイミングが満たされていることを確認します。
ヒント: タイミング サマリには、デザインのプライマリ入力および出力ポートの入力および出力遅延がないことに関連した警告もレポートされます。その場合は、set_input_delay
およびset_ouptut_delay
コマンドを使用して、デザイン制約としてこれらの遅延を追加できます。入力および出力遅延の設定の詳細は、 『Vivado Design Suite ユーザー ガイド: 制約の使用』 (UG903) を参照してください。