PCI Express* 向けRタイル Avalon® StreamingインテルFPGA IPユーザーガイド

ID 683501
日付 10/07/2022
Public
ドキュメント目次

4.3.1.2.4. RXフロー・コントロール・インターフェイス

RXフロー・コントロール・インターフェイスでは、ポステッド (P)、ノンポステッド (NP)、およびコンプリーション (CPL) トランザクション用のアプリケーションの使用可能なRXバッファー空間に関する情報をPCIeハードIPに提供します。PCIe仕様で指定されているとおりに、使用可能なスペースをクレジット数で報告します。

フロー・コントロール・クレジットは、次のTLPカテゴリーで使用できます。
  • ポステッド (P) トランザクション: 応答を必要としないTLP。
  • ノンポステッド (NP) トランザクション: コンプリーションが必要なTLP。
  • コンプリーション (CPL) トランザアクション: ノンポステッド・トランザクションに応答するTLP。

このIPでの一般的なクレジット・コントロールの実装方法についての詳細は、クレジット・コントロール を参照してください。

注: 一部のシステムでは、ブロードキャスト・メッセージTLPの送信が、PCIe列挙プロセス中にリンクパートナーによって行われます。対応するクレジットを適切に初期化してアプリケーション・ロジックからRタイル Avalon® Streaming IPに返さないと、列挙の問題が発生する可能性があります。この原因は、メッセージTLPとコンフィグレーションTLPに必要なコンプリーションの間の優先順位です。アプリケーション・ロジックでは、受信するTLPに対するRタイル Avalon® Streaming IPに適切なクレジットが返されるように確認する必要があります。
表 51.  トランザクション・タイプの分類
TLPタイプ カテゴリー
メモリー書き込み ポステッド
メモリー読み出し ノンポステッド
メモリー読み出しロック
I/O読み出し
I/O書き込み
コンフィグレーション読み出し
コンフィグレーション書き込み
アトミック操作のフェッチ・アンド・アッド
メッセージ ポステッド
コンプリーション コンプリーション
データを持つコンプリーション
コンプリーション・ロック
データを持つコンプリーション・ロック
表 52.  RXコントロール・インターフェイス信号
信号名 方向 説明 EP/RP/BP クロックドメイン
pX_rx_st_hcrdt_update_i[2:0] (ここでは

X = 0、1、2、3

(IPコア番号))
入力

さまざまなタイプのヘッダーでクレジットが使用可能であることを示します。

各ヘッダー (TLPプリフィクスがある場合はそれを含む) で消費するクレジットは1つです。

[0]: ポステッド・ヘッダー (PH)

[1]: ノンポステッド・ヘッダー (NPH)

[2]: コンプリーション・ヘッダー (CPLH)

IPとアプリケーション・ロジックの間で特定のTLPタイプに対する無限クレジットをアドバタイズするには、この信号バス内の対応するビットを1クロックサイクルの間アサートし、クレジット初期化フェーズ中に、pX_rx_st_hcrdt_update_cnt_i 信号バスのターゲットTLPタイプの対応するビットの値を0に設定する必要があります。

EP/RP/BP coreclkout_hip
pX_rx_st_hcrdt_update_cnt_i[5:0] (ここでは

X = 0、1、2、3 (IPコア番号))

入力

リリースされたクレジットの数を示します。

[1:0]: リリースされたPHクレジットの数

[3:2]: リリースされたNPHクレジットの数

[5:4]: リリースされたCPLHクレジットの数

対応する pX_rx_st_hcrdt_update_i ビット = 1の場合に有効です。

リリースされるクレジットの最大数は3です。

IPとアプリケーション・ロジックの間で特定のTLPタイプに対する無限クレジットをアドバタイズするには、クレジット初期化フェーズ中 (対応するpX_rx_st_hcrdt_update_i 信号ビットを1クロックサイクルの間アサートするとき) に、この信号バス内の対応するビットを0に設定する必要があります。

EP/RP/BP coreclkout_hip
pX_rx_st_hcrdt_init_i[2:0] (ここでは

X = 0、1、2、3 (IPコア番号))

入力

クレジット初期化インジケーターです。これらの信号は、初期化フェーズの間はHighのままです。HighからLowへの遷移は、クレジット初期化フェーズのコンプリーションを示します。

[0]: PH

[1]: NPH

[2]: CPLH

EP/RP/BP coreclkout_hip
pX_rx_st_hcrdt_init_ack_o[2:0] (ここでは

X = 0、1、2、3 (IPコア番号))

出力

ホストがクレジット初期化フェーズの準備ができていることを示します。

[0]: PH

[1]: NPH

[2]: CPLH

EP/RP/BP coreclkout_hip
pX_rx_st_dcrdt_update_i[2:0] (ここでは

X = 0、1、2、3 (IPコア番号))

入力

さまざまなタイプのデータでクレジットが使用可能であることを示します。

[0]: ポステッド・データ (PD)

[1]: ノンポステッド・データ (NPD)

[2]: コンプリーション・データ (CPLD)

IPとアプリケーション・ロジックの間で特定のTLPタイプに対する無限クレジットをアドバタイズするには、この信号バス内の対応するビットを1クロックサイクルの間アサートし、クレジット初期化フェーズ中に、pX_rx_st_dcrdt_update_cnt_i 信号バスのターゲットTLPタイプの対応するビットの値を0に設定する必要があります。

EP/RP/BP coreclkout_hip
pX_rx_st_dcrdt_update_cnt_i[11:0] (ここでは

X = 0、1、2、3 (IPコア番号))

入力

リリースされたクレジットの数を示します。

[3:0]: リリースされたPDクレジットの数

[7:4]: リリースされたNPDクレジットの数

[11:8]: リリースされたCPLDクレジットの数

対応する pX_rx_st_hcrdt_update_i ビット = 1の場合に有効です。

リリースされるクレジットの最大数は15です。

IPとアプリケーション・ロジックの間で特定のTLPタイプに対する無限クレジットをアドバタイズするには、クレジット初期化フェーズ中 (対応するpX_rx_st_hcrdt_update_i 信号ビットを1クロックサイクルの間アサートするとき) に、この信号バス内の対応するビットを0に設定する必要があります。

注: 最初のRX NPDクレジットは、最大ペイロードサイズ以上である必要があります。
EP/RP/BP coreclkout_hip
pX_rx_st_dcrdt_init_i[2:0] (ここでは

X = 0, 1, 2, 3 (IPコア番号))

入力

クレジット初期化インジケーターです。これらの信号は、初期化フェーズの間はHighのままです。HighからLowへの遷移は、クレジット初期化フェーズの完了を示します。

[0]: PD

[1]: NPD

[2]: CPLD

EP/RP/BP coreclkout_hip
pX_rx_st_dcrdt_init_ack_o[2:0] (ここでは

X = 0、1、2、3

(IPコア番号))
出力

ホストがクレジット初期化フェーズの準備ができていることを示します

[0]: PD

[1]: NPD

[2]: CPLD

EP/RP/BP coreclkout_hip