UltraScale および UltraScale+ デバイスでは、RP 内で BUFG_*、PLL、および MMCM などのクロッキング リソースがサポートされます。この機能を使用するデザインは、グローバル クロックの規則で説明される一般的なデザイン制限と次のフロアプラン規則に従う必要があります。これらの規則は、RP 内のクロックが RP Pblock に属するフレーム内の必要な配線リソースに到達できるようにするため必要です。
- できるだけ長方形の Pblock を作成します。Pblock が複数の長方形で形成される場合、Pblock の一番高い列が
clock_region
に揃えられている必要があります。 - 内部 RM クロックの CLOCK_ROOT プロパティは、Pblock の一番高い列の 1 つとして設定する必要があります。ツールは CLOCK_ROOT に正しい列を選択しようと試みますが、選択できない場合もあります。
- クロック ネットに USER_CLOCK_ROOT プロパティが存在する場合、CLOCK_ROOT は自動的には選択されません。USER_CLOCK_ROOT プロパティが Pblock のフル高さでない列に設定されている場合、配線できない接続が出る可能性があります。
- BUFG_GT の構成によっては、CLOCK_ROOT が BUFG_GT と同じ領域に存在することが必要な場合があります。USER_CLOCK_ROOT プロパティが Pblock の一番高い列以外の列に設定されている場合、配線できない接続が出る可能性があります。これを解決するには、そのクロック ネットを 2 つの BUFG_GT (1 つはユーザー ロジック用、もう 1 つはダイレクト GT 接続用) に分割することを考慮します。そうすると、各クロックが独自の CLOCK_ROOT を持つことができます。
次の図のように、
X2Y2
領域 (Pblock の左上) に定義された CLOCK_ROOT があると、X2Y1
領域がクロックに対して使用可能にならないので、X3Y1
領域 (Pblock の右下) のどのロードにも配線できなくなります。CLOCK_ROOT がX3Y2
またはX3Y1
に定義されている場合は、クロック配線に制限はありません。図 1. L 型 Pblock の CLOCK_ROOT 制限
- CLOCK_ROOT を一番高い列に設定できない場合、RP 領域内の入れ子の Pblock を使用して、クロックのロードをそのクロックでアクセス可能な領域に含めることができます。入れ子の Pblock を使用すると、Pblock の形が不規則なためにクロックでアクセスできない領域にロードが配置されることはなくなります。
- 次の図に示すような、clock_region 幅のギャップが作成される U 型または H 型の Pblock は作成しないでください。図 2. clock_region 幅のギャップがある Pblock (サポートなし)
次の図に示すように、PR Pblock の行に IOB 1 列分などの小さなギャップがあるのは問題ありませんが、ザイリンクスでは、このようなギャップはできる限り避けることをお勧めします。RM 配線がこれらのギャップを越える必要があるため、配線密集の原因となります。
図 3. 小さいギャップがある Pblock (サポートあり)次の図に示すような小さな階段型の Pblock が必要になることもあります。このような Pblock はサポートされますが、角の周辺で配線が密集する可能性があります。
図 4. 階段型 Pblock (サポートあり) - クロック リソースを含む PR Pblock は、クロック領域のどの部分もその他の RP と共有することはできません。スタティック ロジックを含むクロック領域は共有できます。これは、これらのクロック リソースで駆動されるロジックが RP の内側または外側のどこにある場合でも同じです。