AR# 67203

Vivado インプリメンテーション: I/O およびクロック配置エラーを特定してデバッグする方法

説明

このアンサーでは、I/O およびクロック配置エラーを特定して修正するために使用できる方法を示します。

ソリューション

I/O クロック配置エラーの根本的な原因を見つけるには、配置されないコンポーネントと、そのようなコンポーネントに適用されるルールを判別し、エラーを引き起こしているルールを特定できるようにする必要があります。

Vivado では、I/O およびクロック配置エラー メッセージが詳細に表示されるため、エラーの原因を見つけるのに役立ちます。 

エラー メッセージの最初のセクションには、どのような問題が発生しており、この問題によって配線が最適ではなくなる、または接続が完全に配線不可能であることが示されます。次に、エラーに関与しているコンポーネントの名前がリストされます。 

エラー メッセージの次のセクションには、エラーに関与しているコンポーネントに関連するルールがリストされます。各ルールの STATUS 値では、デザインによってルールが満たされているかどうかが示されます。

配置に関する問題を調査し、エラーが発生したコンポーネントに適用されているその他すべてのルールと相互参照すると、可能な配置がなかった理由がわかるようになります。 


たとえば、BUFR が RAMB ロード コンポーネントと同じクロック領域に配置されなかったために、無効で配線不可能な配置になってエラーが発生することがあります。 

関連ルールによると、BUFR は、I/O クロック入力と同じクロック領域、およびロードと同じクロック領域にある必要があります。 

場合によって、異なるクロック領域からそれぞれ供給される 2 つの BUFR によって RAMB が駆動されることがあります。この状況では BUFR および RAMB を同じクロック領域に配置することはできないため、間違った配置になり、エラーとしてフラグされます。

I/O およびクロック配置エラーをデバッグする際に、情報をさらに収集するために使用できるその他の方法は、次のとおりです。



1) place_ports コマンドを使用して、部分的に配置されたデザインを表示する:


place_design がエラーになると、部分的な配置がメモリに残らないため、調査できません。そこで、place_ports コマンドを代わりに実行することで、同じエラーを再現しながら部分的な配置を調査することが可能です。

このコマンドを実行すると、I/O およびクロック配置が実行され、部分的な配置がメモリに残るため、調査できるようになるからです。 

合成済みのデザインを開き、次のコマンドを実行します。

opt_design
place_ports

その後、デバイス ビューで I/O ポート、GT、クロック バッファー、MMCM、および PLL インスタンスの配置を調査します。 

競合がないかサイト ロケーションを調査できるようになると、正しいサイトをセルに使用できない理由がわかるようになります (たとえば、ほかのセルによってサイトが使用されていたり、セルが別の形の一部であったりすると、ツールによってセルがサイトに強制的に配置される)。



2) CLOCK_DEDICATED_ROUTE 制約を使用する:

多くのクロック配置エラーは、CLOCK_DEDICATED_ROUTE 制約を FALSE に設定することによって無効にできます。 

エラー メッセージには、このエラーを無効にするのに必要な制約構文が示されています。このエラーは通常、クロック信号が最適に配線されない、または間違った配置のためにまったく配線されないことが原因で発生します。

このエラーを無効にすると、配置を続行して間違った配置を調査できるようになるため便利です。最適でない配線が特定され、許容範囲内にあると判断されない限り、このエラーを無効にしてビットストリームを生成しないでください。

この制約の詳細と使用ケースは、『UltraFast 設計手法ガイド (Vivado Design Suite 用)』 (UG949) を参照してください。

https://japan.xilinx.com/support/documentation/sw_manuals/ug949-vivado-design-methodology.pdf



3) report_clock_utilization コマンドを使用して、クロック配置フロアプランをエクスポートする:


I/O およびクロック配置により、デザインのグローバルおよびリージョナル クロックに対して複雑なフロアプランが作成されます (クロック領域が使用されすぎないようにするため)。これには、各クロック ドメインを割り当てる Pblock 制約、および使用できるクロック領域のリストが含まれます。

-write_xdc オプションを含む report_clock_utilization コマンドは、調査および編集用にクロック配置のフロアプランをエクスポートするために使用できます。

このコマンドを使用すると、クロック プリミティブ使用率、クロック ルート割り当て、クロック領域ごとの配線リソース使用率、クロック ネット名、および各クロック領域のロードもレポートされます。


このコマンドは、place_ports コマンド (上記を参照) を実行してフロアプランを生成した後で実行してください。 

多すぎるクロックが配置されてクロック領域が使用されすぎた場合、このレポートを使用して、問題のあるクロック領域に割り当てられているクロックを特定することができます。 

ロードが固定されていないクロックを、使用できるグローバル クロック リソースがある異なるクロック領域に移動するように、Pblock 制約を後で変更することができます。

このレポートは、割り当てられているクロック領域が少なすぎてフィット エラーを引き起こしている可能性のあるクロックを特定するために使用することもできます。

この場合は、問題のクロックのロードにより多くのクロック領域を割り当てるように Pblock 制約を変更できます。

クロック配置フロアプランを変更する方法の詳細は、(Xilinx Answer 66386) を参照してください。


AR# 67203
日付 04/06/2017
ステータス アクティブ
種類 一般
デバイス
ツール