インテルのみ表示可能 — Ixiasoft
インテルのみ表示可能 — Ixiasoft
2.5.2.1.2. TXマルチレーン・ボンディングおよびRXマルチレーン・デスキュー・アライメント・ステートマシン
Interlakenコンフィグレーションは、Enhanced PCSのTXおよびRX FIFOをInterlakenエラスティック・バッファー・モードにセットします。この動作モードでは、TXとRX FIFOのコントロールおよびステータスポート信号がFPGAファブリックに提供されます。これらの信号は、プロトコルの要件に沿ってMAC層に接続します。これらのFIFOステータスおよびコントロール信号に基づいてトランシーバーのRX FIFOブロックを制御するための、マルチレーンのデスキュー・アライメント・ステートマシンをFPGAファブリックに実装します。
TXソフト・ボンディング・フロー
MAC層ロジックおよびTXソフト・ボンディング・ロジックは、TX FIFOフラグ (tx_fifo_full、tx_fifo_pfull、tx_fifo_empty、tx_fifo_pemptyなど) を監視することによって、tx_fifo_wr_en input 入力を使用してTX FIFOへのInterlakenワードの書き込みを制御します。TX FIFOの読み出し側では、読み出しイネーブルはフレーム・ジェネレーターによって制御されています。tx_enh_frame_burst_en がHighにアサートされると、フレーム・ジェネレーターはTX FIFOからデータを読み出します。
TXチャネル・ソフト・ボンディングを処理するために、TX FIFOプレフィルステージが実装されている必要があります。以下の図に、プレフィルプロセスのステートを示します。
以下の図に、tx_digitalreset のデアサート後に、TXソフト・ボンディング・ロジックがTX FIFOのフィルを開始し、すべてのレーンをフルにするまでを示します。
TX FIFOのプレフィルステージが完了すると、送信レーンが同期し、MAC層はトランシーバーのTX FIFOに有効データの送信を開始します。TX FIFOのオーバーフローやアンダーフローが生じないようにする必要があります。生じた場合にはトランシーバーをリセットし、TX FIFOプレフィルステージを繰り返す必要があります。
シングルレーンのInterlaken実装の場合、TX FIFOソフト・ボンディングは必要ありません。
以下の図に、プレフィルステージ後にネイティブPHYに有効データを送信するMAC層を示します。tx_enh_frame_burst_en がアサートされることにより、フレーム・ジェネレーターがTX FIFOからデータを読み出すことができるようになります。TX MAC層はこの段階で tx_fifo_wr_en を制御でき、FIFOステータス信号に基づいてTX FIFOにデータを書き込むことができます。
RXマルチレーンFIFOデスキュー・ステートマシン
トランスミッターのリンクパートナー、PCB、メディア、ローカルレシーバーPMAで生じるレーン間のスキューを排除するために、レシーバー側でデスキューロジックを追加します。
マルチレーン・アライメント・デスキュー・ステートマシンを実装し、RX FIFOの使用可能なステータスフラグおよびコントロール信号に基づいてRX FIFOの動作を制御します。
rx_digitalreset の終了時にRX FIFOをクリアするには、rx_fifo_align_clr を少なくとも4つの rx_coreclkin サイクルでアサートする必要があります。RX FIFOデスキューが完了しないうちは、各レーンの rx_fifo_rd_en はデアサートされたままにする必要があります。フレームロックになると (これは rx_enh_frame_lock のアサートによって示されます。しかしこの信号は上記のステートフローには記載されていません)、最初のアライメント・ワード (SYNCワード) がそのチャネルで検出された後に、データはRX FIFOに書き込まれます。それに応じて、そのチャネルの部分的に空のフラグ (rx_fifo_pempty) がアサートされます。ステートマシンは、すべてのチャネルの rx_fifo_pempty および rx_fifo_pfull 信号を監視します。どのチャネルの rx_fifo_pfull もアサートしないうちに全てのチャネルの rx_fifo_pempty 信号がデアサートされると、SYNKワードがリンクの全てのレーンで検出されたことを意味し、MAC層は rx_fifo_rd_en を同時にアサートすることにより、全てのRX FIFOからの読み出しを開始することができます。もしくは、全てのチャネルで rx_fifo_pempty 信号がデアサートする前にいずれかのチャネルの rx_fifo_pfull 信号がHighにアサートした場合には、ステートマシンは rx_fifo_align_clr を4サイクルHighにアサートすることによりRX FIFOをフラッシュし、ソフト・デスキュー・プロセスを繰り返す必要があります。
以下の図に、RXデスキューの1つのシナリオを示します。このシナリオでは、pfullレーンがデアサートされ続けている間に、すべてのRX FIFOの部分的に空のレーンがデアサートされています。これはデスキューの成功を示し、FPGAファブリックはRX FIFOからのデータの読み出しを開始します。