AR# 62770

7 Series Integrated Block for PCI Express / AXI Bridge for PCI Express (Vivado 2013.3 - Vivado 2014.3) のデザイン アドバイザリ - GTP デバイスでのリンク トレーニングの問題

説明

GTP デバイスでの PCIe リンク トレーニングでエラーが発生することがあります。

この問題は、Vivado 2013.3 ~ 2014.3 で生成された次のコアに影響します。

  • 7 Series Integrated Block for PCI Express
  • AXI Bridge for PCI Express

影響を受けるデバイス :

  • すべての Artix-7  
  • Zynq Z-7015  




ソリューション

(ザイリンクス アンサー 53561) および (ザイリンクス アンサー 53779) に説明されているように、GTP デバイスには特定の RX リセット シーケンスがあります。

この要件は、Vivado 2013.2 までで生成されるラッパーには正しく適用されていました。

Vivado 2013.3 では、DRP クロックが 125MHz から 62.5MHz に変更されています。

この変更により、pipe_reset モジュール (125MHz で動作) と drp モジュール (下にリストするコア コンフィギュレーションでは 62.5MHz で動作) の間に同期の問題が発生します。

この問題では、上記のアンサーで説明されている RX リセット シーケンスが本質的にバイパスされてしまい、リンク トレーニングの問題が発生します。

  • Gen1 - x1
  • Gen2 - x1
  • Gen1 - x2
この問題を解決するには、*pipe_clock.v ファイルを次のように変更します。

この変更が必要なのは上記のコア コンフィギュレーションのみで、ほかのコンフィギュレーションでは問題は発生しないので、変更は必要ありません。

変更前 :



//---------- Generate DCLK Buffer ----------------------------------------------
generate if (PCIE_USERCLK2_FREQ <= 3)
    //---------- Disable DCLK Buffer -----------------------
    begin : dclk_i
    assign CLK_DCLK = userclk2_1;                       // always less than 125Mhz
    end
else
    begin : dclk_i_bufg
    //---------- DCLK Buffer -------------------------------
    BUFG dclk_i
    (
        //---------- Input ---------------------------------
        .I                          (clk_125mhz),
        //---------- Output --------------------------------
        .O                          (CLK_DCLK)
    );
    end
endgenerate


変更後 :


//---------- Generate DCLK Buffer ----------------------------------------------
generate if (PCIE_LINK_SPEED != 1)

    begin : dclk_i_bufg
    //---------- DCLK Buffer -------------------------------
    BUFG dclk_i
    (
        //---------- Input ---------------------------------
        .I                          (clk_125mhz),
        //---------- Output --------------------------------
        .O                          (CLK_DCLK)
    );
    end

else

    //---------- Disable DCLK Buffer -----------------------
    begin : dclk_i
    assign CLK_DCLK = clk_125mhz_buf;                      
    end  
endgenerate


この問題は、Vivado 2014.4 リリースで修正される予定です。

改訂履歴
2014/11/24 - 初版

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

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
53561 Artix-7 FPGA GTP トランシーバーのデザイン アドバイザリ: プロダクション シリコンの RX リセット シーケンス要件 N/A N/A
AR# 62770
日付 11/20/2014
ステータス アクティブ
種類 デザイン アドバイザリ
IP