外部メモリー・インターフェイス・ インテル® Agilex™ FPGA IPユーザーガイド

ID 683216
日付 6/20/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

11.9.8.5. TG2トラフィック・ジェネレーターのコンフィグレーション例

例1: すべてのメモリー位置に対して書き込みおよび読み出しを行うようにTG2をコンフィグレーション (0x555_5555_5555_5555と0xAAA_AAAA_AAAA_AAAAのデータパターンを交互に使用)

この例では、227論理アドレスがEMIFコントローラーで使用可能です。この例はx72 DDR4インターフェイスで、Quarter Rate (QR) ユーザーロジックを使用するようにコンフィグレーションされています。

図 238. メモリーIPのアドレス幅

address=0x0から始まるメモリーIPのすべてのメモリー位置に書き込むには、次の要件を満たす必要があります。

TG_LOOP_COUNT x TG_BURST_LENGTH x TG_WRITE_COUNT = Total Logical Address Available

この例では、次の条件を前提にしています。

  • TG_BURST_LENGTH = 64 (10進数) またはTG_BURST_LENGTH = 0x40 (16進数)
  • TG_WRITE_COUNT = 1

必要なTG_LOOP_COUNTは、次のように計算することができます。

TG_LOOP_COUNT = Total Logical Address Available / (TG_WRITE_COUNT x
TG_BURST_LENGTH)
= 227/64
= 2097152 (in decimal)
= 0x20_0000 (in hexadecimal)

コアロジックを使用してTG2をコンフィグレーションするには、次の手順に従います。

  1. TG_CLEARにdata=0xFを書き込み、すべてのエラー・ステータス・レジスターをクリアします。
  2. 次の表1で指定されている値でレジスターをコンフィグレーションします。
  3. TG_STARTに書き込み、ステップ2のコンフィグレーションを使用してTG2を開始します。これにより、ユーザーモードでトラフィック・テストが開始します。
  4. read data=0x1になるまでTG_TEST_COMPLETEから読み出します。これは、トラフィック・テストが完了したことを示すものです。
  5. TG_PASS、TG_FAIL、TG_TIMEOUTを読み出し、テスト結果を確認します。
    • TG_PASS: 値1は、すべてのテストステージの終わりにトラフィック・テストが合格になったことを示します。
    • TG_FAIL: 値1は、コンフィグレーションされたトラフィックの実行は終了している一方で、障害 (読み出しの不一致) が観察されたことを示します。他の関連するレジスターを読み取り、障害に関する詳細情報を取得します。利用可能なレジスターに関しては、コンフィグレーション・レジスターとステータスレジスターの表を参照してください。
    • TG_TIMEOUT: 値1は、1つまたは複数の読み出しコマンドに対してインターフェイスから読み出し応答を受信していないことを示します。
表 167.  例1におけるTG2のコンフィグレーション (すべてのメモリー位置に書き込みおよび読み出しを行う)
アドレス レジスター名 備考
0x8 TG_LOOP_COUNT 0x20_0000 すべてのメモリー位置を網羅するには、2097152* 64が必要です。
0xC TG_WRITE_COUNT 0x1  
0x10 TG_READ_COUNT 0x1  
0x14 TG_WRITE_REPEAT_COUNT 0x1  
0x18 TG_READ_REPEAT_COUNT 0x1  
0x1C TG_BURST_LENGTH 0x40 すべてのメモリー位置を網羅するには、2097152* 64が必要です。
0x38 TG_RW_GEN_IDLE_COUNT 0x1  
0x3C TG_RW_GEN_LOOP_IDLE_COUNT 0x1  
0x40 TG_SEQ_START_ADDR_WR_L 0x0 書き込み開始アドレスの下位32ビット
0x44 TG_SEQ_START_ADDR_WR_H 0x0 書き込み開始アドレスの上位32ビット
0x48 TG_ADDR_MODE_WR 0x1 シーケンシャル・アドレス指定
0x50 TG_RETURN_TO_START_ADDR 0x0  
0x74 TG_SEQ_ADDR_INCR 0x40 この例のバースト長と一致する必要があります。
0x78 TG_SEQ_START_ADDR_RD_L 0x0 読み出し開始アドレスの下位32ビット
0x7C TG_SEQ_START_ADDR_RD_H 0x0 読み出し開始アドレスの上位32ビット
0x80 TG_ADDR_MODE_RD 0x1 シーケンシャル・アドレス指定。TG_ADDR_MODE_WRと一致する必要があります。
0xB4 TG_USER_WORM_EN 0x0 WORMモードを無効にします。
0xE80 TG_BYTEEN_SEL 0x0 固定パターン
0xC00 TG_PPPG_SEL 0x0 固定パターン
0x400 TG_DATA_SEED 0x5555_5555 DG0で使用 (DQ0/8/16/24/32/40/48/56/64)
0x404 TG_DATA_SEED 0xAAAA_AAAA DG1で使用 (DQ1/9/17/25/33/41/49/57/65)
0x408 TG_DATA_SEED 0x5555_5555 DG2で使用 (DQ2/10/18/26/34/42/50/58/66)
0x40C TG_DATA_SEED 0xAAAA_AAAA DG3で使用 (DQ3/11/19/27/35/43/51/59/67)
0x410 TG_DATA_SEED 0x5555_5555 DG4で使用 (DQ4/12/20/28/36/44/52/60/68)
0x414 TG_DATA_SEED 0xAAAA_AAAA DG5で使用 (DQ5/13/21/29/37/45/53/61/69)
0x418 TG_DATA_SEED 0x5555_5555 DG6で使用 (DQ6/14/22/20/38/46/54/62/70)
0x41C TG_DATA_SEED 0xAAAA_AAAA DG7で使用 (DQ7/15/23/31/39/47/55/63/71)
0x800 TG_BYTEEN_SEED 0xFFFF_FFFF バイト0で使用
0x804 TG_BYTEEN_SEED 0xFFFF_FFFF バイト1で使用
0x808 TG_BYTEEN_SEED 0xFFFF_FFFF バイト2で使用
0x80C TG_BYTEEN_SEED 0xFFFF_FFFF バイト3で使用
0x810 TG_BYTEEN_SEED 0xFFFF_FFFF バイト4で使用
0x814 TG_BYTEEN_SEED 0xFFFF_FFFF バイト5で使用
0x818 TG_BYTEEN_SEED 0xFFFF_FFFF バイト6で使用
0x81C TG_BYTEEN_SEED 0xFFFF_FFFF バイト7で使用
0x820 TG_BYTEEN_SEED 0xFFFF_FFFF バイト8で使用

例2: 無限ループで実行するようにTG2をコンフィグレーション

  1. すべてのエラー・ステータス・レジスターをクリアします。TG_CLEARにdata=0xFを書き込みます。
  2. 必要なアクセスおよびデータパターンでTG2をコンフィグレーションします。
  3. TG_LOOP_COUNTにdata=0x0を書き込みます。
  4. TG_STARTに0または1を書き込み、TG2を開始します。
  5. 無限ループの実行中にTG2を停止するには、TG_LOOP_COUNTにdata=0x1を書き込みます。