Vivado IDE では、デザイン run 間の依存性が管理されます。コンフィギュレーション間には依存性があるため、この管理機能は Dynamic Function eXchange の重要な機能です。親コンフィギュレーションまたはインプリメンテーションの結果が少しでも変更になると、その子コンフィギュレーションをすべて再コンパイルする必要があります。
- [impl_1 design] の run を選択します。
- [Run Properties] ウィンドウの [Opetions] タブで、[Strategy] を [Performance_Explore] に変更します。
このまま作業を続けると imp_1 のタイムスタンプが古くなる旨を知らせるダイアログボックスが表示されます。
図 1. 完成した run の変更
- [Yes] をクリックします。
複数の run (impl_1 およびそれに依存する複数の子 run) のタイムスタンプが古くなっています。結果ファイルはそれぞれのフォルダーにそのまま残っていますが、親 run が起動するとすぐに削除されます。一方、impl_greybox デザイン run は、impl_1 に依存していないため、完了した状態のままです。
子 run は親 run のオプションを継承しないので、各子 run の [Strategy] オプションは [Vivado Implementation Defaults] のままです。ただし、スタティック デザインは既に配線およびロックされているので、子 run のストラテジまたはオプションは、RM のインプリメンテーションにのみ影響します。
図 2. 親を変更した後にリセットされるデザイン run
- Flow Navigator で、[Run Implementation] をクリックします。
作業を続ける前に run をリセットする必要があるかどうかを確認するダイアログ ボックスが表示されます。親 run の 1 番目のステップが古いステップなので、親 run およびすべての子 run がインプリメンテーションの最初のフェーズに完全にリセットされます。[Reset and Re-run] または [Run from Step: phys_opt_design] をクリックして作業を続けます。
図 3. [Reset and Re-run] ダイアログ ボックス
これで 3 つの run がインプリメントされます。まず、parent impl_1 run が完了し、それから 2 つの子 run が並行処理されます。