PCI Express*向け F-タイル Avalon® ストリーミングのインテル® FPGA IPユーザーガイド

ID 683140
日付 4/27/2023
Public
ドキュメント目次

5.4.1. Avalon-ST インターフェイス信号

表 61.  Avalon-ST インターフェイス信号
信号名 入力/出力 EP/RP/BP クロックドメイン 説明
p#_rx_st_data_o [w * 128-1:0] 出力 EP/RP/BP coreclkout_hip

Avalon-STRxデータバス。アプリケーションは、このバスを介してトランザクション層からRXデータを受信します。

Port0(width = 512)の場合、下位256ビットにパケットの終わりがあるTLPは、上位256ビットにパケットの開始を持つことができます。

p#_rx_st_empty_o[p-1:0] 出力 EP/RP/BP coreclkout_hip

サイクル中に空になるdwordの数を指定します。 rx_st_eop_o 信号がアサートされます。

これらの信号は、 rx_st_eop_o 信号はアサートされません。

p#_rx_st_ready_i 入力 EP/RP/BP coreclkout_hip

アプリケーション層がデータを受け入れる準備ができていることを示します。 readyLatencyは27サイクルです。

もしも rx_st_ready_i サイクルでアプリケーション層によってディアサートされます<n>、PCIe ハードIPのトランザクション層は、最大でトラフィックを送信し続けます<n>+readyLatencyはのデアサート後のサイクル rx_st_ready_i

一度 rx_st_ready_iをリアサートすると、 rx_st_valid_oはreadyLatencyサイクル内でデータ転送を再開します。

最高のパフォーマンスを実現するには、アプリケーション層に、rx_st_ready_iのデアサートを回避するのに十分な大きさの受信バッファーを含める必要があります。

p#_rx_st_sop_o[n-1:0] 出力 EP/RP/BP coreclkout_hip

rx_st_valid_o [1:0]の対応するビットと組み合わせてアサートされると、TLPの最初のサイクルを通知します。

rx_st_sop_o [1]:アサートされると、rx_st_data_o [511:256]でTLPの開始を通知します 。

rx_st_sop_o [0]:アサートされると、rx_st_data_o [255:0]でTLPの開始を通知します。

p#_rx_st_eop_o[n-1:0] 出力 EP/RP/BP coreclkout_hip

rx_st_valid_o [1:0]に対応するビットと組み合わせてアサートされると、TLPの最後のサイクルを通知します。

rx_st_eop_o [1]:アサートされると、rx_st_data_o [511:256]でTLPの終了を通知します。

rx_st_eop_o [0]:アサートされると、rx_st_data_o [255:0]でTLPの終了を通知します 。

p#_rx_st_valid_o[n-1:0] 出力 EP/RP/BP coreclkout_hip

これらの信号は、アプリケーション層に入るrx_st_data_o信号を修飾します。

p#_rx_st_hdr_o [n * 128-1:0] 出力 EP/RP/BP coreclkout_hip

これは受信ヘッダーであり、PCIe仕様のTLPヘッダー形式に従います。

reconfig_readdata[N*32-1:0] 出力 EP/RP/BP coreclkout_hip

これは、受信した最初のTLPプレフィックスであり、PCIe仕様のTLPプレフィックス形式に従います。 PASIDが含まれています。

これらの信号は、対応するrx_st_sop_oがアサートされたときに有効です。

TLPプレフィックスはビッグ・エンディアンの実装を使用します(つまり、Fmtフィールドはビット[31:29]であり、Typeフィールドはビット[28:24]です)。

特定のTLPにプレフィックスが存在しない場合、そのdword(Fmtフィールドを含む)はすべてゼロです。

p#_rx_st_vf_active_o[n-1:0] 出力 EP coreclkout_hip

注:p2およびp3では使用できません。

アサートされると、これらの信号は、受信したTLPが仮想機能をターゲットにしていることを示します。

これらの信号がディアサートされると、受信したTLPは物理機能をターゲットにしており、rx_st_func_num信号は機能番号を示します。

これらの信号は、対応するrx_st_sop_oがアサートされたときに有効です。これらの信号は、x4コンフィグレーションのrx_st_hdr_o信号と多重化されます。

これらの信号は、エンドポイントモードでのみ有効です。

p#_rx_st_func_num_o[p-1:0] 出力 EP coreclkout_hip

注:p2およびp3では使用できません。

受信したTLPの対象となる物理機能番号を指定してください。

これらの信号は、対応するrx_st_sop_oがアサートされたときに有効です。

これらの信号は、x4コンフィグレーションのrx_st_hdr_o信号と多重化されます。

これらの信号は、エンドポイントモードでのみ有効です。

p#_rx_st_vf_num_o[n*11-1:0] 出力 EP coreclkout_hip

注:p2およびp3では使用できません。

受信したTLPのターゲットVFmnumberを指定します。

アプリケーションは、この情報を要求TLPと完了TLPの両方に使用します。

完了TLPの場合、これらのビットは、この完了TLPのリクエスターのVF番号を指定します。

これらの信号は、rx_st_vf_active_oおよび対応するrx_st_sop_oがアサートされている場合に有効です。

これらの信号は、x4コンフィグレーションのrx_st_hdr_o信号と多重化されます。

これらの信号は、エンドポイントモードでのみ有効です。

p#_rx_st_bar_range_o[p-1:0] 出力 EP/RP/BP coreclkout_hip
出力するTLPのBARを指定します。 BAR範囲ごとに、次のエンコーディングが定義されています。
  • 000: Memory BAR 0
  • 001: Memory BAR 1
  • 010: Memory BAR 2
  • 011: Memory BAR 3
  • 100: Memory BAR 4
  • 101: Memory BAR 5
  • 110: I/O BAR
  • 111: Expansion ROM BAR

これらの出力は、両方のrx_st_sop_orx_st_valid_oがアサートされる場合に有効です。

p#_rx_st_tlp_abort_o[n-1:0] 出力 tBP coreclkout_hip

ECRCエラーのためにTLPをドロップするようにアプリケーションに示します。 TLPが再生されることを期待するべきではありません。

デフォルトでは、PCIeヒップドロップエラーTLP。 TLPバイパスモードで動作している場合、エラーが発生したTLPはRXパケット・インターフェイスに転送されます。

この出力は、rx_st_valid_oがアサートされている場合に有効です。

p#_rx_st_data_par_o [w * 16-1:0] 出力 EP/RP/BP coreclkout_hip

rx_st_data_oのバイトパリティー信号 。これらのパリティ信号は、ECCが有効になっている場合は使用できません。

p#_rx_st_hdr_par_o [n * 16-1:0] 出力 EP/RP/BP coreclkout_hip

rx_st_hdr_oのバイトパリティー信号 。これらのパリティ信号は、ECCが有効になっている場合は使用できません。

p#_rx_st_tlp_prfx_par_o [n * 4-1:0] 出力 EP/RP/BP coreclkout_hip

rx_st_tlp_prfx_oのバイトパリティ信号。これらのパリティ信号は、ECCが有効になっている場合は使用できません。

p#_rx_par_err_o 出力 EP/RP/BP coreclkout_hip

RXバッファーの入力でTLPでパリティーエラーが検出されたことを示すために、単一サイクルでアサートされます。

このエラーは、VSECレジスターに修正不可能な内部エラーとして記録されます。

このエラーが発生した場合は、ハードIPをリセットする必要があります。これは、パリティーエラーによってハードIPが不明な状態になる可能性があるためです。

表 62.  RXコントロール・インターフェイス信号
信号名 入力/出力 EP/RP/BP クロックドメイン 説明
p#_rx_buffer_limit_tdm_indx_i[1:0] 入力 EP/RP/BP coreclkout_hip

これらの信号は、rx_buffer_limit_i [11:0] 信号に対応するバッファーのタイプを示します。

アプリケーション層は、TDM方式で、有効になっているすべてのポートのバッファー制限情報を提供する必要があります。

次のエンコーディングが定義されています。
  • 00:PタイプのTLPのバッファー制限。
  • 01:NPタイプのバッファー制限。
  • 10:CPLタイプのバッファー制限。
  • 11:予約済み。
p#_rx_buffer_limit_i[11:0] 入力 EP/RP/BP coreclkout_hip

RXフロー制御インターフェイスが有効になっている場合、アプリケーションはこれらの信号をTLPフロー制御に使用できます。

これらの信号は、リセット/初期化以降に使用可能になったアプリケーションRXバッファースペースを示します。

最初に、信号はバッファーサイズ(RXバッファーが取ることができるTLPの数に関して)に従って設定されます。

これらの信号の値は常に増分してロールオーバーします。たとえば、初期値が0xfffの場合、 rx_buffer_limit_i [11:0]を受信したTLPの1つがアプリケーションRXバッファーを出ると、値は1ずつ増加し、0x000にロールオーバーします。

アプリケーション層に対応するRXバッファースペースがないためにTLPタイプがブロックされた場合、他のTLPタイプはPCIeトランザクション順序付けルールに従ってそれをバイパスする可能性があります。

rx_buffer_limit_i[11:0]の初期値は2048TLPより大きくできないことに注意してください。