インテル® Arria® 10 トランシーバーPHY ユーザーガイド

ID 683617
日付 4/20/2017
Public
ドキュメント目次

6.16.1. PRBS データパターン・ジェネレーターおよびチェッカーの使用

Arria® 10 PRBS ジェネレーターおよびチェッカーを使用することで、プロトコルスタックの上位層を完全に実装することなくトラフィックをシミュレーションし、高速リンクを容易に特性評価できます。 PRBS ジェネレーターは、セルフ・アライメント・パターンを生成し、把握している固有シーケンスの個数をカバーします。PRBS パターンはリニア・フィードバック・シフトレジスター (LFSR) によって生成されるため、次のパターンは以前のパターンをもとに決定されます。PRBS チェッカーがそのパターンの一部を受信すると、次に受信するデータシーケンスが正確であるかどうかを確認するために、次のビットシーケンスを生成することができます。

PRBS ジェネレーターおよびチェッカーはPCS を介して標準データパスとエンハンスト・データパス間で共有されます。このため、PRBS ジェネレーターおよびチェッカーが持つ制御信号と制御レジスターは一組だけとなります。様々なPCS および共有PRBS ジェネレーターからのデータラインは、PMA に送信される前にマルチプレクサー化されます。PRBS ジェネレーターがイネーブルされると、PRBS データラインのデータがPMA に送信されるよう選択されます。PCS からのデータ、またはPRBS ジェネレーターから生成されたデータは、常時PMA に送信することが可能です。

PRBS ジェネレーターおよびチェッカーは、10 ビットと64 ビットの2 種類の幅のPCS-PMA インターフェイスにコンフィグレーションが可能です。PRBS9 は、10 ビットおよび64 ビットPCS-PMA 幅の両方で使用可能です。他のPRBS パターンは、64 ビットPCS-PMA 幅でのみ使用可能です。PRBS ジェネレーター・パターンは、PCS-PMA インターフェイス幅が10 ビットあるいは64 ビットでコンフィグレーションされている場合にのみ使用することができます。その他のPCS-PMA 幅に対して、PRBS ブロックに正しいクロックが使用されていることを確認するには、PRBS ジェネレーターやチェッカーを使用する前にまずは幅を10 ビットか64 ビットのどちらかにコンフィグレーションしておく必要があります。たとえば、トランシーバーが20 ビットのPCS/PMA インターフェイスにコンフィグレーションする場合、PRBS ジェネレーターやチェッカーを設定する前に、まずはPCS-PMA の幅を10 ビットでリコンフィグレーションします。PRBS 設定は、PCS/PMA 幅を自動で変更することはありません。

低周波の検証を行う場合、10 ビットPCS-PMA 幅ではPRBS9 が使用可能です。データレートをもとにPRBS9 は10 ビット幅または64 ビット幅にコンフィグレーションが可能です。FPGA ファブリック‐PCS インターフェイスは、FPGA コアに対して推奨されるスピードの範囲で動作させる必要があります。したがって、FPGA ファブリック‐PCS インターフェイスのパラレルクロックがこの動作範囲で動作するように、どちらかのビット幅のモードでPRBS9 をコンフィグレーションしなければいけません。

例:

  • データレートが2.5 Gbps でPRBS9 を使用するのであれば、PRBS9 を10 ビット・モード (PCS-PMA 幅 = 10) に設定します。この場合、パラレルクロック周波数 = データレート/PCS-PMA 幅 = 2500 Mbps/10 = 250 MHz、となります。
  • データレートが6.4 Gbps でPRBS9 を使用するのであれば、PRBS9 を64 ビット・モード (PCS-PMA 幅 = 64) に設定します。この場合、パラレルクロック周波数 = データレート/PCS-PMA 幅 = 6400 Mbps/64 = 100 MHz、となります。
  • データレートが12.5 Gbps でPRBS9 を使用するのであれば、PRBS9 を64 ビット・モード (PCS-PMA 幅 = 64) に設定します。この場合、パラレルクロック周波数 = データレート/PCS-PMA 幅 = 12500 Mbps/64 = 195.3125 MHz、となります。
表 288.  PRBS がサポートする多項式とデータ幅データレートが3 Gbps より低い場合は、10 ビット・モードのPRBS9 を使用します。
パターン 多項式 64 ビット 10 ビット
PRBS7 G(x) = 1+ x6 + x7 X  
PRBS9 G(x) = 1+ x5 + x9 X X
PRBS15 G(x) = 1+ x14 + x15 X  
PRBS23 G(x) = 1+ x18 + x23 X  
PRBS31 G(x) = 1+ x28 + x31 X  

PRBS チェッカーは、FPGA ファブリックに使用可能な以下のコントロール信号とステータス信号を有します。

  • rx_prbs_done:PRBS シーケンスが完全な1 サイクルを完了したことを示します。この信号はrx_prbs_err_clr とともにリセットするまでHigh のままです。
  • rx_prbs_err:エラーが発生した場合、High になります。この信号は、RX FPGA CLK ドメインでキャプチャーできるようパルス拡張されます。
  • rx_prbs_err_clrrx_prbs_err 信号をリセットするために使用します。

PRBS チェッカー・コントロールおよびステータスポートは、Quartus Prime ソフトウェアのネイティブPHY IP パラメーター・エディターを使用してイネーブルします。

ハードPRBS ブロックが使用されている場合は、蓄積されたビットとエラーの個数をカウントするにはPRBS ソフト・アキュムレーターを使用します。アキュムレーターの使用方法やエラー値の判読については、PRBS ソフト・アキュムレーターの項を参照してください。

表 289.  ボンディングしたデザインと非ボンディング・デザインにおけるPRBS ジェネレーターのレジスターマップ
リコンフィグレーション・アドレス (HEX) リコンフィグレーション・ビット 属性名 関連するアドレス 属性エンコーディング ビット・エンコーディング 説明
0x006 [2:0] tx_pma_data_sel 0x8 prbs_pat 3'b100 PRBS Generator Block を選択する
[3] prbs9_dwidth   prbs9_10b 1'b1 10 ビット・モードでPRBS9 をイネーブルする
prbs9_64b 1'b0 64 ビット・モードでPRBS9 をイネーブルする
[6] prbs_clken   prbs_clk_dis 1'b0 PRBS Generator Clock をディスエーブルする
prbs_clk_en 1'b1 PRBS Generator Clock をイネーブルする
0x007 [7:4] prbs_gen_pat 0x8 prbs_7 4'b0001 PRBS7 パターンをイネーブルする
prbs_9 4'b0010 PRBS9 パターンをイネーブルする
prbs_15 4'b0100 PRBS15 パターンをイネーブルする
prbs_23 4'b1000 PRBS23 パターンをイネーブルする
prbs_31 4'b0000 PRBS31 パターンをイネーブルする
0x008 [4] prbs_gen_pat 0x7 prbs_7 1'b0 PRBS7 パターンをイネーブルする
prbs_9 1'b0 PRBS9 パターンをイネーブルする
prbs_15 1'b0 PRBS15 パターンをイネーブルする
prbs_23 1'b0 PRBS23 パターンをイネーブルする
prbs_31 1'b1 PRBS31 パターンをイネーブルする
[6:5] tx_pma_data_sel 0x6 prbs_pat 2'b00 PRBS ジェネレーターをイネーブルする
0x110 [2:0] ser_mode   sixty_four_bit 3'b011 64 ビット・モード
ten_bit 3'b100 10 ビット・モード
0x111 [4:0] x1_clock_source_sel 0x119 xn_non_bonding59 5'b11000 xN ノン・ボンディングをイネーブルする
表 290.  ボンディングしたデザインと非ボンディング・デザインにおけるPRBS チェッカーのレジスターマップ
リコンフィグレーション・アドレス (HEX) リコンフィグレーション・ビット 属性名 関連するアドレス 属性エンコーディング ビット・エンコーディング 説明
0x00A [7] prbs_clken   prbs_clk_dis 1'b0 PRBS Checker Clock をディスエーブルする
prbs_clk_en 1'b1 PRBS Checker Clock をイネーブルする
0x00B [3:2] rx_prbs_mask   prbsmask1024 2'b11 1023 にしきい値をカウンターする
prbsmask128 2'b00 127 にしきい値をカウンターする
prbsmask256 2'b01 255 にしきい値をカウンターする
prbsmask512 2'b10 511 にしきい値をカウンターする
[7:4] prbs_ver 0xC prbs_7 4'b0001 PRBS7 パターンをイネーブルする
prbs_9 4'b0010 PRBS9 パターンをイネーブルする
prbs_15 4'b0100 PRBS15 パターンをイネーブルする
prbs_23 4'b1000 PRBS23 パターンをイネーブルする
prbs_31 4'b0000 PRBS31 パターンをイネーブルする
0x00C [0] prbs_ver 0xB prbs_7 1'b0 PRBS7 パターンをイネーブルする
prbs_9 1'b0 PRBS9 パターンをイネーブルする
prbs_15 1'b0 PRBS15 パターンをイネーブルする
prbs_23 1'b0 PRBS23 パターンをイネーブルする
prbs_31 1'b1 PRBS31 パターンをイネーブルする
[3] prbs9_dwidth   prbs9_10b 1'b1 PRBS9 10 ビット
prbs9_64b 1'b0 PRBS9 64 ビット
0x13F [3:0] deser_factor   10 4'b0001 10 ビット・モード
64 4'b1110 64 ビット・モード
59 x1_clcok_source_sel 設定をxN のノン・ボンディングに変更する前に、レジスター0x111[5:0]の値を読み込んで保存する必要があります。PRBS ジェネレーターをディスエーブルするには、Read-Modify-Write アドレスにもとの値を書き込みます。