インテル® Stratix® 10 LタイルおよびHタイル・トランシーバーPHYユーザーガイド

ID 683621
日付 3/03/2020
Public
ドキュメント目次

2.5.1.2.2. Gen3の機能

以下の項で、インテルStratix 10トランシーバー・ブロックのPIPE Gen3機能向けのサポートについて説明します。

PCSはPIPE 3.0ベース仕様をサポートしています。32 ビット幅のPIPE 3.0ベースのインターフェイスは、電気的アイドルの送信、レシーバー検出、および速度ネゴシエーションとコントロールといったPHY機能を制御します。

自動速度ネゴシエーション (ASN)

PIPE Gen3モードでは、Gen1 (2.5 Gbps)、Gen2 (5.0 Gbps)、およびGen3 (8.0 Gbps) の信号方式のデータレート間のASNが可能になります。信号方式レートの切り替えは、周波数スケーリング、および固定32 ビット幅のPIPE 3.0ベースのインターフェイスを使用するPMAおよびPCSブロックのコンフィグレーションによって実現されます。

PMAはGen1、Gen2、およびGen3のデータレート間でクロックを切り替えます。ノンボンディングx1チャネルでは、ASNモジュールは、チャネル内の速度ネゴシエーションを容易にします。ボンディングx2、x4、x8およびx16チャネルでは、ASNモジュールは、レート切り替えを制御するためのマスターチャネルを選択します。マスターチャネルは、速度変更要求を他のPMAおよびPCSチャネルへ振り分けます。

PCIe Gen3速度ネゴシエーション・プロセスは、Hard IPまたはFPGAファブリックがレート変更を要求した際に開始されます。次に、ASNがPCSをリセットにし、クロックパスを動的に遮断して現在アクティブのステートのPCS (Standard PCSまたはGen3 PCSのいずれか) を切り離します。Gen3への、もしくはGen3からの切り替えが要求された場合には、ASNは自動的にマルチプレクサーで適切なPCSクロックパスおよびデータパスの選択を選定します。それから、ASNブロックはデータレートを切り替えるためにPMAブロックに要求を送信し、確認のためのレート変更完了信号を待ちます。PMAがレート変更を完了し、ASNブロックに確認を送信すると、ASNはクロックパスをイネーブルして新しいPCSブロックを結びつけ、PCSのリセットをリリースします。ASNブロックが pipe_phy_status 信号をアサートすると、このプロセスが正常に完了したことを示します。

注: ネイティブPHY IP コア - PIPEのコンフィグレーションでは、pipe_rate[1:0] をセットして、トランシーバー・データレート切り替えシーケンスを開始する必要があります。

レート切り替え

この項では、PIPE Gen1 (2.5 Gbps)、Gen2 (5.0 Gbps)、およびGen3 (8.0 Gbps) モード間での自動レート変更についての概要を説明します。
インテルStratix 10デバイスには、すべてのPIPE速度変更を処理する、Standard PCSおよびGen3 PCSに共通のASNブロックが1つあり、これはPMA-PCSインターフェイスに位置されています。レート切り替えが要求されると、データ・スループットを満たすようにPIPEインターフェイスのクロックレートが調整されます。
PIPE Gen3 32ビットPCSのクロックレート
PCIe Gen3モードのイネーブル Gen1 Gen2 Gen3
レーン・データレート 2.5 Gbps 5 Gbps 8 Gbps
PCSクロック周波数 250 MHz 500 MHz 250 MHz
FPGAファブリックのIPクロック周波数 62.5 MHz 125 MHz 250 MHz
PIPEインターフェイス幅 32ビット 32ビット 32ビット
pipe_rate[1:0] 2'b00 2'b01 2'b10
レート切り替えの変更以下のブロックレベル図に、ASNとStandard PCSおよびGen3 PCSとの接続の概略を示します。

Gen1、Gen2、Gen3の間で速度変更のシーケンスは以下のように生じます。

  1. FPGAファブリックに実装されたPHY-MAC層は、pipe_rate[1:0] を介してレート変更を要求します。
  2. ASNブロックは、TX FIFOがデータを放出するまで待機します。次にASNブロックは、PCSリセットをアサートします。
  3. ASNは、Standard PCSおよびGen3 PCSへクロック停止信号をアサートし、動的にクロックを遮断します。
  4. Gen3の速度へ、またはGen3の速度からレートを変更する際には、ASNはクロックおよびデータのマルチプレクサー選択信号をアサートします。
  5. ASNは、pipe_sw[1:0] 出力信号を使用してPMAにレート変更要求を送信します。
  6. ASNは、PMAからの pipe_sw_done[1:0] 入力信号を継続的に監視します。
  7. ASNは pipe_sw_done[1:0] 信号を受信すると、クロック停止信号をデアサートしてクロックをリリースします。
  8. ASNはPCSリセットをデアサートします。
  9. ASNは、PHY-MACインターフェイスに速度変更の完了を送信します。これには、PHY-MACインターフェイスへの pipe_phy_status 信号を使用します。
速度変更シーケンス

Gen3トランスミッターの電気的アイドルの生成

PIPE 3.0ベースのインターフェイスでは、低消費電力ステート時にトランスミッターを電気的アイドルにすることができます。トランスミッターを電気的アイドルにするために、値が0x66のシンボル16個で構成されるElectrical Idle Ordered Setを送信する必要があります。電気的アイドル時のトランスミッターの差動モードおよびコモンモードの電圧レベルは、PCIe Base Specification 3.0 に基づきます。

Gen3クロック補償

Gen3 PIPEトランシーバー・コンフィグレーション・ルールを使用する場合は、ネイティブPHY IPコアからこのモードをイネーブルします。

PCIeのプロトコル要件に対応し、かつ、発信元と終端の装置間で最大±300 ppmまでのクロック周波数の差を補償するために、レシーバーチャネルはレートマッチFIFOを有しています。レートマッチFIFOは、4つのSKPキャラクター (32 ビット) を挿入または削除し、FIFOが空またはフルにならないようにします。レートマッチFIFOがほぼフルの場合は、FIFOは4つのSKPキャラクターを削除します。レートマッチFIFOがほぼ空の場合は、FIFOは次の使用可能なSKPオーダーセットの先頭にSKPキャラクターを挿入します。pipe_rx_status[2:0] 信号は、FIFOフル、空、挿入、および削除を表示します。
注: 波形については、Gen1およびGen2のクロック補償の項を参照してください。

Gen3パワーステート・マネジメント

PCIeベース仕様は、PHY層デバイスの消費電力を最小限にするために低消費電力ステートを定義しています。Gen3 PCSには、低電力ステートでトランスミッター・ドライバーを電気的アイドルにする場合を除き、これらの省電力機能は実装されていません。P2低消費電力ステートでは、トランシーバーはPIPEブロッククロックをディスエーブルしません。

図 98. P1からP0への遷移以下の図に、P1からP0への遷移の pipe_phy_status による完了を示します。

CDRコントロール

CDRコントロール・ブロックは、次に示す機能を実行します。
  • ビットおよびシンボルをアライメントするためのPMA CDRの制御
  • 割り当てられた時間の範囲内までデスキューするためのPMA CDRの制御
  • 他のPCSブロックのステータス信号の生成
PCIeベース仕様は、レシーバーL0sパワーステートを、最長でもGen1信号レートでは4 ms、Gen2では2 ms、Gen3では4 ms以内で抜け出すことを要求しています。トランシーバーは、高速のロック時間に対応するための改善されたCDRコントロール・ブロックを有しています。高速ロック時間は、CDRがGen3の速度に達する際またはGen3の速度から抜け出す際に、新しいマルチプライヤー/ディバイダーの設定に再ロックするために必要です。

ギアボックス

PIPE 3.0仕様により、Gen3 PCSを通過する各128ビット向けにPHYが130ビットのデータを送信する必要があります。インテルは、16ブロックのデータごとに pipe_tx_data_valid 信号を使用して、累積した32 ビットのデータのバックログを送信します。

130ビットのブロックは、32 ビット・データ・パスで、34 (32+2ビットの同期ヘッダー)、32、32、32のように受信されます。最初のサイクルで、ギアボックスは34ビットの入力データを32 ビットのデータに変換します。次の3クロックサイクルの間に、ギアボックスは隣接するサイクルのビットをマージします。ギアボックスで最初の34ビットを32ビットに変換することにより、各シフトが2ビットを余分に含んでいるので、ギアボックスを正常に動作させるためには、16シフトごとにデータ間にギャップが必要です。16シフト後に、ギアボックスは送出されたデータを32ビット余分に有しています。このために入力データストリームにギャップが必要であり、ギャップは、各16ブロックのデータの後で pipe_tx_data_valid を1サイクルLowに駆動することによって生じさせます。

図 99. Gen3のデータ送信