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

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

FPGAの部屋

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

Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路3(FIFOの深度)

今、CMOSカメラ・ディスプレイ回路のVerilog ソースを作製中だ。
VGA DISPLAY CONTROLLERやCAMERA_CONTROLLERの非同期FIFOの深度についてまとめておこうと思う。
VGA DISPLAY CONTROLLERはBRAM使用の非同期FIFOを使用して、Writeのビット幅は32ビットの64深度、Readビット幅は16ビットの128深度の入り口と出口のビット幅が異なる非同期FIFOにする。(”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路2(レイテンシの測定)”を参照。)
VGA DISPLAY CONTROLLERの非同期FIFOの動作は最初にFULLまでDDR2 SDRAMから画像データを読み込んで、その後、VGAに出力するためにデータを吐き出していって、1/2の容量になったら、1/2分の画像データをDDR2 SDRAMから読み出すという構成になる。
CAMERA_CONTROLLERの非同期FIFOは、通常はCMOSカメラから出てくるデータは25MHz2クロック分で1画素であるため、12.5MHzで16ビットデータを書き込めれば良い。これは、133.33MHzで32ビットのデータを書き込む(133.33MHzクロックの立ち上がり、立ち下がりエッジで16ビットずつ書き込む)DDR2 SDRAMに対して十分に遅いため、通常の状態では非同期FIFOにデータは貯まることはない。ただし、VGA DISPLAY CONTROLLERがその容量の1/2の画像データをフィルしているときは、VGA DISPLAY CONTROLLERのアクセスが優先であるため待たされる。その待たされる時間の推測値を計算してみる。”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路2(レイテンシの測定)”を参照。

CAMERA_CONTROLLERの非同期FIFOが待たされる時間(最悪値) = Readのレイテンシ(165nsec) + リフレッシュのレイテンシ(203nsec) + 画像データの転送時間(7.5nsec * 32 = 240nsec) = 603nsec


608nsecを12.5MHzの周期80nsecで割ると7.6になる。8深度あれば十分だが、16深度とする。こちらはWriteのビット幅を16ビット、Readのビット幅を32ビットにしたいところだ。しかし、Fifo GeneratorでWriteのビット幅よりもRead伸びット幅の大きいFIFOにすると、最小深度が16であるため、Writeの16ビット幅で32深度、Readの32ビット幅で16深度のFIFOをBRAMで生成するしかない。これで行くことにする。
次は、WriteとReadでビット幅の異なるFIFOの動作をシミュレーションしてみたい。
  1. 2010年07月15日 05:39 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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