Pblock 制約 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: 階層デザイン (UG905)

Document ID
UG905
Release Date
2022-04-20
Version
2022.1 日本語
表 1. Pblock 制約
コマンド/プロパティ名 説明
create_pblock 各 OOC インスタンスの最初の Pblock を作成します。
resize_pblock Pblock のサイト タイプ (SLICE、RAMB36 など) とサイト位置を定義します。
add_cells_to_pblock Pblock に含めるインスタンスを指定します。通常これは、個別のインスタンスではなく階層レベルです。OOC インプリメンテーションでは、セル名を指定する代わりに、-top を使用して OOC モジュールの下のセルすべてを指定できます。
CONTAIN_ROUTING Pblock に含まれない配線リソースが使用されないようにする Pblock プロパティです。デフォルト値は FALSE です。Pblock 範囲に完全に含まれるパスのみが含まれます。たとえば、BUFGMUX 範囲がない場合、BUFGMUX に入出力されるパスは含まれません。これは BUFGMUX のような多くのコンポーネントで適切な動作です。
EXCLUDE_PLACEMENT 定義された Pblock 範囲内の Pblock に含まれないロジックが配置されないようにするため使用する Pblock プロパティです。デフォルト値は FALSE です。このプロパティは OOC インプリメンテーションには影響しませんが、アセンブリ中の最上位ロジックの配置に影響します。ザイリンクスでは、アセンブリ中に最適な結果を得るには値を FALSE のままにすることをお勧めします。
PARENT Pblock 階層を識別する Pblock プロパティで、子 Pblock を完全に含む親 Pblock の名前を示します。OOC インプリメンテーションを含む入れ子の Pblock には、モジュール再利用で正しく動作するよう PARENT キーワードを使用する必要があります。

Pblock コマンドおよびプロパティの例

  • create_pblock <pblock_name>
  • add_cells_to_pblock [get_pblocks <pblock_name>] -top
  • resize_pblock [get_pblocks <pblock_name>] -add {SLICE_X0Y0:SLICE_X100Y100}
  • resize_pblock [get_pblocks <pblock_name>] -add {RAMB18_X0Y0:RAMB18_X2Y20}
  • set_property CONTAIN_ROUTING true [get_pblocks <pblock_name>]

Pblock に追加されるセルが -top を使用して指定されていることに注意してください。これは、OOC インプリメンテーションでは OOC インスタンスが最上位になり、OOC インスタンス全体が Pblock に含まれる必要があるからです。-top を使用することで、OOC モジュールが最上位デザインにインポートされる際に、Pblock が正しい階層レベルに適切に変換されるようもなります。

OOC モジュール内のロジックをフロアプランする場合は、Pblock を入れ子にできます。子 Pblock は完全に親 Pblock 内に含まれる必要があります。Pblock 間の親子関係は、次に示すように PARENT プロパティを使用して宣言します。

set_property PARENT <parent_pblock_name> [get_pblocks <child_pblock_name>]

Pblock プロパティ PARENT は別の Pblock を参照するので、制約が処理される順序が重要です。親 Pblock (-top を使用) は、それを参照する子 Pblock よりも前に定義する必要があります。

上記のタイミング制約および物理制約に加え、OOC のコンテキストを定義する制約もあります。