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

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

2.4.4.4.4. 水平および垂直位相のスキャン

水平位相および垂直位相をスイープして、2次元のアイ・ダイアグラムを取得します。

注: 水平位相ステップ (left_phase および right_phase) 前のスイープのゼロBERに対応します。BERのない位相ステップは、例えば位相110から位相20にラップアラウンドする場合があります。
  1. ODI_error_count と呼ばれる130*130 2D浮動小数点配列を作成し、0に初期化します。
  2. ODI_pattern_count と呼ばれる130*130 2D浮動小数点配列を作成し、0に初期化します。
  3. DFEがディスエーブルになっている場合、 28Step 5からStep 37を2回繰り返します。
    1. 最初の反復では、0x144[2]0x0 に設定し、0x14D[0]0x0 に設定します。
    2. 2回目の反復では、0x144[2]0x1 に設定し、0x14D[0]0x1 に設定します。
  4. DFEがイネーブルになっている場合28Step 5からStep 37を4回繰り返します。
    1. 最初の反復では、0x144[2]0x0 に設定し、0x14D[0]0x0 に設定します。
      1. DFE_tap1_sign = 0の場合、0x156[2]0x0 に設定します。
      2. DFE_tap1_sign = 1の場合、0x156[2]0x1 に設定します。
    2. 2回目の反復では、0x144[2]0x0 に設定し、0x14D[0]0x1 に設定します。
      1. DFE_tap1_sign = 0の場合、0x156[2]0x1 に設定します。
      2. DFE_tap1_sign = 1の場合、0x156[2]0x0 に設定します。
    3. 3回目の反復では、0x144[2]0x1 に設定し、0x14D[0]0x0 に設定します。
      1. DFE_tap1_sign = 0の場合、0x156[2]0x0 に設定します。
      2. DFE_tap1_sign = 1の場合、0x156[2]0x1 に設定します。
    4. 4回目の反復では、0x144[2]0x1 に設定し、0x14D[0]0x1 に設定します。
      1. DFE_tap1_sign = 0の場合、0x156[2]0x1 に設定します。
      2. DFE_tap1_sign = 1の場合、0x156[2]0x0 に設定します。
  5. ターゲットデバイスがHタイル・プロダクションまたはHタイルES3の場合、
    1. 0x100[4]0x1 に設定します。
    2. 0x0[7:0]0x01 に設定し、PreSICEにODIサンプラーのキャリブレーションを要求します。
    3. 0x0 になるまで 0x481[2] を読み出します。
  6. 0x171[4:1]0xB に設定して、Avalon-MMインターフェイスtestmuxをコンフィグレーションします。
  7. 0x157[3:2]0x2 に設定して、奇数のアイをキャプチャーします。
  8. 整数変数 vertical_phase を0に設定し、126に達するまで vertical_phase をインクリメントしながら、Step 9からStep 11を繰り返します。
  9. 垂直位相 < 0x3F の場合、
    1. 0x156[0:2]0x1 に設定して、アイの上半分をキャプチャーします。
    2. 0x143[7:2]0x3Fvertical_phase に設定します。
  10. 垂直位相 >= 0x3Fの場合、
    1. 0x156[0:2]0x0 に設定して、アイの下半分をキャプチャーします。
    2. 0x143[7:2]vertical_phase0x3F に設定します。
  11. 整数 horizontal_phaseleft_phase –10に設定し、right_phase + 10に達するまで horizontal_phase をインクリメントしながら、Step 12からStep 36を繰り返します。
    1. right_phase < left_phase、つまり、アイをラップアラウンドする場合は、right_phase0x80 ずつインクリメントします。
  12. horizontal_phase < 1の場合、0x80 ずつインクリメントします。
  13. horizontal_phase > 128の場合は、0x80 ずつデクリメントします。
  14. 0x145[6:0] をエンコードされた horizontal_phase に設定します。
  15. 0x168[2]0x0 に設定して、シリアル・ビット・カウンターをリセットします。
  16. 0x168[2]を 0x1 に設定して、シリアル・ビット・カウンターのリセットをリリースします。
  17. 0x149[5:0]0x1C に設定し、ODIステータスを読み出します。
  18. 0x17E[1] 290x1 になるまで読み出し、ODIが選択されたビット数を受信して完了したことを示します。
  19. 0x149[5:0]0x1B に設定して、ODIエラービットの数を読み出します。
  20. 0x17E[7:0] 29 を読み出し、整数 ODI_count_A として保存します。
  21. 0x149[5:0]0x1A に設定して、ODIエラービットの数を読み出します。
  22. 0x17E[7:0] 29 を読み出し、整数 ODI_count_B として保存します。
  23. 0x149[5:0]0x19 に設定して、ODIエラービットの数を読み出します。
  24. 0x17E[7:0] 29 を読み出し、整数 ODI_count_C として保存します。
  25. 0x149[5:0]0x18 に設定して、ODIエラービットの数を読み出します。
  26. 0x17E[7:0] 29 を読み出し、整数 ODI_count_D として保存します。
  27. ODI_error_count[horizontal_phase][vertical_phase] = ODI_count_A * 224 + ODI_count_B * 216 + ODI_count_C * 28 + ODI_count_D + ODI_error_count[horizontal_phase][vertical_phase]
    デバイスがHタイル・プロダクションではない場合、ODI_error_count は実際の数より1大きい場合があります。
  28. 0x149[5:0]0x17 に設定して、ODIエラービットの数を読み出します。
  29. 0x17E[7:0] 29 を読み出し、整数 ODI_pattern_A として保存します。
  30. 0x149[5:0]0x16 に設定して、ODIエラービットの数を読み出します。
  31. 0x17E[7:0] 29 を読み出し、整数 ODI_pattern_B として保存します。
  32. 0x149[5:0]0x15 に設定して、ODIエラービットの数を読み出します。
  33. 0x17E[7:0] 29 を読み出し、整数 ODI_pattern_C として保存します。
  34. 0x149[5:0]0x14 に設定して、ODIエラービットの数を読み出します。
  35. 0x17E[7:0] 29 を読み出し、整数 ODI_pattern_D として保存します。
  36. ODI_pattern_count[horizontal_phase][vertical_phase] = ODI_pattern_A * 224 + ODI_pattern_B * 216 + ODI_pattern_C * 28 + ODI_pattern_D + ODI_pattern_count[horizontal_phase][vertical_phase]
  37. 0x157[3:2]0x1 に設定して偶数のアイをキャプチャーし、Step 8を繰り返します。
  38. 水平位相および垂直位相のBER = ODI_error_count [horizontal_phase] [vertical_phase] / ODI_Pattern_count [horizontal_phase] [vertical_phase]
28 DFEモードを決定するには、0x161[6] を読み出します。0x161[6] = 1 の場合、DFEはdisabledになります。
29 レジスター0x149 [5:0]の設定から0x17Eまたは0x17Fの読み出しまで25 µs待ちます。