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

ID 683216
日付 6/20/2022
Public
ドキュメント目次

11.9.4. コンフィグレーション・レジスターとステータスレジスター

ユーザー・トラフィック・パターンは、生成されるトラフィック・パターンに影響を与えるコンフィグレーション・レジスターに書き込むことでコンフィグレーションすることができます。

生成されるトラフィック・パターンを管理するコンフィグレーション・レジスターは、パターンの次の側面のいずれかに影響します。

  • テスト期間/命令パターン
  • アドレスパターン
  • データパターン
注: このセクションでは、ctrl_ammインターフェイスに現れるトラフィック・パターンをコンフィグレーションするレジスターについて説明します。

コンフィグレーション・レジスターとステータスレジスター

シンボルアドレス レジスター名 レジスター数 アクセスタイプ レジスターセクション レジスターの説明
0x4 TG_START 1 読み出し/書き込み Start このレジスターに書き込みを行い、トラフィック・ジェネレーターを開始します。
0x8 TG_LOOP_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 実行する読み出し/書き込みループの数。ループは、1つの書き込みのブロックと、それに続く読み出しのブロックとして定義されます。この値が0に設定されている場合、無限ユーザーモードが有効になります。
0xC TG_WRITE_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 各ループで実行される一意の書き込みの数。
0x10 TG_READ_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 各ループで実行される一意の読み出しの数。
0x14 TG_WRITE_REPEAT_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 各書き込み操作を繰り返す回数 (つまり、同じアドレスと同じデータ)。
0x18 TG_READ_REPEAT_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 各読み出し操作を繰り返す回数 (つまり、同じアドレス)。
0x1C TG_BURST_LENGTH 1 読み出し/書き込み Test Duration/Instruction Pattern Avalonバースト長
0x20 TG_CLEAR 1 読み出し/書き込み Status

エラー・ステータス・レジスターをクリアします。次のビットに1を書き込むことにより、これらのレジスターを互いに独立してクリアすることができます。

BIT0 - 記録されているPNFデータをクリアし、新たに開始します。

BIT1 - 記録されているAvalon読み出し数をクリアします。

BIT2 - 記録されている最初のエラーのデータ (アドレス、想定データ、および実際のデータ) をクリアします。

BIT3 - バースト長オーバーフロー・フラグとバースト長オーバーフロー・アドレスをクリアします。

BIT4 - WORMモードのエラー情報 (つまり、対象の読み出しデータ) をクリアします。

0x38 TG_RW_GEN_IDLE_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 書き込みブロックと次の読み出しブロック間でトラフィック・ジェネレーターがアイドル状態に維持されるサイクル数。
0x3C TG_RW_GEN_LOOP_IDLE_COUNT 1 読み出し/書き込み Test Duration/Instruction Pattern 読み出しブロックと次の書き込みブロック間でトラフィック・ジェネレーターがアイドル状態に維持されるサイクル数。
0x40 TG_SEQ_START_ADDR_WR 6 読み出し/書き込み Address Pattern 書き込みの開始アドレス。Random Modeでシードアドレスとして使用されます。
0x80 TG_ADDR_MODE_WR 6 読み出し/書き込み Address Pattern

書き込みの各アドレスフィールドのAddress Generator Modeを選択する配列。

TG_ADDR_MODE==0: Fixed

TG_ADDR_MODE==1: Random

TG_ADDR_MODE==2: Sequential

TG_ADDR_MODE==3: Field Unused

0xC0 TG_RETURN_TO_START_ADDR 1 読み出し/書き込み Address Pattern 1に設定すると、各ループの開始アドレスに戻るように指定されます。0に設定すると、前のループが中断したところからアドレスパターンを再開することを指定します。
0x100 TG_SEQ_ADDR_INCR 6 読み出し/書き込み Address Pattern アドレスを順次インクリメントする場合に各アドレスフィールドに使用されるフィールド0から5のインクリメントの配列。この値は、少なくともフィールド0のTG_BURST_LENGTHの値にする必要があります。
0x140 TG_SEQ_START_ADDR_RD 6 読み出し/書き込み Address Pattern 読み出しの開始アドレス。Random Modeでシードアドレスとして使用されます。
0x180 TG_ADDR_MODE_RD 6 読み出し/書き込み Address Pattern

読み出しの各アドレスフィールドのAddress Generator Modeを選択する配列。

TG_ADDR_MODE==0: Fixed

TG_ADDR_MODE==1: Random

TG_ADDR_MODE==2: Sequential

TG_ADDR_MODE==3: Field Unused

0x1C0 TG_PASS 1 読み出し専用 Status 1を読み出している場合は、すべてのテストステージの終わりに、トラフィック・ジェネレーターが合格したことを示します。
0x1C4 TG_FAIL 1 読み出し専用 Status 1を読み出している場合は、トラフィック・ジェネレーターが失敗したことを示します。これは、すべてのテストステージの最後に示されます。
0x1C8 TG_FAIL_COUNT_L 1 読み出し専用 Status 失敗した読み出しの数 (下位32ビット)。
0x1CC TG_FAIL_COUNT_H 1 読み出し専用 Status 失敗した読み出しの数 (上位32ビット)。
0x1D0 TG_FIRST_FAIL_ADDR_L 1 読み出し専用 Status 最初に失敗した読み出しのアドレス (下位32ビット)。
0x1D4 TG_FIRST_FAIL_ADDR_H 1 読み出し専用 Status 最初に失敗した読み出しのアドレス (上位32ビット)。
0x1D8 TG_TOTAL_READ_COUNT_L 1 読み出し専用 Status 実行された読み出し操作の数 - 送受信されたもの (下位32ビット)。
0x1DC TG_TOTAL_READ_COUNT_H 1 読み出し専用 Status 実行された読み出し操作の数 - 送受信されたもの (上位32ビット)。
0x1E0 TG_TEST_COMPLETE 1 読み出し専用 Status 1を読み出している場合は、トラフィック・ジェネレーターの実行が完了したことを示します。
0x1E4 TG_INVERT_BYTEEN 1 読み出し/書き込み Data/Byte-Enable Pattern 1に設定すると、バイト・イネーブルの値とwritedataを反転することを指定します。
0x1E8 TG_RESTART_DEFAULT_TRAFFIC 1 読み出し/書き込み Data/Byte-Enable Pattern このレジスターに書き込みを行い、デフォルトのモードを再開します。
0x1EC TG_USER_WORM_EN 1 読み出し/書き込み Data/Byte-Enable Pattern 1に設定すると、WORM (Write Once Read Many) モードが有効になります。WORMモードでデータの不一致があった場合、TG2は最初のデータの不一致で停止し、2回目の読み出しを同じアドレスに発行します。
0x1F0 TG_TEST_BYTEEN 1 読み出し/書き込み Data/Byte-Enable Pattern このレジスターに書き込みを行い、トラフィック・ジェネレーターが反転バイト・イネーブル・テスト・モードであることを示します。
0x1F4 TG_TIMEOUT 1 読み出し専用 Status 1を読み出している場合は、トラフィック・ジェネレーターがタイムアウトしていることを示します。
0x1F8 TG_NUM_DATA_GEN 1 読み出し専用 Data/Byte-Enable Pattern データ・ジェネレーターの数。
0x1FC TG_NUM_BYTEEN_GEN 1 読み出し専用 Data/Byte-Enable Pattern バイト・イネーブル・ジェネレーターの数。
0x200 TG_RDATA_WIDTH 1 読み出し専用 Data/Byte-Enable Pattern 読み出しデータとPNF信号の幅。
0x204 TG_ERROR_REPORT 1 読み出し専用 Data/Byte-Enable Pattern TG2の不正なコンフィグレーションを報告します。
0x208 TG_DATA_RATE_WIDTH_RATIO 1 読み出し専用 Data/Byte-Enable Pattern データレートの幅の比率は、ctrl_ammインターフェイスでのデータ幅とメモリー・インターフェイスでのデータ幅の比率です。
0x240 TG_PNF 18 読み出し専用 Status 永続的なPNF (Pass Not Fail) 信号。Bus Width = TG_RDATA_WIDTHです。
0x340 TG_FAIL_EXPECTED_DATA 1 読み出し専用 Status 最初のエラーでの想定データ。Bus Width = TG_RDATA_WIDTHです。
0x440 TG_FAIL_READ_DATA 1 読み出し専用 Status 最初のエラーで受信したデータ。Bus Width = TG_RDATA_WIDTHです。
0x540 TG_DATA_SEED TG_NUM_DATA_GEN 読み出し/書き込み Data Generator 各データ・ジェネレーター (DG) のシード値または開始値。これは、TG_NUM_DATA_GENエントリーで構成されます。
0x580 TG_BYTEEN_SEED TG_NUM_BYTEEN_GEN 読み出し/書き込み Data/Byte-Enable Pattern 各バイト・イネーブル・ジェネレーター (BEG) のシード値または開始値。これは、TG_NUM_BYTEEN_GENエントリーで構成されます。
0x5C0 TG_PPPG_SEL TG_NUM_DATA_GEN 読み出し/書き込み Data Generator 利用可能なパターンのモードから選択します。0: Fixed、1: PRBS7、2: PRBS15、3: PRBS31、4: Rotating
0x600 TG_BYTEEN_SEL TG_NUM_BYTEEN_GEN 読み出し/書き込み Data/Byte-Enable Pattern 利用可能なパターンのモードから選択します。0: Fixed、1: PRBS7、2: PRBS15、3: PRBS31、4: Rotating
0x640 TG_ADDR_FIELD_RELATIVE_FREQ 6 読み出し/書き込み Address Pattern 各フィールドの頻度を設定する配列。相対頻度の値は整数です。この値では、フィールドが更新されるまでの一意のアドレスコマンドの数を指定します。
0x680 TG_ADDR_FIELD_MSB_INDEX 5 読み出し/書き込み Address Pattern フィールド0から4のMSB位置を設定する配列。フィールド5は余剰であり、指定する必要はありません。MSBの位置はフィールド幅を意味します。
0x6C0 TG_BURSTLENGTH_OVERFLOW_OCCURRED 1 読み出し専用 Status 1を読み出している場合は、アドレス空間外に書き込みを試みたことを示します。これは、現在のアドレスとバースト長の合計が総アドレス空間よりも大きくなると発生します。
0x700 TG_BURSTLENGTH_FAIL_ADDR_L 1 読み出し専用 Status アドレス・オーバーフローが発生したアドレスを示します。これは、バースト長が書き込み/読み出しアドレスと最後のメモリーアドレスの差よりも大きい場合に発生します。(下位32ビット)
0x704 TG_BURSTLENGTH_FAIL_ADDR_H 1 読み出し専用 Status アドレス・オーバーフローが発生したアドレスを示します。これは、バースト長が書き込み/読み出しアドレスと最後のメモリーアドレスの差よりも大きい場合に発生します。(上位32ビット)
0x740 TG_WORM_MODE_TARGETTED_DATA 1 読み出し専用 Status 対象の読み出しから受信したデータ。対象の読み出しデータは、WORMモードが有効になっており、最初の失敗アドレスへの2回目の読み出し結果が発生した場合に設定されます。

上の表では、一部のコンフィグレーション設定とステータス情報は1つの32ビット・レジスターに収まりますが、他は複数のレジスターに分割されます。開始アドレスの列は、そのセットの最初のレジスターのアドレスを示しています。レジスター数の列は、最初のアドレスに続くレジスターの数を示します。

例えば、TG_PPPG_SELは、TG_NUM_DATA_GEN=8の場合に8つのレジスターを占有します。そのため、データには、アドレス0x5C0、0x5C4、… 0x5E0から読み出すことによりアクセスすることができます。