DFX デザインのインプリメンテーション - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: Dynamic Function eXchange (UG909)

Document ID
UG909
Release Date
2023-11-15
Version
2023.2 日本語

必要な Configuration Runs をすべて定義したら、デザインを合成およびインプリメントできます。Flow Navigator を使用し、合成、配置配線、ビットストリーム生成を実行できます。Flow Navigator は、標準フローの場合と同様、アクティブ run に対して実行されますが、アクティブな親 run だけでなく子 run もすべて実行されます。

Dynamic Function eXchange デザインには、各 RP に Pblock が 1 つ必要です。Pblock が定義されていないと、place_design で次のようなエラー メッセージが表示されます。

ERROR: [DRC 23-20] Rule violation (HDPR-30) Missing PBLOCK On Reconfigurable Cell

この必要な Pblock が最上位デザイン制約ファイルに含まれる場合は、合成からビットストリーム生成までを実行できます。Pblock が含まれない場合は、最上位合成の後にデザインを開いて作成するのが簡単です。ネットリストの階層ビューで RP に対応するモジュールを右クリックし、Floorplanning > Draw Pblock をクリックします。

RP の Pblock を描画し終えると、そのプロパティが Pblock Properties ウィンドウの Properties ビューに表示されます。RP 用の RESET_AFTER_RECONFIG (7 シリーズのみ) および SNAPPING_MODE という 2 つのオプションがあります。Statistics ビューには、現在読み込まれている RM に使用可能なリソースおよび使用されているリソースがレポートされます。ほかの RM のニーズを考慮することも重要です。

図 1. Pblock の Dynamic Function eXchange プロパティ (7 シリーズ)

各 RP の Pblock を作成したら、各コンフィギュレーションをインプリメントできます。Flow Navigator で Run Implementation ボタンをクリックすると、まずアクティブな親 run に対して配置配線が実行されます。それが完了すると、親 run のスタティック デザイン結果を使用して、すべての子 run が並行して実行されます。

DFX ソリューションの詳細は、Vivado プロジェクトで管理されます。データベース管理は詳細の 1 つです。親 run が完了すると、デザイン全体の配線済みデータベースと、各 RM のセル レベルのチェックポイントが保存されます。この後、Vivadoupdate_design -black_box が実行されて各 RM がブラック ボックスに変更され、すべての子 run のベースとなるスタティック部分のみのデザイン チェックポイントが作成されます。子インプリメンテーション run が実行されると、Vivado でスタティック部分のみの配線済み親チェックポイントと各 RM の合成後チェックポイントがコンフィギュレーションに統合されます。この時点では、親 run の配線済みモジュール チェックポイントのみが子コンフィギュレーションで再利用できます。複数の子 run で 1 つの RP に対して同じ RM が選択されている場合、結果は異なります。

図 2. 複数のコンフィギュレーションのインプリメンテーションを並列実行

標準プロジェクトの場合と同様に、Vivado で run の間の依存関係が管理されます。デザイン ソース、制約、オプションまたは設定を変更すると、依存関係のある合成またはインプリメンテーション run が最新でなくなったことがマークされます。たとえば、ある RM の RTL デザイン ソースをアップデートすると、アウト オブ コンテキスト モジュール run が最新でなくなり、その RM を含むコンフィギュレーション run も最新ではなくなります。また、親コンフィギュレーション run のインプリメンテーション オプションを変更すると、その run とすべての子 run が最新でなくなります。

アクティブに設定できるのは親コンフィギュレーション run のみです。Flow Navigator はアクティブ run に対して実行されますが、DFX フローでは、すべての操作は子 run に対しても実行されます。run の完了やエラーを示すポップアップ メッセージは、複数の run に関連している場合がありますが、デフォルトでは親 run に対して表示されます。プルダウン リストから、必要なインプリメンテーション run を選択してください。

図 3. Implementation Completed ダイアログ ボックス

各ウィンドウ (DFX デザインのインプリメンテーション) に表示される内容は、アクティブな親 run に関連しています。子インプリメンテーション run の詳細を確認するには、その run を選択し、Implementation Run Properties ウィンドウで選択した run のすべての入力 (プロパティ、オプション) および出力 (ログ、レポート、メッセージ) を確認できます。

図 4. 子 run の Implementation Run Properties ウィンドウ