2 つの新しい Tcl コマンドを使用すると、Vivado プロセス用に RP をさらに分割したり、再結合したりできます。この新しいコマンドは、pr_subdivide と pr_recombine です。これらのコマンドにより、Vivado ツールのパースペクティブが変更され、HD.RECONFIGURABLE プロパティが下位 (分割) または上位 (再結合) に移動されて、スタティックとリコンフィギャラブルの論理的境界が定義されます。
pr_subdivide
1 つ目の新しい Tcl コマンドは pr_subdivide です。コマンド名からわかるように、このコマンドは RP を 1 つまたは複数の下位 RP に分割します。
pr_subdivide
Description: Subdivide an RP into one or more lower-level
RPs when using the Nested Dynamic Function eXchange solution.
Syntax:
pr_subdivide [-cell <arg>] [-subcells <arg>] [-quiet] [-verbose] [<from_dcp>]
Usage:
Name Description
-------------------------
[-cell] (Required) Specify parent RP module name
[-subcells] (Required) Specify child RP module names
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
[<from_dcp>] (Required) Specify OOC synthesized checkpoint path for the RM specified by option -cell
pr_subdivide は、DFX デザインの最初のインプリメンテーションで使用され、スタティック部分の結果を作成します。これは、スタティックが一番上位にある場合か、さらに分割されたばかりの RP を含む場合に使用します。Vivado で完全に配線済みの最初のデザイン チェックポイントを開いた状態で pr_subdivide を実行すると、次のタスクが自動的に実行されます。
- ターゲット RP がまだブラック ボックスでない場合は、そのターゲット RP に対して update_design -black_box が実行されます。
- ターゲット RP をブラック ボックスにしていない場合は、残りのデザインに対して lock_design -level routing が実行されます。
- <from_dcp> 引数にこの RP の合成済み RM チェックポイントが指定されて読み込まれます。この RM には、それ自体が RP になる 1 つまたは複数の階層インスタンス (ロジックまたはブラック ボックスで満たされる) が含まれる必要があります。
- 元のパーティション (-cell ターゲット) から HD.RECONFIGURABLE プロパティが 1 つまたは複数の下位パーティション (-subcells オプション) にプッシュされます。
- 元のパーティションに HD.RECONFIGURABLE_CONTAINER プロパティがプレースホルダーとして配置されます。このプロパティがないと、pr_recombine でコンテキストがこのレベルに戻されません。
ターゲット RP が既にブラック ボックスの場合、pr_subdivide で現在配置配線されているすべてをロックする前に lock_design -level routing を実行する必要があります。lock_design が pr_subdivide より後に実行されると、新しく読み込まれた RM ネットリストに追加された DONT_TOUCH プロパティにより、論理最適化がされなくなり、パフォーマンスが落ちます。
pr_subdivide は完全に配線済みのデザインで実行する必要があるので、さらに分割できるのは一度に 1 つの RP のみです。デザインに複数の RP が含まれる場合、たとえばその上のデザインに RP B が RP A と同じレベルにある場合、2 つ目の RP がさらに分割される前に最初に分割された RP をインプリメントする必要があります。RP はいくつでもさらに分割できますが、デザインのその他すべての RP 内に配置配線済み RM が含まれる場合のみ作成できます。
同様に、RP をさらに分割した直後に、その下位 RP 用の新しいスタティック エリアを最初にインプリメントしないと、新しい子 RP にさらに分割することはできません。デザイン構造 に示す図では、RP A が 2 つの RP W および X に分割されており、W または X をさらに分割する前に、A1 のスタティック結果をロックするためモジュール A1 をインプリメントする必要があります。
pr_recombine
2 つ目の新しい Tcl コマンドは pr_recombine です。このコマンドはすべての下位 RP を削除するのに使用され、RP の定義を親セルに格納します。このコマンドは、親レベルの RM のビットストリーム生成や、特定コンフィギュレーションの解析で特定のデザイン構造を返す場合のみ必要なので、pr_subdivide ほど頻繁には使用されません。
pr_recombine
Description: Re-establish a parent cell as a RP while removing
lower-level RPs when using the Nested Dynamic Function
eXchange solution.
Syntax:
pr_recombine [-cell <arg>] [-quiet] [-verbose]
Usage:
Name Description
-----------------------
[-cell] (Required) Specify reconfigurable container module name
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
pr_recombine は HD.RECONFIGURABLE プロパティをターゲット セルに移動し、それより下のセルからは削除します。
ターゲット セルには、現在 pr_subdivide により HD.RECONFIGURABLE_CONTAINER プロパティが含まれているはずなので、そのセルが pr_recombine では実行可能なターゲットとして認識されます。