Eタイル・トランシーバーPHYユーザーガイド

ID 683723
日付 12/09/2021
Public
ドキュメント目次

8.2. PRBS使用モデル

PRBS使用モデルを構成するのは、PRBSパターン・ジェネレーターおよび検証ツールのコンフィグレーションと、ハードPRBSエラーカウンターのコンフィグレーションです。PMA Directモードを使用して、PRBS (10G/25G) チャネルを実装します。

異なるPRBSパターンのコンフィグレーションには、0x84、0x85、0x86、および0x87 Avalon® メモリーマップド・インターフェイス・アドレスを使用します。0x84および0x85 Avalon® メモリーマップド・インターフェイス・アドレスは、PRBSパターンコードを指します。0x86および0x87 Avalon® メモリーマップド・インターフェイス・アドレスは、PMAコード・アドレス0x02を指します。

図 110.  Avalon® Memory-Mappedインターフェイスを使用したPRBSのPMA属性の設定
表 72.  PRBSコントロールPMA属性コードの定義、PMA属性コード0x02、PRBSのイネーブル
アドレス 入力/出力 定義
0x84[2:0] 入力

3'b000: prbs7

3'b001: prbs9

3'b010: prbs11

3'b011: prbs15

3'b100: prbs23

3'b101: prbs31

3'b110: prbs13

3'b111: ユーザー

0x84[4] 入力 エラー時に再シード
0x84[5] 入力 自動シード訂正 (発生した場合、ジェネレーターはすべて「0」からすべて「1」になります)
0x84[7] 入力 エラー時に停止 (RX)
0x85[0] 入力 TX PRBSGENをロード
0x85[1] 入力 RX PRBSGENをロード
表 73.  PRBSコントロールPMA属性コードの定義、PMA属性コード0x02、PRBSのディスエーブル
アドレス 入力/出力 定義
0x85[7:0] 0x84[7:0] 入力

コードのディスエーブル

0x3ff: 両方のジェネレーターをディスエーブルする

0x1ff: TX PRBSGENをディスエーブルする

0x2ff: RX PRBSGENをディスエーブルする

0x89[7:0] 0x88[7:0] 戻り値

0x00: 失敗 (バックグラウンド・プロセスには、要求されたコンフィグレーションを変更する可能性のある動作を完了するための時間が必要なため)。しばらく待ってから、要求を再発行してください。

0x02: 成功

例えば、PRBS31ジェネレーターとチェッカーを使用するには、次の手順を実行します。

  1. TX PRBS31を設定します。
    1. 0x84[7:0] = 0x25を書き込みます。
    2. 0x85[7:0] = 0x01を書き込みます。
    3. 0x86[7:0] = 0x02を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  2. RX PRBS31を設定します。
    1. 0x84[7:0] = 0x35を書き込みます。
    2. 0x85[7:0] = 0x02を書き込みます。
    3. 0x86[7:0] = 0x02を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  3. トランシーバー・チャネルをまだ実行していない場合は、イネーブルします。
    1. 0x84[7:0] = 0x07を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x01を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  4. tx_readyrx_ready が両方とも1になるまで待ちます。
  5. データ・コンパレーターを設定します。
    1. 0x84[7:0] = 0x03を書き込みます。
    2. 0x85[7:0] = 0x02を書き込みます。
    3. 0x86[7:0] = 0x03を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  6. エラーカウンターをリセットします。
    1. 0x84[7:0] = 0x00を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x17を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  7. 32ビット幅のエラーカウンターが蓄積されるまで待ちます。
  8. 読み出すエラー数を設定します。
    1. 0x84[7:0] = 0x03を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x18を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  9. エラーカウンターの下位16ビットを読み出します
    1. 0x84[7:0] = 0x00を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x1Aを書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
    9. 0x88[7:0] を読み出します。これは、エラーカウンターのビット [7:0] を表します。
    10. 0x89[7:0] を読み出します。これは、エラーカウンターのビット [15:8] を表します。
  10. エラーカウンターの上位16ビットを読み出します。
    1. 0x84[7:0] = 0x00を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x1aを書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0になるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
    9. 0x88[7:0] を読み出します。これは、エラーカウンターのビット [23:16] を表します。
    10. 0x89[7:0] を読み出します。これは、エラーカウンターのビット [31:24] を表します。
注: PMAパフォーマンス検証テスト中、継続アダプテーションがバックグラウンドで実行中の場合、エラービットを蓄積してBERを計算することはできません。これは、ハードPRBSエラーカウンターがビジー状態であるためです。継続アダプテーション中にエラーを読み出すには、ソフトPRBSジェネレーターと検証ツールを実装します。継続アダプテーションの停止後は、エラーはハードPRBSエラーカウンターに蓄積できます。