IP インテグレーターでの NoC DFX DRC: 問題とソリューション - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: Dynamic Function eXchange (UG909)

Document ID
UG909
Release Date
2022-06-07
Version
2022.1 日本語

このセクションでは、IP インテグレーター内で DFX デザイン ルール チェックを実行中に表示される可能性のあるエラー メッセージがリストされています。これらは、DFX デザインでの NoC の使用に関して一般的なシナリオを示しています。詳細および推奨ソリューションも記載されています。

NoC パスにスタティック NMU がある場合は、その NoC パスはスタティック領域が所有する必要あり

NoC DFX DRC
[BD 41-2479] NoC DFX Rule: NoC paths must be owned by the static if 
they have a static NoC master (must have INI strategy=load). 
The path from NoC Master (axi slave) /static_region/axi_noc_0/S00_AXI to 
/rp1/S00_INI (INI strategy set by user) is not static. 
To fix: set the INI strategy on INI interfaces for this path to 'load'
理由
NMU (たとえば NoC S00_AXI に対応) は、特定の NSU に配線するよう設定されてます。スタティック NMU がパスを所有していれば、デスティネーション NSU を決定する NMU 部分もスタティックとなり、変更されません。RM がパスを所有していると、パスが変更されたときにスタティック NMU 部分もリコンフィギュレーションされる必要があります。スタティック NMU を完全にスタティック部分に含めるには、NMU がそのパスを所有している必要があります。

NoC パスの所有は、そのパスのサービス品質 (QoS) の決定に重要です。DFX 境界をまたぐ NoC パスでは、NoC マスターがスタティック領域にある場合は、サービス品質はスタティック領域の NoC インスタンスにより決定されます。NoC 規則により、QoS はそのパスを所有する NoC インスタンスにより決定されます。これにより、QoS および帯域幅を DFX 境界をまたぐのに必要な値に選択的に調整し、複数の RM バリアントで固定できます。

ソリューション
NoC INI のストラテジが [Single Load] に設定されている場合、ドライバー (NMU) が DFX パスを所有し、QoS を決定します。DFX の境界パスでは、ドライバーがスタティック領域にある場合にこれが必要です。NoC INI のストラテジが [Single Driver] に設定されている場合、ロード (NSU) が DFX パスを所有します。所有しているのがスタティック領域のドライバーでない場合、リコンフィギャラブル パーティションの NSU が RM バリアントによって変更される可能性があり、境界パスを確定した QoS および帯域幅で固定できないので、DFX 境界パスではこれは許容されません。

IP インテグレーターでは NoC INI のストラテジ オプションを Auto 設定でき、ストラテジが自動的に有効な値に設定されるようにすることが可能です。NoC INI ベースの DFX でマスターがスタティック領域にある場合、スタティック領域の NoC INI のストラテジを Auto に設定できます。これがデフォルト オプションです。IP インテグレーターで検証中に自動的に INI のストラテジが正しい値に設定されます。

注記: NoC INI のストラテジの自動設定は、現在のところ最上位 BD でのみサポートされます。子 BDC では、子 BD 内に複数のドライバーまたは複数のロードがあるために子 BD のストラテジが明確に決定される場合を除き、サポートされません。

RP が NoC パスを所有している場合、スタティック NoC スレーブは 1 つの RP でのみ駆動可能

NoC DFX DRC
[BD 41-2480] NoC DFX Rule: Static NoC slave can connect to at most one RP 
where the noc master owns the path (INI strategy=load). NoC Slave (axi master) 
/static_region/axi_noc_1/M00_AXI connects to >1 RP that owns noc paths:  
/rp1/axi_noc_2/S00_AXI 
/rp2/axi_noc_3/S00_AXI. To fix: Only have one RP drive the NoC slave 
理由
リコンフィギャラブル パーティションは異なるリコンフィギャラブル モジュールでインプリメントされる可能性があります。デザインに複数のリコンフィギャラブル パーティションがある場合、両方の RP を個別に入れ替えることができます。そのため、スタティック領域と RM の間の NoC パスでは、NoC スレーブがスタティック領域にあり、パスを RM が所有している場合は、そのパスを所有できるのは 1 つの RM のみです。複数の RP が 1 つの NoC パスを所有することはできません。
ソリューション
上記のような状況は、RP NMU とスタティック領域の NSU の NoC INI のストラテジが Single Load, Driver (NMU) owns the DFX path and has QoS に設定されている場合に発生することがあります。この問題を解決するには、スタティック領域に別の論理 NoC を追加して、DFX 領域の NMU がパスを所有するようにします。スタティック領域に論理 NoC を追加して、RP からスタティック領域への境界パスを 2 つの並列する境界 NoC パスに分割します。

RP の NoC エンドポイントは INI ストラテジの 1 つのタイプにのみ接続可能

NoC DFX DRC
[BD 41-2477] NoC DFX Rule: NoC Endpoints can only connect to one type of 
INI strategy (either driver or load, but not both) at the RP boundary. NoC Slave (axi master) 
/static_region/axi_noc_3/M00_AXI has both INI strategy load /rp2/M01_INI_0 and 
INI strategy driver /rp2/M00_INI. 
理由
各リコンフィギャラブル パーティションは、アウト オブ コンテキストで個別に合成されると想定されます。これらを最上位に統合したときに、境界ピンが一致している必要があります。境界は、ドライバーとロードに関する NoC 規則を満たす必要があります。これは、NMU と NSU が異なるリコンフィギャラブル パーティションにあり、それぞれの OOC 合成でもう 1 つの RP の NoC INI ストラテジが認識されていない場合に特に重要です。そのため、RP 境界の NoC の INI を同じストラテジに設定することをお勧めします。これにより、NoC パスが重複するのも回避されます。NoC パスの重複は、DFX デザインでは無効です。
ソリューション
RP 内の境界にある NoC の INI を同じストラテジに設定することをお勧めします。これにより、境界パスの所有を RP 外の NoC に移動できます。RP の境界 NoC の INI をすべて同じストラテジに設定すると、個々の OOC RP を統合したときに、スタティック領域の AXI NoC の INI ストラテジがこれらの境界パスを所有するようになります。このようにすると、境界パスの QoS がスタティック領域の NoC に固定されるので、推奨されます。

NoC エンドポイントを DFX 境界を介してエクスポートできるのは 1 回のみ

DRC for NMU ERROR
[BD 41-2577] NoC DFX Rule: A NoC endpoint can only be exported once across a DFX boundary.
This means a NoC Master can only have one INI with strategy=driver crossing a DFX boundary. 
NoC Master (AXI slave) /h1/axis_noc_0/S00_AXIS has 
the following strategy=driver INIs crossing a DFX boundary: /axis_noc_1/S01_INIS /axis_noc_1/S00_INIS
DRC for NSU ERROR
[41-2577] NoC DFX Rule: A NoC endpoint can only be exported once across a DFX boundary. 
This means a NoC Slave can only have one INI with strategy=load crossing a DFX boundary. 
NoC Slave (AXI master) /h2/axis_noc_1/M00_AXIS has the following strategy=load 
INIs crossing a DFX boundary: /axis_noc_0/M00_INIS/axis_noc_0/M01_INIS
理由
スタティック領域と RP 間の境界 NoC パス、NSU には、ストラテジが Single Load, Driver (NMU) owns the DFX path の INI を 1 つのみ使用できます。NMU には、ストラテジが Single Driver, Load (NSU) owns the DFX path の INI を 1 つのみ使用できます。

境界パスに NSU のストラテジが Load または NMU のストラテジが Driver に設定された複数の INI がある場合、NMU から特定の NSU へのパスが複数の NoC INI エンドポイントを介することを意味します。DFX フローでは、境界パスを 1 つの固有の INI エンドポイントから NSU に固定し、その後の RM のイテレーションで使用できるようにする必要があるので、DFX デザインではこれは許容されません。概念的には、ストラテジが Load の場合はロード (NSU/MC) は RM 境界でエクスポートされ、ストラテジが Driver の場合はドライバー (NMU) が RM 境界でエクスポートされると考えられます。エンドポイントは、1 回のみエクスポート可能です。

ソリューション
INI パスが RM 境界をまたぐのは 1 回のみにします。

リコンフィギャラブル パーティションには NoC パススルーは使用不可

NoC DFX DRC
[BD 41-2476] NoC DFX Rule: An RP cannot have a NoC passthrough. 
Path across '/r4_mid' from /r4_mid/S00_INI_0 to /r4_mid/M00_INI_0 is a passthrough. 
To fix: Ensure an RP has a noc endpoint. 
理由
RM をパススルーでリコンフィギュレーションする際の NoC パスの問題を回避するため、RM 内ではパススルーは使用できません。スタティックでは NoC パススルーを使用できます。
ソリューション
リコンフィギャラブル パーティションに境界 NoC パスの NoC エンドポイントが含まれない場合は、RP を介する NoC パスのパススルーを使用しないでください。ただし、将来の RM イテレーション用にリコンフィギャラブル パーティションに NoC パスを保持する場合は、最初のインプリメンテーションの RM に NoC エンドポイントをプレースホルダーとして追加してください。

複数の RP 間の NoC パスにはスタティック論理 NoC インスタンスを含める必要あり

NoC DFX DRC
[BD 41-2478] NoC DFX Rule: NoC path between two RPs must be static. 
Path from /r5_rp1/axi_noc_0/S00_AXI to /r5_rp2/axi_noc_1/M00_AXI is not owned by the static (or parent). 
It is owned by /r5_rp1. To fix: add a noc instance in the static to connect this path, 
and have it own the path by setting the input INI strategy to driver, and the output INI strategy to load. 
理由
この場合、1 つの RP に NMU があり、これがスタティック領域のパススルーを介して別の RP の NSU に接続されています。スタティック領域が NoC パスを所有する必要があります。各 RP は個別にリコンフィギュレーションでき、それらの間のパスは、各 RP のコンフィギュレーションにかかわらず有効であるようにするため、スタティック領域に含める必要があります。

複数の RP 間の通信用の NoC パスには、スタティック論理 NoC インスタンスを含める必要があります。そうしないと、NoC パスを特定の要件で固定できません。両方の RP は個別に OOC 合成できるので、最終的な NoC ソリューションが互換性のないものになる可能性があります。そのため、RP 間で通信するすべての NoC パスがスタティック エンドポイントを持つようにすることが重要です。

ソリューション
NoC パススルーをスタティック領域に設定し、INI 入力を strategy=driver、INI 出力を strategy=load に設定してスタティック領域がパスを所有するようにします。

RM で駆動されるスタティック NSU/MC の場合、RM の NMU を含める必要あり

NoC DFX DRC
[BD-41-2616]: Static NSU/MC should be driven by an NMU in the RM.
理由
NoC コンフィギュレーションおよび検証には、完全な NoC パスが必要です。ツールで必要に応じて NoC NMU が追加されるので、このエラーが表示されることはありません。デザインの開発中は NoC に駆動しない INI 出力を含めることができます。この出力は、RM から出力されてスタティック NSU/MC を駆動します。この場合、NoC パスを完成させるため、駆動しない INI を持つ NoC にスタブ NMU が自動的に追加されます。駆動されない INI 外部出力ポートを含めることはできません。
ソリューション
特定のリコンフィギャラブル モジュールでスタティック領域と通信する特定の NoC が使用されない場合、各 RM にプレースホルダー NoC NMU を追加して、各 NoC パスを完成させ、ツールで NoC 検証が実行されるようにします。

アクティブ RM で NoC INI 接続を実行する必要あり

NoC DFX DRC
ERROR: [BD 41-2325] The NoC INI interface can only connect to noc IPs. The following pins on non-NoC IPs are connected to INI. These must be disconnected, or if connected to a BDC external port, a NoC must be added in the BDC to connect to the INI port:
/rp1/S00_INI
理由
[Validate Design] では、デザイン ルール チェックの実行中にアクティブ BD ソースが使用されます。このシナリオでは、スタティック領域が NoC パスを所有しています。インプリメンテーション フローでは、スタティック領域およびデフォルト RM (親コンフィギュレーションのスタティック部分を使用してインプリメントされた RM) でこの NoC パスをインプリメンテーションし (NSU/MC がデフォルト RM に存在する必要がある)、後続の RM で接続できるように NoC パスをコンフィギュレーションする必要があります。ハードウェアでは、NSU/MC をプログラミングするためにデバイスの初期コンフィギュレーションで INI 接続がすべて含まれる必要はありません。その理由は、NoC パスがスタティック デザイン イメージの一部として存在するからです。
ソリューション
NoC INI インターフェイスが入力されるようにアクティブ RM を変更し、この条件を満たさない BD デザイン ソースをポイントするようにブロック デザイン コンテナーを変更して使用されるようにします。その後、親コンフィギュレーションで、必要な NSU/MC 接続をすべて含んでいる RM インスタンスが使用されるようにします。
注記: NoC ベースのデザインの場合、一部の NoC エンドポイントを最初のインプリメンテーションのリコンフィギャラブル モジュール (RM) に保持して、ツールが NoC トラフィック仕様用に、より正確なサービス品質 (QoS) を確立できるようにすることをお勧めします。このため、特にスタティックと RP 間に NoC インターフェイスがある場合は、DFX デザインの最初のインプリメンテーションで「グレー ボックス」をインプリメントしないようにしてください。