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

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

2.4.2.2.1. 標準PCSを使用したクロック補償

RX PCSとFPGAファブリック間のクロック差を補償するには、次のいずれかのモードで標準PCSのRate Match FIFOを使用します。
  • Basic 10ビットPMAモードのRate Match FIFO
  • Basic 20ビットPMAモードのRate Match FIFO
  • GbEモードのRate Match FIFO
  • PIPEモードのRate Match FIFO
  • PIPE 0 ppmモードのRate Match FIFO

Basic (Single Width) モードでのレートマッチFIFO

この手順は、レートマッチFIFO動作のみをカバーしています。
  1. RX rate match FIFO modeリストでbasic (single width)を選択します。
  2. 以下に示すパラメーターに値を入力します。
    パラメーター 説明
    RX rate match insert/delete +ve pattern (hex) 20ビットのデータを16進数の文字列で記述 最初の10ビットはスキップパターンに対応し、最後の10ビットはコントロール・パターンに対応します。スキップパターンのディスパリティーは中立である必要があります。
    RX rate match insert/delete -ve pattern (hex) 20ビットのデータを16進数の文字列で記述 最初の10ビットはスキップパターンに対応し、最後の10ビットはコントロール・パターンに対応します。スキップパターンのディスパリティーは中立である必要があります。

    ve (電圧エンコード) はNRZ_L条件であり、+veが0をエンコードし、–veが1をエンコードします。veは、特にレートマッチャーで使用されるランニング・ディスパリティー (+/–RD) です。リカバリークロックとローカルクロックのppm差 (プロトコルにより定義される) に応じて、レートマッチャーは最大4のskipパターン (中立ディスパリティー) を挿入または削除します。コントロール・ワードが交互に正と負のディスパリティーになるので、skipワードの挿入または削除の後にも最終的には中立性が保たれます。

    以下の図で、最初のスキップクラスターは、/K28.5/コントロール・パターンとそれに続く2つの/K28.0/スキップパターンを有しています。2番目のスキップクラスターは、/K28.5/コントロール・パターンとそれに続く4つの/K28.0/スキップパターンを有しています。レートマッチFIFOは、最初のスキップクラスターから/K28.0/スキップパターンを1つだけ削除し、削除後のクラスターに少なくとも1つのスキップパターンが残るようにします。合計で3つのスキップパターン削除をする必要があるので、2番目のクラスターから2つのスキップパターンを削除します。

    レートマッチFIFOはクラスターに最大で4つまでのスキップパターンを挿入できますが、これは挿入後のクラスターでスキップパターンが5つを超えない場合に限ります。

    図 44. 3つのスキップパターンの削除が必要とされるレートマッチFIFO削除

    以下の図で、/K28.5/はコントロール・パターンであり、中立ディスパリティーの/K28.0/はスキップパターンです。最初のスキップクラスターは、/K28.5/コントロール・パターンとそれに続く3つの/K28.0/スキップパターンを有しています。2番目のスキップクラスターは、/K28.5/コントロール・パターンとそれに続く2つの/K28.0/スキップパターンを有しています。レートマッチFIFOは、最初のスキップクラスターに/K28.0/スキップパターンを2つだけ追加し、追加後のクラスターのスキップパターンが最大でも5つ以下に保たれるようにします。合計で3つのスキップパターンを挿入する要件を満たすために、2番目のクラスターにスキップパターンを1つ挿入します。

    図 45. 3つのスキップパターンの挿入が必要とされるレートマッチFIFO挿入

    以下の図に、アップストリームのトランスミッター・リファレンス・クロック周波数がローカル・レシーバー・リファレンス・クロック周波数よりも大きい場合のD5の削除を示します。削除が行われる際に、rx_std_rmfifo_full が1パラレル・クロック・サイクルの間アサートされます。

    図 46. D5の受信後にフルになるレートマッチFIFO

    以下の図に、ローカル・レシーバー・リファレンス・クロック周波数がアップストリームのトランスミッター・リファレンス・クロック周波数よりも大きい場合のスキップシンボルの挿入を示します。挿入が行われる際に、rx_std_rmfifo_empty が1パラレル・クロック・サイクルの間アサートされます。

    図 47. D3の受信後に空になるレートマッチFIFO

Basic (Double Width) モードのレートマッチFIFO

  1. RX rate match FIFO modeリストでbasic (double width)を選択します。
  2. 以下に示すパラメーターに値を入力します。
    パラメーター 説明
    RX rate match insert/delete +ve pattern (hex) 20ビットのデータを16進数の文字列で記述 最初の10ビットはスキップパターンに対応し、最後の10ビットはコントロール・パターンに対応します。スキップパターンのディスパリティーは中立である必要があります。
    RX rate match insert/delete -ve pattern (hex) 20ビットのデータを16進数の文字列で記述 最初の10ビットはスキップパターンに対応し、最後の10ビットはコントロール・パターンに対応します。スキップパターンのディスパリティーは中立である必要があります。

    レートマッチFIFOは、レートマッチFIFOのオーバーフローを避けるために、必要なだけのスキップパターンのペアをクラスターから削除できます。ただし、レートマッチFIFOは、2つの10ビット・スキップ・パターンが20ビット・ワードのLSByteおよびMSByteの同じクロックサイクルに現れる場合にのみ、スキップパターンのペアを削除できます。2つのスキップパターンが、クロックサイクルのMSByteおよび次のクロックサイクルのLSByteにまたがって生じた場合には、レートマッチFIFOはそのスキップパターンのペアを削除できません。

    以下の図で、最初のスキップクラスターは、LSByteに/K28.5/コントロール・パターンを、クロックサイクルのMSByteに/K28.0/スキップパターンを有しており、次のクロックサイクルのLSByteに/K28.0/スキップパターン1つが続きます。このスキップクラスターの2つのスキップパターンは、同一のクロックサイクル内で生じていないため、レートマッチFIFOはこれらを削除できません。2番目のスキップクラスターは、クロックサイクルのMSByteに/K28.5/コントロール・パターンを有しており、次の2サイクルで/K28.0/スキップパターンのペア2つが続きます。3つのスキップパターンを削除する要件を満たすために、レートマッチFIFOは、2番目のスキップクラスターから/K28.0/スキップパターンのペアを両方とも削除します (合計で4つのスキップパターンが削除されます)。

    レートマッチFIFOは、レートマッチFIFOのアンダーランを避けるために、必要なだけのスキップパターンのペアをクラスターに挿入できます。10ビットのスキップパターンは、20ビット・ワードのMSByte、LSByte、あるいはその両方に生じさせることができます。

    図 48. 4つのスキップパターンの削除が必要とされるレートマッチFIFO削除/K28.5/はコントロール・パターンであり、中立ディスパリティーの/K28.0/はスキップパターンです。

    以下の図で、/K28.5/はコントロール・パターンであり、中立ディスパリティーの/K28.0/はスキップパターンです。最初のスキップクラスターは、LSByteに/K28.5/コントロール・パターンを、クロックサイクルのMSByteに/K28.0/スキップパターンを有しています。3つのスキップパターンを挿入する要件を満たすために、レートマッチFIFOは、このスキップクラスターにスキップパターンのペアを挿入します。

    図 49. 4 つのスキップパターンの挿入が必要とされるレートマッチFIFO挿入

    以下の図に20ビット・ワードD7D8の削除を示します。

    図 50. 20ビット・ワードD5D6を受信した後フルになるレートマッチFIFO

    以下の図に2つのスキップシンボルの挿入を示します。

    図 51. 20ビット・ワードD5D6を読み出した後に空になるレートマッチFIFO

GbEのレートマッチFIFO

レートマッチFIFOは、アップストリームのトランスミッターとローカル・レシーバー・リファレンス・クロックとの間のppm (Part-Per-Million) での周波数の違いを、最高125 MHz ± 100 ppm差まで補償します。
注: (125 MHz + 100 ppm) - (125 MHz - 100 ppm) = 200 ppmと計算した場合にのみ合計が200 ppm になります。一方、(125 MHz + 0 ppm) - (125 MHz - 200 ppm) は仕様に含まれません。

IEEE 802.3-2008仕様に記載された規則に従って、GbEプロトコルでは、トランスミッターがパケット間ギャップ (IPG) 中にIdleオーダーセット/I1/ (/K28.5/D5.6/) および/I2/ (/K28.5/D16.2/) を送信することが要求されます。

レートマッチ動作は、ワードアライナー内の同期ステートマシンが rx_syncstatus 信号をHighに駆動することによって同期を得られたことを示した後に開始します。レートマッチャーは/I2/オーダーセットのシンボル/K28.5/および/D16.2/の両方を動作のペアとして削除または挿入し、レートマッチFIFOのオーバーフローやアンダーフローを防ぎます。レートマッチ動作では、/I2/オーダーセットを必要なだけ挿入または削除することができます。

次の図に、3つのシンボルを削除する必要があるレートマッチの削除動作の例を示します。レートマッチFIFOが削除できるのは/I2/オーダーセットのみであるため、これは2つの/I2/オーダーセットを削除します (4つのシンボルが削除されます)。

図 52. レートマッチFIFOでの削除


次の図に、1つのシンボルを挿入する必要がある場合のレートマッチFIFOの挿入の例を示します。レートマッチFIFOが挿入できるのは/I2/オーダーセットのみであるため、これは1つの/I2/オーダーセットを挿入します (2 つのシンボルが挿入されます)。

図 53. レートマッチFIFOでの挿入


rx_std_rmfifo_full および rx_std_rmfifo_empty がFPGAファブリックに送られ、レートマッチFIFOのフルおよび空の状態を示します。

レートマッチFIFOは、FIFOフル状態を解消するためのコードグループの削除を行いません。リカバリークロックで少なくとも2サイクル rx_std_rmfifo_full フラグをアサートし、レートマッチFIFOフルを示します。次の図に、書き込みポインターが読み出しポインターよりも早い場合のレートマッチFIFOがフルの状態を示します。

図 54. レートマッチFIFOがフルの状態


レートマッチFIFOは、FIFOが空である状態を解消するためのコードグループの挿入を行いません。リカバリークロックで少なくとも2サイクル rx_std_rmfifo_empty フラグをアサートし、レートマッチFIFOが空であることを示します。以下の図に、読み出しポインターが書き込みポインターよりも早い場合の、レートマッチFIFOが空の状態を示します。

図 55. レートマッチFIFOが空の状態


レートマッチFIFOがフルおよび空の状態の場合には、rx_digitalreset 信号をアサートし、レシーバーPCSブロックをリセットする必要があります。

PIPEのクロック補償

詳細については、Gen1およびGen2のクロック補償およびGen3クロック補償の項を参照してください。