AR# 60489

7 Series FPGAs Transceivers Wizard v3.2 以前のデザイン アドバイザリ - GTH/GTP プロダクションの RX リセット シーケンスが停止することがある

説明

GTPE2 + GTHE2 のウィザードの RX モジュールでは、(ザイリンクス アンサー 53779) および (ザイリンクス アンサー 53561) に記述されている 7 シリーズGTH および GTP プロダクション RX リセット シーケンス要件に従って、一連の DRP 操作が実行されます。
 
これらの操作は、次のとおりです。

(a) 内部データ幅の DRP 値を読み出します。
(b) DRP 値を書き込みます (16 ビット内部データ幅に強制)。
(c) (a) で読み出された DRP 値を書き込み、元の内部データ幅を復元します。
 
(b) の後、(c) の前にモジュールがユーザーによる別のリセットを受信すると、次の反復の (a) で 16 ビット内部データ幅が読み出され、シーケンスの最後で 16 ビット内部データ幅が復元されます。

そのため、トランシーバーが恒久的に 16 ビット モードになってしまい、元に戻すにはデバイスを再プログラムするしかありません。

ソリューション

この問題は、Vivado 2014.2 のウィザード v3.3 で修正されています。
 
v3.2 以前のウィザードでは、次の回避策を使用してください。

RX シーケンス モジュール ファイルの例がこのアンサーの末尾に添付されています。

 

1.  下のモジュールを RX シーケンス モジュールに追加します。
 
reg flag =1'b0;
reg [15:0] original_rd_data;
always @ (posedge DRPCLK)
begin
if( state == wr_16 || state == wait_pmareset || state == wr_20 || state == wait_wr_done1)
           flag <= 1'b1;
else if(state == wait_wr_done2)
           flag <= 1'b0;
end
always @ (posedge DRPCLK)
begin
if( state == wait_rd_data && DRPRDY == 1'b1 && flag == 1'b0)
            original_rd_data <= DRPDO;
end
 
2. センシティビティ リストにフラグと original_rd_data を追加します。

次のロジックを入力します。
 

always @ (DRPRDY or state or rd_data or DRPDO or gtrxreset_ss or flag or original_rd_data) begin

 
これを、次の部分と置き換えます。
 

always @ (DRPRDY or state or rd_data or DRPDO or gtrxreset_ss) begin


3. wait_rd_data ステートのロジックを置換します。

次のロジックを入力します。
 
wait_rd_data : begin
                                gtrxreset_i = 1'b1;
                if (DRPRDY && !flag) begin
                                next_rd_data = DRPDO;
               end
               else if (DRPRDY && flag) begin
                               next_rd_data = original_rd_data;
               end
               else  begin 
                              next_rd_data = rd_data;
               end
               end
 
これを、次の部分と置き換えます。
 
wait_rd_data : begin 
                                 gtrxreset_i = 1'b1;
                if (DRPRDY)
                                next_rd_data = DRPDO;
                else
                                next_rd_data = rd_data;
                end

影響を受ける IP :

影響を受ける各 IP の詳細は、IP のアンサーを参照してください。


改訂履歴
2014/08/15 - DisplayPort のアンサーを追加
2014/06/23 - Aurora 8B10B のアンサーを追加

2014/05/22 - 初版



添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
gtp_gtrxreset_seq.v 6 KB V

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

関連アンサー レコード

AR# 60489
日付 08/22/2014
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス 詳細 概略
IP