AR# 58271

Virtex-7 FPGA Gen3 Integrated Block for PCI Express v2.2 - PG023 のレガシ割り込みモードに関する情報が正しくない

説明

問題の発生したバージョン: 2.2 (PG023)
修正されたバージョンおよびその他の既知の問題 : v1.7 の場合は (ザイリンクス アンサー 47441)、v2.2 の場合は(ザイリンクス アンサー 54645) を参照してください。

『Virtex-7 FPGA Gen3 Integrated Block PCI Express v2.2 製品ガイド』 (PG023) の「レガシ割り込みモード (Legacy Interrupt Mode)」のセクションには、正しくない記述があります。

この章の手順に従うと、2 つの INTA_ASSERT/DEASSERT ペアがルートで受信され、cfg_interrupt_sent が、送信された INTA_ASSERT および INTA_DEASSERT に対して 2 回ではなく、4 回アサートされます。

ソリューション

これは、『Virtex-7 FPGA Gen3 Integrated Block PCI Express v2.2 製品ガイド』 (PG023)の既知の問題です。今後のリリースで修正される予定です。

レガシ割り込みを正しく生成するには、次の手順に従ってください。

  1. まず最初に、ユーザー アプリケーションを使用して cfg_interrupt_int および cfg_interrupt_pending をアサートし、割り込みをアサートします。
     
  2. 次に、コアを使用して cfg_interrupt_sent をアサートし、割り込みが許可されていることを指定します。
    次のクロック サイクルでユーザー アプリケーションを使用して cfg_interrupt_int をディアサートすると、PCI コマンド レジスタの割り込みディスエーブル ビットが 0 に設定されている場合は、コアによって割り込みメッセージ (Assert_INTA) が送信されてアサートされます。
     
  3. ユーザー アプリケーションを使用して cfg_interrupt_int をディアサートした後、コアによってディアサート割り込みメッセージ (Deassert_INTA) が送信されます。
    これは、2 度目の cfg_interrupt_sent のアサートにより示されます。
     
  4. cfg_interrupt_int のアサートは、Assert_INTA の確認がユーザー アプリケーションで受信されるようになるまで行う必要があります。これは、cfg_interrupt_sent のアサートにより示されます。
    cfg_interrupt_int をディアサートすると、コアによって Deassert_INTA が送信されます。
    cfg_interrupt_pending のアサートは、割り込みがサービスされるようになるまで行う必要があります。そうしないと、ステータス レジスタの割り込みステータス ビットが正しくアップデートされません。
    ソフトウェアでこのビットが読み取られた場合、割り込み保留は検出されません。

 

改訂履歴
2013/11/07 - 初版

AR# 58271
日付 01/16/2015
ステータス アクティブ
種類 既知の問題
IP