AR# 45859

PCI Express デザイン アシスタント - Virtex-6 Integrated Block for PCI Express を使用しているときのレシーバー検出バイパス方法

説明


レシーバーがリンクの一方にあるかどうかを検出するため、レシーバー検出がトランスミッターにより使用されます。Virtex-6 Integrated Block for PCI Express および GTX トランシーバーではこの機能がサポートされています。しかし、ボードのシグナル インテグリティやリンク パートナー レシーバーとの問題などの理由から、このレシーバー検出機能をバイパスして、コアを直接 LTSSM 収集 (POLLING) ステートに遷移させたほうがよい場合があります。

注記 :このアンサーは、PCI Express のザイリンクス ソリューション センタ (ザイリンクス アンサー 34536) の一部です。PCI Express のザイリンクス ソリューション センターには、PCIe に関するすべての質問が集められています。PCI Express を使用した新規デザインを開始したり、問題をトラブルシュートする場合には、この PCI Express のソリューション センターから正確な情報を入手してください。

ソリューション


DETECT ステートにあるとき、統合ブロックにより、GTX トランシーバーでレシーバー検出を実行するように指示するため、PIPETXRCVRDET がアサートされます。この信号の名前は変更され、gtx_wrapper_v6.v[hd] では TXDetectRx になっています。レシーバーが任意のレーンにある場合、GTX トランシーバーは RXSTATUS で 011b をアサートし、1 サイクル間 PHYSTATUS を High にアサートして応答します。

この GTX 応答をバイパスして、常にレシーバーがあるとブロックに指示したほうがよいケースがあります。これは、gtx_wrapper_v6.v[hd] ファイルに次のコードを追加して設定します。

この設定は PCI Express 仕様に準拠しているわけではありませんので注意してください。 しかし、現実的に考えて、これが原因で問題が発生する可能性はあまりありません。実際にレシーバーが任意のレーンにない場合、POLLING ステートへの遷移時にブロックは TS1 トレーニング セットを送信する必要があります。しかし、CONFIGURATION に入ると、ブロックはレーンが使用されていないことを認識し、GTX トランシーバーに未使用レーンに電気的アイドル信号を送信するよう指示を出します。

Verilog

//Add the following
wire [(NO_OF_LANES*3)-1:0] int_RxStatus;
reg [(NO_OF_LANES*3)-1:0] reg_RxStatus;

always @*
begin
if (TxDetectRx)
reg_RxStatus <= 24'b011011011011011011011011;
else
reg_RxStatus <= int_RxStatus;
end

assign RxStatus = reg_RxStatus;

// Change the following
.USER_RX_STATUS ( RxStatus[(3*i)+2:(3*i)] ), //O
// to
.USER_RX_STATUS ( int_RxStatus[(3*i)+2:(3*i)] ), //O

VHDL

//Add the following
signal int_RxStatus : std_logic_vector(((NO_OF_LANES * 3) - 1) downto 0);
signal reg_RxStatus : std_logic_vector(((NO_OF_LANES * 3) - 1) downto 0);

process (all)
begin
if (TxDetectRx = '1') then
reg_RxStatus <= "011011011011011011011011";
else
reg_RxStatus <= int_RxStatus;
end if;

RxStatus <= reg_RxStatus;
end process;

// Change the following
USER_RX_STATUS => RxStatus_v6pcie7((3 * i) + 2 downto (3 * i)), --O
// to
USER_RX_STATUS => int_RxStatus((3 * i) + 2 downto (3 * i)), --O

改訂履歴 :
2012/1/17 - 初版
AR# 45859
日付 03/06/2013
ステータス アクティブ
種類 一般
IP