ソフト SLR フロアプラン制約の使用 - 2023.2 日本語

Versal アダプティブ SoC システム統合および検証設計手法ガイド (UG1388)

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

大型デザインでは、ほとんどの主要なブロックのロジックは 1 つの SLR に収まるので、デザインを数回イテレーションするだけでタイミングを満たすことができます。ただし、特に主要なブロック間および SLR 間の接続などのロジックの小さな部分は、全体的なデザイン配置によって QoR が変化します。そのような場合、配置の問題に対処してタイミングを満たすためにロジックの一部を別の SLR に複製したり移動したりするのに、配置および物理最適化アルゴリズムに追加の柔軟性が必要です。

インプリメンテーション ツールでより柔軟な処理が実行できるようにするため、大型のデザイン ブロックを SLR に割り当ててフロアプランするために USER_SLR_ASSIGNMENT プロパティを使用できます。このプロパティは文字列値に設定し、階層セルに適用されますが、最下位セルには適用されません。このプロパティに設定する値は、ロジックの分割に次のように影響します。

SLR 名
階層セルに SLR の名前 (SLR0、SLR1、SLR2 など) を割り当てると、そのセル全体が指定の SLR に配置されます。
文字列値
階層セルに任意の文字列値を割り当てると、SLR は配置により選択されます。この設定により、セルが複数の SLR に分割されるのを防ぐことができます。
注記: 複数のセルに同じ USER_SLR_ASSIGNMENT 値を設定すると、それらのセルが同じ SLR にグループ化されます。

USER_SLR_ASSIGNMENT プロパティは SLR 分割中はソフト制約ですが、Pblock は SLR 分割中およびグローバル配置中はハード制約です。Pblock とは異なり、USER_SLR_ASSIGNMENT は配置により有効な分割方法を見つけるために無視されることがあります。USER_SLR_ASSIGNMENT および Pblock は両方とも、タイミングを向上するため、配置および物理最適化で SLR 境界付近の最下位セルの配置を詳細に調整することが可能です。これらの調整には、パイプライン レジスタを SLR 境界の反対側に移動することなどが含まれます。このようなレジスタの移動は、Pblock 境界では不可能です。

次の例では、デザインに 3 つのタイミング クリティカルな階層ブロック (IP1、IP2、および IP3) が含まれており、SLR が 2 つあるデバイスをターゲットとしています。IP1 と IP2 を SLR1 に、IP3 を SLR0 に配置するには、次の XDC 制約を適用します。

set_property USER_SLR_ASSIGNMENT SLR1 [get_cells {IP1 IP2}]
set_property USER_SLR_ASSIGNMENT SLR0 [get_cells IP3]

次の図に、この配置結果を示します。パフォーマンスを向上するため、デバイス内の長距離移動にパイプライン段を追加できます。これは特に、IP2 と IP3 間をまたぐ部分で有益です。詳細な配置および phys_opt_design では、タイミングが向上するのであれば、IP2 と IP3 からのパイプライン レジスタが SLR 境界を越えて自動的に移動されます。

図 1. USER_SLR_ASSIGNMENT プロパティの配置例

USER_SLR_ASSIGNMENT を設定できない場合、または配置でクリティカルなパスが SLR の境界をまたぐ場合は、USER_CROSSING_SLR プロパティを設定して、SLR 間をまたぐ位置またはまたいではいけない位置を指定できます。このプロパティは通常、ネット ドライバーと同じ SLR に配置する必要のあるピンのネットまたは最下位ピンに、あるいはレジスタ チェーンの場合は SLR 間をまたぐ位置に適用します。このプロパティはブール値に設定し、SLR 間をまたぐ個々の部分を制約するためネットおよびピンに適用します。

TRUE
ターゲット ネット オブジェクトが SLR 間をまたぐようにするか、ターゲット ピン オブジェクトが SLR 間をまたいで接続されるようにします。レジスタ間の接続でその間のファンアウトが 1 のものにのみ TRUE 値を適用できます。
注記: 任意のロジックに TRUE 値を使用することはできません。このオプションは、複数のインプリメンテーション ストラテジを試すときに、レジスタのチェーンが常に特定のレジスタで SLR の境界をまたぐようにするのに便利です。
FALSE
ターゲット ネット オブジェクトが SLR 間をまたがないようにするか、ターゲット ピン オブジェクトが SLR 間をまたいで接続されないようにします。FALSE 値は任意のネットまたはピンに適用できます。
注記: マクロ プリミティブ内にあるピンには適用できません。これらのピンは内部用であり、制約できません。

次の例では、パイプライン レジスタ チェーンが SLR 間を 2 回またいでおり、非効率なジグザグなパスになっています。

注記: 次の 2 つの図で、丸はレジスタ段を示します。
図 2. USER_CROSSING_SLR プロパティ設定前の最適でない SLR 間をまたぐパス

net_B のみが SLR 間をまたぐ最適な配置を達成するには、次の XDC 制約を適用します。

set_property USER_CROSSING_SLR FALSE [get_pins -leaf -of [get_nets net_A]]
set_property USER_CROSSING_SLR TRUE [get_pins -leaf -of [get_nets net_B]]

これにより、次の図に示すように、net_B でのみ SLR 間をまたぐ配置が得られます。

図 3. USER_CROSSING_SLR プロパティ設定後の最適な SLR 間をまたぐパス