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

ID 683216
日付 12/14/2020
Public

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

ドキュメント目次

11.9.5.2. Addressパターン

トラフィック・ジェネレーターは、コンフィグレーションされるパターンに基づきアドレスを生成します。アドレスは一意の書き込み命令ごとに生成され、その後、同じアドレスが対応する一意の読み出し命令に使用されます。書き込みおよび読み出しが繰り返される場合は、最後の一意のアドレスを再利用します。

アドレスは、次の3つのモードのいずれかで生成されます。

  • Random: 指定されているシードアドレスから開始して、トラフィック・ジェネレーターは疑似ランダム * アドレスをそれぞれの命令に生成します。
  • Sequential: 指定されている開始アドレスから開始して、トラフィック・ジェネレーターは指定されている値でそれぞれの命令に対してアドレスをインクリメントします。
  • Random-Sequential: 指定されている開始アドレスから開始して、トラフィック・ジェネレーターは指定されている値でそれぞれの命令に対してアドレスをインクリメントします。これは、指定されている数の連続アドレスに対して繰り返されます。トラフィック・ジェネレーターはその後、疑似ランダム * アドレスを生成し、インクリメントを続けます。

* 疑似ランダムアドレスはLFSRによって生成されます。また、有効なアドレス幅全体で繰り返されないことが保証されています。Random-Sequentialモードでは、有効なアドレス幅は次のように計算されます。

wordAddrWidth - log2(wordAddrDivBy) - log2(randSeqAddrIncr) - log2(numRandSeqAddr)

Randomモードでは、有効なアドレス幅は次のように計算されます。

wordAddrWidth - log2(wordAddrDivBy) - ceil_log2(burstlength) - log2(numRandSeqAddr)

計算式の詳細は次のとおりです。

  • wordAddrWidthは、ctrl_ammインターフェイスのワードアドレス幅です。
  • wordAddrDivByは、ctrl_ammインターフェイスのアドレスを分割する最小値であり、これによってAMMワードアドレスのアライメント要件を満たします。生成されるワードアドレスはこの値で割り切れる必要があります。
  • randSeqAddrIncrは、TG_SEQ_ADDR_INCRレジスターで指定する値です。2で割り切れない場合は、ログの上限が使用されます。
  • numRandSeqAddrは、TG_RAND_SEQ_ADDRS_RDレジスターまたはTG_RAND_SEQ_ADDRS_WRレジスターで指定する値です。2で割り切れない場合は、ログの上限が使用されます。Randomモードでは、これは常に1に等しくなります。
  • burstlengthは、TG_BURST_LENGTHで指定する値です。2で割り切れない場合は、ログの上限が使用されます。

上記の計算における違いは、Random-SequentialモードではrandSeqAddrIncr ≥ burstlengthであるため、burstlengthの明示的なパディングが省略できることです。

重要: RandomモードまたはRandom-Sequentialモードでは、Start Addressをすべて1に設定することはできません。

次の4つの例には、次の内容が当てはまります。

  • Xの値はレジスターが使用されないことを示しており、その値は無関係になります。
  • アドレス幅 (31) はSYMBOL ADDRESSであり、トラフィック・ジェネレーターから出力されます。これらの例で使用されているデザインでは、AMM_WORD_ADDRESS_WIDTHは26ビットです。この差を考慮するため、トラフィック・ジェネレーターはすべてのアドレスを差の分だけ (5ビット) シフトします。以下の例ではこのシフトされたアドレスを使用していますが、外部メモリー・インターフェイスではctrl_ammインターフェイス側でこのシフトを認識しません。
  • 示されている波形は、完全な命令パターンのスニペットであり、書き込み命令と対応するアドレスを示すだけのものです。スペースの制限により、すべての読み出しブロックが表示されているわけではありません。

例1: Randomアクセスモード

命令パターン

TG_LOOP_COUNT=2  TG_WRITE_REPEAT_COUNT=1  TG_RW_GEN_IDLE_COUNT=2
TG_WRITE_COUNT=3  TG_READ_REPEAT_COUNT=1  TG_RW_GEN_LOOP_IDLE_COUNT=0
TG_READ_COUNT=3  TG_BURST_LENGTH=1

アドレスパターン

TG_SEQ_START_ADDR_WR_L=0x5a5a  TG_ADDR_MODE_WR=0  TG_SEQ_ADDR_INCR=X
TG_SEQ_START_ADDR_WR_H=0x5a5a  TG_ADDR_MODE_RD=0  TG_RAND_SEQ_ADDRS_RD=X
TG_SEQ_START_ADDR_RD_L=0x5a5a  TG_RETURN_TO_START_ADDR=0  TG_RAND_SEQ_ADDRS_WR=X
TG_SEQ_START_ADDR_RD_H=0x5a5a
図 106. Randomアクセスモード

例2: Sequentialアドレスモード

命令パターン

TG_LOOP_COUNT=2  TG_WRITE_REPEAT_COUNT=1  TG_RW_GEN_IDLE_COUNT=0
TG_WRITE_COUNT=3  TG_READ_REPEAT_COUNT=1  TG_RW_GEN_LOOP_IDLE_COUNT=1
TG_READ_COUNT=3  TG_BURST_LENGTH=1

アドレスパターン

TG_SEQ_START_ADDR_WR_L=’0  TG_ADDR_MODE_WR=1  TG_SEQ_ADDR_INCR=8
TG_SEQ_START_ADDR_WR_H=’0   TG_ADDR_MODE_RD=1  TG_RAND_SEQ_ADDRS_RD=X
		      
		      
TG_SEQ_START_ADDR_RD_L=’0  TG_RETURN_TO_START_ADDR=0  TG_RAND_SEQ_ADDRS_WR=X
		      
TG_SEQ_START_ADDR_RD_H=’0
図 107. Sequentialアドレスモード

例3: TG_RETURN_TO_START_ADDR=1のSequentialアドレスモード

命令パターン

TG_LOOP_COUNT=2  TG_WRITE_REPEAT_COUNT=1  TG_RW_GEN_IDLE_COUNT=0
TG_WRITE_COUNT=3  TG_READ_REPEAT_COUNT=1  TG_RW_GEN_LOOP_IDLE_COUNT=1
TG_READ_COUNT=3  TG_BURST_LENGTH=1

アドレスパターン

TG_SEQ_START_ADDR_WR_L=’0  TG_ADDR_MODE_WR=1  TG_SEQ_ADDR_INCR=8
		      
TG_SEQ_START_ADDR_WR_H=’0  TG_ADDR_MODE_RD=1  TG_RAND_SEQ_ADDRS_RD=X
      
TG_SEQ_START_ADDR_RD_L=’0  TG_RETURN_TO_START_ADDR=1  TG_RAND_SEQ_ADDRS_WR=X
TG_SEQ_START_ADDR_RD_H=’0
図 108. TG_RETURN_TO_START_ADDR=1のSequentialアドレスモード

例4: Random-Sequentialアドレスモード

命令パターン

TG_LOOP_COUNT=2  TG_WRITE_REPEAT_COUNT=1  TG_RW_GEN_IDLE_COUNT=1
TG_WRITE_COUNT=3  TG_READ_REPEAT_COUNT=1  TG_RW_GEN_LOOP_IDLE_COUNT=1
TG_READ_COUNT=3  TG_BURST_LENGTH=1

アドレスパターン

TG_SEQ_START_ADDR_WR_L=0x5a5a  TG_ADDR_MODE_WR=2  TG_SEQ_ADDR_INCR=6
		      
		      
TG_SEQ_START_ADDR_WR_H=0x5a5a  TG_ADDR_MODE_RD=2  TG_RAND_SEQ_ADDRS_RD=2
TG_SEQ_START_ADDR_RD_L=0x5a5a  TG_RETURN_TO_START_ADDR=0  TG_RAND_SEQ_ADDRS_WR=2
		      
TG_SEQ_START_ADDR_RD_H=0x5a5a
図 109. Random-Sequentialアドレスモード