FC2カウンター FPGAの部屋 2007年03月29日
FC2ブログ

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

FPGAの部屋

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

Spartan3E Starter KitのVGAコントローラの仕様1

Spartan3E Starter KitのVGAコントローラをVerilogで書こうと思っているので、仕様を決定している。
VGAの表示領域は800×600で72Hz。とりあえずはテストのためにビットごとに色を+1で作る回路をつけて状況を見ようと思っている。でも、仕事が忙しくなれば家でも仕事をするかもしれないので、中断するかもしれない。
まずはfpga-lab.orgさんの3月25日の徒然日記で知ったVGA Video OutputでVGAフォーマットのお勉強。その結果、仕様を一部だが決定した。

DDR SDRAMコントローラを使うために、Spartan3E Starter KitでVGAコントローラを作ることにした。解像度は800×600、垂直同期の周波数は72Hzとする。そうするとピクセルクロックは50MHzとなる。このピクセルクロックはSpartan3E Starter Kitに搭載される50MHzの水晶発信器をDCMで等倍して作ることにする。
水平同期関係のパラメータは、表示領域が800ピクセル、Front Porchは56ピクセル、Back Porchは64ピクセル、水平同期パルスは120ピクセルとなる。
VGA_Cont_H_sync_070329.png

一方、垂直同期関係のパラメータは、表示領域が600ライン、Front Porchが37ライン、Back Porchは23ライン、垂直同期パルスは6ラインとなる。
VGA_Cont_V_sync_070329.png

画素のフォーマットはSpartan3E Starter KitではRGBそれぞれ1ビットずつの3ビットが必要である。それぞれを1バイトのビット1に割り付ける。更に4バイトごとに整列させるためにダミーバイトを1つつける。
Spartan3E Starter KitのDDR SDRAMは16ビット幅であるので、1クロックで4バイト読み出しが出来る。(16ビット×2) これは4バイトなので、VGAの1ドット分となる。DDR SDRAMは100MHzで動作しているので、画面描画のために、フルにDDR SDRAMから読み出していると50/100でDDR SDRAMの帯域の1/2を占有することになる。あとの1/2でDDR SDRAMにプロセッサからアクセスしたり、DMA(しないけど)したりすることになる。
現在のDDR SDRAMコントローラは、リードしたデータを読み出す場合にデータのみを出力しているが、VGAコントローラとプロセッサなどのほかのマスタ・デバイスのアクセスを分けるために、2ビット分のIDを付加する。
VGAコントローラ、プロセッサなどのほかのマスタ・デバイス、アービタ、DDR SDRAMコントローラのデータパスのブロック図を下に示す。
VGA_Cont_test_circuit_070329.png

  1. 2007年03月29日 13:14 |
  2. VGAコントローラ
  3. | トラックバック:1
  4. | コメント:7