FC2カウンター FPGAの部屋 Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路2(レイテンシの測定)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路2(レイテンシの測定)

Spartan3A Starter KitのビットマップVGAコントローラの仕様3(レイテンシの測定)”と”Spartan3A Starter KitのビットマップVGAコントローラの仕様3(レイテンシの測定2)”でDDR2 SDRAMのレイテンシを測定して、VGAコントローラの非同期FIFOの深度を決定した。
今度もDDR2 SDRAMコントローラのレイテンシ込みのDDR2 SDRAMのレイテンシを測定してみる。以前のDDR2 SDRAMの動作周波数は150MHzだったが、今回は133MHzに変更してある。

DDR2 SDRAMの動作周波数が150MHzの場合のinitialize_end が1(初期化が終了)してから最初のWriteアクセスを見てみる。
BitMaped_VGA_Controller_4_090108.gif

この場合のWriteレイテンシは約87nsec となった。(黒いカーソルから赤いカーソルまで)上図で説明すると、read_writeが0の時がWriteなので、addr_fifo_wrenが1の時にアドレスの書き込みとなって、ここでDDR2 SDRAMへのWriteを要求している(同時にWriteデータもFIFOに書き込んでいるはず)。そこからDDR2 SDRAMのWriteした時点までをWriteレイテンシとしている。
次に、DDR2 SDRAMの動作周波数が133MHzの場合のinitialize_end が1(初期化が終了)してから最初のWriteアクセスを見てみる。
CamDispCntrler_DDR2_5_100710.png

レイテンシは97.5nsecとなった。87nsec * 150MHz / 133.33MHz = 97.9nsecとなって、大体、97.5nsecと同一となった。これは、動作周波数のみ変更しているので、当たり前といえば当たり前だ。
後は全部計算してみる。
READ要求を入れてからデータがREADできるまでのレイテンシは150MHzの時に147nsec だったので、133MHzでは165nsec。下の図は150MHzの例。
BitMaped_VGA_Controller_5_090108.gif

次にリフレッシュによるレイテンシについて検証する。次のバーストのためにプリチャージしてACTコマンドを入れたときにリフレッシュが起きて、また同じACTコマンドを入れ直している例だ。以前の150MHzの例を下図に示す。
150MHzの時に、180nsec のレイテンシが増加しているので、133MHzでは約203nsecとなる。
BitMaped_VGA_Controller_6_090109.gif

ROWアドレスやバンクが異なる(つまりプリチャージ、ACTコマンドを入れなければならない)Write, ReadコマンドがFIFOに詰まっている場合のレイテンシについて検討してみる。下図に150MHzの場合を示す。
BitMaped_VGA_Controller_7_090110.gif

上図は、DDR2 SDRAMコントローラへのWrite, Read要求用のFIFOがFULLになったところのRead要求を入力してから、Readされた値がoutput_data に出てくるまでの時間を測定している。測定した時間は1340nsec という情けないような値だ。これを133MHzに変換すると1507nsecとなる。これをCMOSカメラの入出力周波数25MHzの周期40nsecで割ると、約38となる。これは、DDR2 SDRAMコントローラがフルに使われている状態からVGA DISPLAY CONTROLLERが読み出しそうとして、表示するデータがロストしない表示データの最小バッファ値を表す。つまり、ARBITERがVGA DISPLAY CONTROLLERを最優先にするときに38データをVGA DISPLAY CONTROLLERで貯めておけば、表示するデータはなくならないことになる。ということで非同期FIFOの深度は64で十分ということになる。非同期FIFOが半分の容量になったときに、VGA DISPLAY CONTROLLERはARBITERに表示データの要求を出すので、非同期FIFOの容量は64ではなく、倍の128深度ということになる。(あくまで、25MHzのUYかVYの1画素(16ビット)単位での値)(2010/07/14:訂正)
この構成では、DDR2 SDRAMに各モジュールはCMOSカメラのみで、DDR2 SDRAMコントローラのコマンド用FIFOがフルに書かれる状態はないので、(CMOSカメラの書き込みスピードは25MHzだが、書き込みのビット幅がDDR2 SDRAMの1/4、動作周波数の差も0.19倍なので、コマンド用FIFOがフルになるはずがないからだ)十分すぎる余裕がある。
IPとして使用するときに、別に接続した他のモジュールからどんどんDDR2 SDRAMがアクセスされても大丈夫だ(ARBITERがVGA DISPLAY CONTROLLERを最優先するという条件は必要)。

これで、DDR2 SDRAMのレイテンシに関する検討は終了とする。
  1. 2010年07月11日 05:26 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1523-ec08b1ed
この記事にトラックバックする(FC2ブログユーザー)