絶対グリッド マクロの例 - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: 制約の使用 (UG903)

Document ID
UG903
Release Date
2023-11-01
Version
2023.2 日本語

異なるサイト タイプのセルをマクロに含める場合は、絶対グリッドを使用する必要があります。

絶対グリッド (RPM グリッドとも呼ばれる) は、デバイス内のロケーションに基づいてサイトの座標を定義する絶対座標システムです。絶対グリッドでは、サイトのサイズも考慮されます。RAM および DSP ブロックは、スライスよりも幅が広くなっています。次の図に、絶対グリッドを示します。

この例では、3 つの異なるタイプのセルから、絶対グリッドを使用してマクロが作成されています。入力ポートからの入力データパスが、2 段のレジスタを介してブロック RAM に接続されています。これを回路図で示すと次の図のようになります。

図 1. 絶対グリッドの回路例

マクロの作成には、セルのリストと、それらの絶対グリッドを使用した相対ロケーション (RLOC) が必要です。マクロを作成する際、絶対グリッド マクロの相対配置をイメージするのは難しいかも知れません。

次の図に示すように、セルはまず手動で配置し、適切なロケーションに調整します。

図 2. 絶対グリッド マクロ用にセルを手動配置

絶対グリッドでは絶対ロケーションが指定されますが、マクロの相対配置を満足できれば、デバイスのどこにでも配置できます。この例では、左下角を基点として相対ロケーションが指定されています。

ただし、絶対グリッド ロケーションでは絶対配置ではなく相対配置が指定されます。これにより、相対配置が保持されれば、マクロをデバイスのどこにでも配置できます。

この例は、ILOGIC、スライス、およびブロック RAM が含まれていて多少複雑であり、マクロのロケーションもある程度制限されますが、次の図でオレンジ色でハイライトされている 3 つのどのロケーションにでも配置できます。

図 3. XDC マクロを配置可能な 3 つのロケーション

絶対グリッドの RLOC を判断するには、RPM_X および RPM_Y のプロパティを使用します。たとえば、下のブロック RAM はサイト RAMB36_X0Y0 に配置されます。

セルではなくサイトを選択すると、RPM_X が 33、RPM_Y が 0 と表示されます (図 4)。これらが絶対グリッド座標です。それに対応する RLOC の値は X33Y0 です。

図 4. ブロック RAM の絶対グリッド座標

同じ方法を使用して、スライスの絶対 RLOC 値を取得できます (図 5)。このスライス内のセルの RLOC は X31Y0 です。

図 5. スライスの絶対グリッド座標

m0 という名前のマクロを作成するには、2 つのコマンドがあります。

create_macro m0
update_macro m0 -absolute_grid <cell0 rloc0 cell1 rloc1 cell2 rloc2 … cellN rlocN>

マクロにこの例のように多数のセルが含まれている場合、Tcl コマンドを使用して update_macro に必要な cell-rloc リストを簡単に作成および指定できます。セルが配置済みの場合、絶対グリッドの RLOC は、次の Tcl コマンド proc getAbsRLOC を使用して取得できます。

proc getAbsRLOC {cell} {
set site [get_sites -of [get_cells $cell]] 
set X [get_property RPM_X $site]
set Y [get_property RPM_Y $site]
return "X${X}Y${Y}"
}