次に、Dynamic Function eXchange 用の領域を定義するため、フロアプランを作成します。
-
Netlist ウィンドウで inst_count インスタンスを選択します。右クリックして をクリックし、デバイスの左上に細長い長方形を描画します。この段階では、長方形のサイズや形状は重要ではありませんが、クロック領域内に収めてください。
作業を続ける前に、Device ウィンドウで Pblock が選択されていることを確認してください。
このリコンフィギャラブル モジュールに必要なのは CLB リソースのみですが、長方形に RAMB18、RAMB36、DSP48 ブロック タイプが含まれる場合は、それらのリソースも含まれます。これにより、これらのブロック タイプの配線リソースが、リコンフィギャラブル領域に含まれます。必要に応じて、Pblock Properties の General ビューを使用してこれらのブロック タイプを追加できます。Statistics ビューには、現在読み込まれているリコンフィギャラブル モジュールのリソース要件が表示されます。
- inst_shift インスタンスに対しても同じ手順を繰り返しますが、今回は最初にターゲットにしたクロック領域の下にある、別のクロック領域をターゲットにします。このリコンフィギャラブル モジュールにはブロック RAM インスタンスが含まれているので、そのリソース タイプを含める必要があります。そのリソース タイプが含まれていない場合は、Statistics ビューで RAMB の詳細が赤で表示されます。
-
All Rules をオフにし、Dynamic Function
eXchange をオンにして、DFX DRC のみのレポートを作成します。
inst_shift Pblock に RAMB18 および RAMB36 リソースが含まれていれば、DRC エラーはレポートされません。Pblock がデバイスのエッジ近くに配置されている場合は特に、アドバイザリ メッセージが表示されることがあります。Pblock Properties ウィンドウの Properties ビューに示されているように、両方の Pblock に対して [SNAPPING_MODE] がオンに設定されています。すべての UltraScale および UltraScale+ デバイスでは、アーキテクチャのプログラマブル ユニットの粒度を考慮し、[SNAPPING_MODE] は常にオンになっています。
をクリックして、Dynamic Function eXchange のデザイン ルール チェックを実行します。 - Pblock および関連付けられているプロパティを保存します。
write_xdc ./Sources/xdc/top_all.xdc
これにより、top_io_$board.xdc から先にインポートしてあった制約も含め、デザインの現在の制約がすべてエクスポートされます。これらの制約は、XDC ファイルで管理するか、または run スクリプトで管理できます (通常は HD.RECONFIGURABLE を使用)。
または、Pblock 制約を抽出して個別に管理できます。このタスクを実行しやすくするための Tcl プロシージャがあります。
- Tcl ユーティリティ ファイルの 1 つにある、次のプロシージャを実行します。
source ./Tcl_HD/hd_utils.tcl
-
export_pblocks
プロシージャを使用して、この制約情報を出力します。export_pblocks -file ./Sources/xdc/pblocks.xdc
デザインの両方の Pblock の制約情報が出力されます。いずれか一方のみを選択する場合は、
-pblocks
オプションを使用します。
- Tcl ユーティリティ ファイルの 1 つにある、次のプロシージャを実行します。