AR# 36215

PCI Express のデザイン アドバイザリ - BAR レジスタを読み出すとすべて 0 が返される

説明

シミュレーションで、BAR 0 を読み出すとすべて 0 が返されます。BAR のサイズに関する情報が返されないのはなぜですか。

メモ : このアンサーは、PCI Express のザイリンクス ソリューション センタ (ザイリンクス アンサー 34536) の一部です。PCI Express のザイリンクス ソリューション センタには、PCIe に関する質問への回答が掲載されています。PCIe を使用したデザインを新しく作成する場合や、問題をトラブルシュートする場合には、この PCIe のソリューション センタから情報を入手してください。

ソリューション

BAR は、カスタマイズの際に選択したサイズでコンフィギュレーションされます。これにより、BAR の一部のビットが読み出し/書き込み可能に設定され、一部のビットは 0 になります。リセット後は、読み出し/書き込み可能ビットはずべて 0 になります。その後、システムにより BAR にすべて 1 が書き込まれ、BAR に対して読み出しが発行されます。この時点で、読み出しにより返されたデータは、読み出し/書き込み可能ビットは 1、その他のビットは 0 となります。この情報から、システムにより要求されているスペースが判断されます。

たとえば、1MB BAR を要求した場合、読み出しデータは FF00_0008 となります。1 に設定されている最初のビットは、ビット 20 です (2^20 = 1MB)。これはメモリ BAR であるため、下位 4 ビットの意味は異なることに注意してください。

シミュレーションでは、テストベンチでこの動作を再現するようにしないと、BAR はすべて 0 のままになります。

詳細は、PCI ローカル バス仕様 v3.0 のセクション 6.2.5 を参照してください。


改訂履歴
2010 年 8 月 13 日 - 初期リリース

アンサー レコード リファレンス

関連アンサー レコード

AR# 36215
日付 12/15/2012
ステータス アクティブ
種類 一般
デバイス 詳細 概略
IP