パーティション ピン - 2023.2 日本語

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

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

RP に定義された Pblock 領域内には、パーティション ピンと呼ばれるインターフェイス ポイントが自動的に作成されます。これらの仮想 I/O はインターコネクト タイル内にアンカー ポイントとして作成され、モジュール間で一定に保たれます。これらのアンカー ポイントを作成するのに、LUT やフリップフロップなどの物理リソースは不要で、遅延が追加されることもありません。

ツールによりソース、ロード、およびタイミング要件に基づいて位置が選択されますが、ユーザーがこれらの位置を指定することもできます。次の制約を適用すると、パーティション ピンの配置を制御できます。

表 1. パーティション ピンの配置を制御するプロパティ
コマンド/プロパティ名 説明
HD.PARTPIN_LOCS

配線される指定ポートにインターコネクト タイル (INT) を指定します。HD.PARTPIN_RANGE よりも優先されます。このプロパティは、RP の境界の両側にあるロジックの配置および配線に影響します。

クロック ポートには使用しないでください。クロック ポートに使用すると、クロックにローカル配線が使用されます。

このプロパティを専用接続には使用しないでください。

HD.PARTPIN_RANGE

指定したポートを配線するために使用可能なコンポーネント サイト (SLICE、DSP、ブロック RAM) またはインターコネクト タイル (INT) の範囲を定義します。

ユーザー定義の HD.PARTPIN_RANGE 値が存在しない場合は、Pblock の範囲に基づいて値が自動的に算出されます。

注記: 表 1PARTPIN_SPREADING プロパティを使用してパーティション ピンに影響を与えることはできますが、これは Pblock レベルで適用されます。

パーティション ピンの配置を制御するプロパティの例

  • set_property HD.PARTPIN_LOCS INT_R_X4Y153 [get_pins <hier/pin>]
  • set_property HD.PARTPIN_RANGE SLICE_X4Y153:SLICE_X5Y157 [get_pins <hier/pins>]

get_pins には、パーティション インターフェイスに制約するピンへの絶対階層パスを使用する必要があります。get_ports を称することもできますが、適切な階層レベルを参照する必要があります。インターコネクト タイル サイトのインスタンス名は、[Device] ウィンドウで [Routing Resources] をイネーブルにすると表示できます。

注記: ユーザー定義値がない場合、HD.PARTPIN_RANGEplace_design の実行中に自動的に設定されます。値が設定されたら、インタラクティブ配置配線中 (RP Pblock の試行のための変更、place_design -unplace の実行など) にはリセットされません。Pblock を変更した場合は、HD.PARTPIN_RANGE および HD.PARTPIN_LOCS を手動でリセットする必要があります。これらのプロパティは、ほかのほとんどのプロパティと同様にリセットできます。

次の Tcl プロシージャは、DFX デザインにこのようなインタラクティブ フロアプランを実行する場合に便利です。

################################################## 
Proc to unroute, uplace, and reset HD.PARTPIN_* 
#################################################
proc pr_unplace {} {
route_design -unroute
place_design -unplace
set cells [get_cells -quiet -hier -filter HD.RECONFIGURABLE]
foreach cell $cells {
reset_property HD.PARTPIN_LOCS [get_pins $cell/*]
reset_property HD.PARTPIN_RANGE [get_pins $cell/*]
}
}

配置済みまたは配線済みデザインからのパーティション ピンの情報は、get_pplocs コマンドを使用して取得できます。-nets または -pins オプションを使用すると、特定の RP またはインターフェイス ピンの情報を取得できます。

get_pplocs -nets <args> -pins <args> [-count] [-unlocked] [-locked] [-level <arg>] [-quiet] [-verbose]
表 2. get_pplocs オプション
名前 説明
-nets PPLOC をレポートするネットを 1 つ以上指定します。
-pins PPLOC をレポートするピンを 1 つ以上指定します。
[-count] PPLOC の数をレポートし、PPLOC またはノードの名前はレポートしません。
[-unlocked] 固定されていない PPLOC のみをレポートします。
[-locked] 固定されている PPLOC のみをレポートします。-level オプションを使用して固定レベルを指定してください。
[-level] 固定レベルを指定します。
[-quiet] コマンド エラーを表示しません。
[-verbose] メッセージの非表示設定を解除し、すべてのメッセージを表示します。

例:

get_pplocs -pins [get_pins u_count/*]

UltraScale または UltraScale+ デザインでは、すべてのインターフェイス ポートに対してパーティション ピンが作成されるわけではありません。CONTAIN_ROUTING エリアの拡張に説明されている配線拡張機能を使用すると、一部のインターフェイス ネットは完全に拡張領域内に含まれます。この場合、パーティション ピンは挿入されず、ソースおよびすべてのロードを含むネット全体がパーシャル BIT ファイルでキャプチャされるエリアに含まれます。配線用に不要な中間ポイントが選択されるのではなくネット全体が配線し直されるので、Vivado ツールで柔軟に最適なソリューションを選択できます。