プログラマブル ユニット - 2023.2 日本語

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

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

プログラマブル ユニット (PU) は、パーシャル リコンフィギュレーションに最低限必要なリソース セットです。粒度は、リソース タイプとアーキテクチャ ファミリによって異なります。7 シリーズの場合、この推奨される最低限のサイズは 1 つのリソースのクロック領域 High の列になります。クロック領域に揃えることで、専用の初期化ができるようになります。AMD UltraScale™ およびそれ以降のアーキテクチャでは隣接のサイトと配線リソース (インターコネクト タイル) が共有されるので、PU はペアで定義されます。詳細には、UltraScale および AMD Versal™ デバイスの「設計に関する考慮事項」の章を参照してください。

フロアプランに使用可能な手法の 1 つに、Pblock で必要とされる任意のサイトから基本的なプログラマブル ニットを構築する方法があります。基本的な PU は、次のようにサイトから外側に向かって特定していきます。

get_sites -of_objects [get_tiles -pu -of_objects [get_tiles -of_objects [get_sites <site>]]]

たとえば、隣り合った SLICE サイトのプログラマブル ユニットは次の方法で見つけることができます。

resize_pblock pblock_rp1 -add [get_sites -of_objects [get_tiles -pu -of_objects [get_tiles -of_objects [get_sites SLICE_X36Y259]]]]

この結果、SLICE 内の CLB のペアを示すベース PU と、それらの CLB 間の共有インターコネクトが返されます。

図 1. CLB PU

これは、通常問題のサイトがクロッキングや IO リソース、または Interlaken や PCIe® などのあまり頻繁に使用されない場合に便利な方法です。MMCM などのクロック調整ブロックが必要な場合、結果の PU はフル IO バンクになります。

resize_pblock pblock_rp1 -add [get_sites -of_objects [get_tiles -pu -of_objects [get_tiles -of_objects [get_sites MMCM_X0Y1]]]]

この IO PU の図では、MMCM が青色で示されています。

図 2. IOB PU

さらに詳しく見ると、CLB の列がこの PU の一部であることがわかります。

図 3. IOB PU の拡大図