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

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

9.5. RS-FECレジスター

RS-FECレジスター読み出し間の遅延は、少なくとも 10 μsにする必要があります。レジスター書き込みにはそのような要件はありません。その結果、RS-FECレジスターへの連続書き込みが可能になります。

レジスターのアドレスが0x100より大きい場合、そのレジスターを確実に読み出すには、RS-FECに有効なクロックがあることを確認してください。

EタイルネイティブPHY IPコアのRS-FECブロックのリコンフィグレーションとステータスの監視は、専用の Avalon® メモリーマップド・インターフェイスによって行われます。このインターフェイスによって、RS-FECブロックに関連付けられたコントロール・レジスターおよびステータスレジスターを読み書します。チャネル Avalon® メモリーマップド・インターフェイスと呼ばれる別の Avalon® メモリーマップド・インターフェイスによって、EタイルネイティブPHY IPコア内の他のブロックに関連付けられたコントロール・レジスターおよびステータスレジスターを読み書きします。

RS-FEC用の Avalon® メモリーマップド・インターフェイスを構成している8つのインターフェイス・ポートは、ネイティブPHY IPコアのトップレベルで公開されます。

表 83.  RS-FEC Avalon® Memory-Mappedインターフェイス・ポート
ポート名 入力/出力   クロックドメイン
reconfig_rsfec_clk 入力 ワイヤー 該当なし  
reconfig_rsfec_reset 入力 ワイヤー reconfig_rsfec_clk  
reconfig_rsfec_write 入力 ワイヤー reconfig_rsfec_clk  
reconfig_rsfec_read 入力 ワイヤー reconfig_rsfec_clk  
reconfig_rsfec_address 入力 ワイヤー reconfig_rsfec_clk [10:0]
reconfig_rsfec_writedata 入力 ワイヤー reconfig_rsfec_clk [7:0]
reconfig_rsfec_readdata 出力 ワイヤー reconfig_rsfec_clk [7:0]
reconfig_rsfec_waitrequest 出力 ワイヤー reconfig_rsfec_clk  

reconfig_rsfec_clk 入力は、100から125MHzのクロックで駆動する必要があります。この入力には、チャネル Avalon® メモリーマップド・インターフェイスと同じクロックを使用できます。

reconfig_rsfec_reset 入力は、デバイスがユーザーモードに入った後、リコンフィグレーション・クロックの少なくとも1クロックサイクルの間、アサートする必要があります。リセットIPを使用して、このリセット信号を供給します。

reconfig_rsfec_write econfig_rsfec_read 入力を使用して、読み出しまたは書き込み動作の必要性の有無を Avalon® メモリーマップド・インターフェイスに対して示します。reconfig_rsfec_address 入力は、読み出しと書き込みの両方の動作に使用して、現在の Avalon® Memory-Mappedインターフェイスのアクセス動作中にターゲットになっているレジスターアドレスを示します。

reconfig_rsfec_writedata および reconfig_rsfec_readdata には、11ビット reconfig_rsfec_address 入力で設定されたレジスターアドレスに書き込まれるデータ、またはそのアドレスから読み出されたデータが含まれます。

reconfig_rsfec_writedata および reconfig_rsfec_readdata ポートは8ビット幅です。RS-FECレジスターは、ハードウェアでは32ビット幅ですが、4バイト・インクリメントのアドレス指定を使用します。そのため、32ビットレジスターのアドレス指定は、連続するバイトアドレスを持つ4つの8ビットレジスターとしてできます。

例えば、レジスター0x04 (レジスターアドレス0x04は32ビットのレジスターアドレスと見なされます) の最下位バイト (最下位オーダーバイト) にアクセスするには、アドレス0x04から8ビットを読み出すか、アドレス0x04に8ビットを書き込みます。同じ32ビットレジスターの次の最上位バイトを取得するには、アドレス0x05から8ビットを読み出すか、アドレス0x05に8ビットを書き込みます。その他のレジスターを取得するには、アドレス0x06と0x07を使用します。次の32ビットレジスターのアドレスは0x08です。つまり、32ビットのレジスターアドレスは、レジスターごとに4バイトずつ増加します。

このように、レジスターのアドレス指定、読み出し、および書き込みが行われるのは一度に1バイトずつです。これは、 Avalon® メモリーマップド・インターフェイスのハードウェア実装と一致します。

reconfig_rsfec_waitrequest 出力のアサートが発生するのは、 Avalon® メモリーマップド・インターフェイス Avalon® Memory-Mappedインターフェイスの動作への対応でビジー状態になったときです。また、デアサートが発生するのは、 Avalon® Memory-Mappedインターフェイスが次の動作に対応できるようになったときです。

表 84.  RS-FECレジスター
アドレス 名前 説明 リセット
0x04 rsfec_top_clk_cfg RS-FECクロック・コンフィグレーション・レジスター 0x0000 0F00
0x10 rsfec_top_tx_cfg RS-FEC TXコンフィグレーション・レジスター 0x0000 0000
0x14 rsfec_top_rx_cfg RS-FEC RXコンフィグレーション・レジスター 0x0000 0000
0x20 tx_aib_dsk_conf TXデスキューのコンフィグレーション・フィールドを定義 0x0000 0000
0x30 rsfec_core_cfg RS-FECコアのコンフィグレーション 0x0000 0000
0x40 rsfec_lane_cfg_0 レーンごとのRS-FECのコンフィグレーション 0x0000 0000
0x44 rsfec_lane_cfg_1
0x48 rsfec_lane_cfg_2
0x4C rsfec_lane_cfg_3
0x104 tx_aib_dsk_status TXデスキューのステータスフィールド 0x0000 0000
0x108 rsfec_debug_cfg fec_clockの追加のコンフィグレーション/デバッグ 0x0000 0000
0x120 rsfec_lane_tx_stat_0 レーンごとのRS-FECのTXステータス 0x0000 0000
0x124 rsfec_lane_tx_stat_1
0x128 rsfec_lane_tx_stat_2
0x12C rsfec_lane_tx_stat_3
0x130 rsfec_lane_tx_hold_0 レーンごとのRS-FECのTXステータスのホールド 0x0000 0000
0x134 rsfec_lane_tx_hold_1
0x138 rsfec_lane_tx_hold_2
0x13C rsfec_lane_tx_hold_3
0x140 rsfec_lane_tx_inten_0 レーンごとのRS-FEC TXステータスのホールド割り込み: 1に設定すると、rsfec_lane_txレーン割り込みがイネーブルされます。 0x0000 0000
0x144 rsfec_lane_tx_inten_1
0x148 rsfec_lane_tx_inten_2
0x14C rsfec_lane_tx_inten_3
0x150 rsfec_lane_rx_stat_0 レーンごとのRS-FECのRXステータス 0x0000 0000
0x154 rsfec_lane_rx_stat_1
0x158 rsfec_lane_rx_stat_2
0x15C rsfec_lane_rx_stat_3
0x160 rsfec_lane_rx_hold_0 レーンごとのRS-FECのRXステータスのホールド 0x0000 0000
0x164 rsfec_lane_rx_hold_1
0x168 rsfec_lane_rx_hold_2
0x16C rsfec_lane_rx_hold_3
0x170 rsfec_lane_rx_inten_0 レーンごとのRS-FEC RXステータスのホールド割り込み: 1に設定すると、rsfec_lane_rxレーン割り込みがイネーブルされます。 0x0000 0000
0x174 rsfec_lane_rx_inten_1
0x178 rsfec_lane_rx_inten_2
0x17C rsfec_lane_rx_inten_3
0x180 rsfec_lanes_rx_stat RS-FEC結合レーンのRXステータス 0x0000 0000
0x188 rsfec_lanes_rx_hold RS-FEC結合レーンのRXホールドステータス 0x0000 0000
0x18C rsfec_lanes_rx_inten RS-FEC結合レーンごとのRX割り込みイネーブル: 1に設定すると、rsfec_lanes RX割り込みがイネーブルされます。 0x0000 0000
0x1A0 rsfec_ln_mapping_rx_0 RS-FEC FECレーンマッピング 0x0000 0000
0x1A4 rsfec_ln_mapping_rx_1
0x1A8 rsfec_ln_mapping_rx_2
0x1AC rsfec_ln_mapping_rx_3
0x1B0 rsfec_ln_skew_rx_0 RS-FECレーンスキュー 0x0000 0000
0x1B4 rsfec_ln_skew_rx_1
0x1B8 rsfec_ln_skew_rx_2
0x1BC rsfec_ln_skew_rx_3
0x1C0 rsfec_cw_pos_rx_0 RXのRS-FECコードワードのビット位置 0x0000 0000
0x1C4 rsfec_cw_pos_rx_1
0x1C8 rsfec_cw_pos_rx_2
0x1CC rsfec_cw_pos_rx_3
0x1D0 rsfec_core_ecc_hold RS-FEC SRAM ECCステータスホールド 0x0000 0000
0x1E0 rsfec_err_inj_tx_0 RS-FECエラー・インジェクション・モード 0x0000 0000
0x1E4 rsfec_err_inj_tx_1
0x1E8 rsfec_err_inj_tx_2
0x1EC rsfec_err_inj_tx_3
0x1F0 rsfec_err_val_tx_0 レーンごとのRS-FECのエラー・インジェクション・ステータス 0x0000 0000
0x1F4 rsfec_err_val_tx_1
0x1F8 rsfec_err_val_tx_2
0x1FC rsfec_err_val_tx_3
0x200 rsfec_corr_cw_cnt_0_lo 訂正されたエラーのあるRS-FECのFECコードワードの数 (下位ワード: ビット31 ~ 0) 0x0000 0000
0x208 rsfec_corr_cw_cnt_1_lo
0x210 rsfec_corr_cw_cnt_2_lo
0x218 rsfec_corr_cw_cnt_3_lo
0x204 rsfec_corr_cw_cnt_0_hi 訂正されたエラーのあるRS-FECのFECコードワードの数 (上位ワード: ビット63 ~ 32) 0x0000 0000
0x20C rsfec_corr_cw_cnt_1_hi
0x214 rsfec_corr_cw_cnt_2_hi
0x21C rsfec_corr_cw_cnt_3_hi
0x220 rsfec_uncorr_cw_cnt_0_lo エラー数が多すぎるために訂正できなかったエラーのあるRS-FECのFECコードワードの数 (下位ワード: ビット31 ~ 0) 0x0000 0000
0x228 rsfec_uncorr_cw_cnt_1_lo
0x230 rsfec_uncorr_cw_cnt_2_lo
0x238 rsfec_uncorr_cw_cnt_3_lo
0x224 rsfec_uncorr_cw_cnt_0_hi エラー数が多すぎるために訂正できなかったエラーのあるRS-FECのFECコードワードの数 (上位ワード: ビット63 ~ 32) 0x0000 0000
0x22C rsfec_uncorr_cw_cnt_1_hi
0x234 rsfec_uncorr_cw_cnt_2_hi
0x23C rsfec_uncorr_cw_cnt_3_hi
0x240 rsfec_corr_syms_cnt_0_lo レーンに対して訂正されたRS-FECの10bシンボルの数 (下位ワード: ビット31 ~ 0) 0x0000 0000
0x248 rsfec_corr_syms_cnt_1_lo
0x250 rsfec_corr_syms_cnt_2_lo
0x258 rsfec_corr_syms_cnt_3_lo
0x244 rsfec_corr_syms_cnt_0_hi レーンに対して訂正されたRS-FECの10bシンボルの数 (上位ワード: ビット63 ~ 32) 0x0000 0000
0x24C rsfec_corr_syms_cnt_1_hi
0x254 rsfec_corr_syms_cnt_2_hi
0x25C rsfec_corr_syms_cnt_3_hi
0x260 rsfec_corr_0s_cnt_0_lo レーンに対して0から1に訂正されたRS-FECのビット数 (下位ワード: ビット31 ~ 0) 0x0000 0000
0x268 rsfec_corr_0s_cnt_1_lo
0x270 rsfec_corr_0s_cnt_2_lo
0x278 rsfec_corr_0s_cnt_3_lo
0x264 rsfec_corr_0s_cnt_0_hi レーンに対して0から1に訂正されたRS-FECのビット数 (上位ワード: ビット63 ~ 32) 0x0000 0000
0x26C rsfec_corr_0s_cnt_1_hi
0x274 rsfec_corr_0s_cnt_2_hi
0x27C rsfec_corr_0s_cnt_3_hi
0x280 rsfec_corr_1s_cnt_0_lo レーンに対して1から0に訂正されたRS-FECのビット数 (下位ワード: ビット31 ~ 0) 0x0000 0000
0x288 rsfec_corr_1s_cnt_1_lo
0x290 rsfec_corr_1s_cnt_2_lo
0x298 rsfec_corr_1s_cnt_3_lo
0x284 rsfec_corr_1s_cnt_0_hi レーンに対して1から0に訂正されたRS-FECのビット数 (上位ワード: ビット63 ~ 32) 0x0000 0000
0x28C rsfec_corr_1s_cnt_1_hi
0x294 rsfec_corr_1s_cnt_2_hi
0x29C rsfec_corr_1s_cnt_3_hi

すべての統計レジスターは64ビットです。32ビットの読み出しを2回行ってください。インテルでは、オフセットアドレス0x108の shadow_req[3:0] をイネーブルすることをお勧めします。rsfec_debug_cfg のセクションの説明を参照してください。これは、統計レジスターの読み出し前に行い、読み出し後にディスエーブルします。