隣接問題を修正する RP Pblock の自動調整が望ましくない場合は、Pblock 範囲を手動で作成する必要があります。これは、コンフィギュレーション ブロックやクロック バッファー リソースを含む中央列などのリコンフィギャラブル不可能なサイトにまたがる Pblock を厳密に制御するのに役立ちます。
リコンフィギャラブル パーティション Pblock の手動作成 に示す白でハイライトされた Pblock では、左辺と右辺が CLB 列の間に描かれています。インターコネクト タイルを表示するには、Device ウィンドウで ボタンをクリックして [Routing Resurces] をオンにします。
RP Pblock には、描画した形状の中にすべてのリコンフィギャラブル エレメント タイプを含める必要があります。つまり、選択した長方形に CLB (スライス)、ブロック RAM、および DSP エレメントが含まれる場合、3 つのタイプすべてが Pblock に含まれている必要があります。1 つでも欠けていると、DRC により分割されたインターコネクトが検出されたことを示すアラートが表示されます。
RP が、中央列のクロック リソースやコンフィギュレーション コンポーネント (ICAP、BSCAN) などのリコンフィギュレーション不可能なサイトを含む場合や、I/O などのリコンフィギュレーション不可能なコンポーネントに隣接している場合は、ほかにも考慮すべき事項があります。Pblock のいずれかの辺が異なるリソース タイプのインターコネクト列を分割する場合、インプリメンテーション ツールによりこのレイアウトは許容されますが、境界の各辺の列への配置が制限されます。ICAP や BSCAN など、デザインでこの禁止サイトが必要な場合は、Pblock を複数の長方形に分割し、リコンフィギャラブル ロジックのリソース使用を明確に定義するか、SNAPPING_MODE
を使用する必要があります。
インプリメンテーション ツールでは、PROHIBIT
制約を作成することにより、隣接するインターコネクト サイトの両側への配置が自動的に回避されます。隣接違反のために禁止されたサイトがデザインで不要な場合は、デザインで隣接違反をそのままにしておくことも許容されます。そのようにすると、ダイナミック領域に配線タイルの追加の列が含まれ、リコンフィギャラブル不可能なサイトにまたがるダイナミック領域の密集を防ぐことができます。この場合、DRC によりクリティカル警告が表示されますが、配置と配線リソースのトレードオフを理解している場合はこの警告は無視しても問題ありません。
この動作の唯一の例外は、クロック列の周囲です。クロック列の境界で違反が発生した場合は、違反のある RM 側に PROHIBIT
制約が生成されますが (通常は SLICE 禁止)、クロッキング リソースには PROHIBIT 制約は生成されず、スタティック ロジックで使用できます。SNAPPING_MODE
の値を ROUTING
にするのは、この例外の利点を活かすためです。たとえば、リコンフィギャラブル パーティション Pblock の手動作成 に示す初期フロアプランには、クロック バッファー リソース (BUFHCE/BUFGCTRL) を含む中央列が含まれています。これらのリソースは、リコンフィギャラブル パーティション Pblock の手動作成 でハイライトされておらず、Pblock ブロックに含まれていません。このクロック列をまたぐと違反は発生しますが、それでもリソースはスタティック ロジックで使用できます。
禁止サイトは、リコンフィギャラブル パーティション Pblock の手動作成 に示すように、配置済みまたは配線済みチェックポイントで斜線の付いた赤丸で示されます。この自動禁止機能により、CLB 自体は使用されませんが、コンフィギャラブル サイト (CLB) に関連付けられた配線インターコネクトは RM に使用できます。リコンフィギャラブル パーティション Pblock の手動作成 では、左側の INT 列は RM に使用可能ですが、右側の INT 列はクロック タイルの一部であり、7 シリーズ デバイスではリコンフィギュレーション不可能なので、スタティック ロジックのみで使用可能です。
隣接違反によりデザインに必要なサイト (ICAP や BSCAN) が禁止される場合は、デバイスに使用可能なサイトが十分ないことを示す配置エラーが表示されます。
ERROR: [Common 17-69] Command failed: Placer could not place all instances
この制限を回避するには、リコンフィギャラブル パーティション Pblock の手動作成 に示すように複数の Pblock の長方形を作成してインターコネクト列が分割されないようするか、Pblock に SNAPPING_MODE
プロパティを使用します。
通常は、リコンフィギャラブルではないサイト タイプ (IOB、コンフィギュレーション、クロック列など) をまたぐことは、できる限り避けてください。Pblock がこれらのサイトのいずれかをまたぐ必要がある場合、最もリスクが低いのはクロック列です (その理由は先に説明)。境界をできる限り効率よくまたぐようにするには、SNAPPING_MODE ROUTING
を使用してください。
リコンフィギャラブル パーティション Pblock の手動作成 に分割部分を拡大し、スライス (CLB) とインターコネクト (INT) リソース タイプを示します。2 つの Pblock 長方形間のギャップにより、BUFHCE コンポーネントに完全にアクセスでき、スタティック リソースを使用して完全に配線できます。また、CLB の 1 つの列をスタティック デザインで使用できます。これらのギャップをまたぐことができる配線リソースはありますが、そうすると全体的な配線能力が大幅に低下します。このアプローチは難点が多いため、可能であれば回避してください。IOB やコンフィギュレーション タイルなどのほかのスタティック境界をまたぐ場合は、ダイナミック領域の配線ギャップが 2 つの INT リソースになり、配線が困難になります。
T 形や L 形などの形状のパーティションも使用できますが、全体的な形状はできるだけシンプルにすることをお勧めします。配線リソースを完全にこれらの領域に収める必要があるので、配置配線が困難になる可能性があります。パーティションの境界を接触させることはできますが、多少間が空いている方が配線制限が原因で問題が発生する可能性を回避できます。RP をネストさせたり (パーティション内に別のパーティションを含める)、重ねたりすることはできません。
最後に、物理的なリコンフィギャラブル フレームごとに存在させることができる RP は 1 つだけです。リコンフィギャラブル フレームは、リコンフィギュレーション可能な最小の物理領域で、クロック領域の境界に揃えられています。リコンフィギャラブル フレームに複数の RP からのロジックを含めることはできません。複数の RP からのロジックを含めると、間違った RM からの情報で領域がリコンフィギュレーションされてしまう可能性があり、競合が発生する原因となります。Vivado ツールは、このようなリスクの高い状況を回避するように設計されています。