FC2カウンター FPGAの部屋 Spartan3A Starter KitのビットマップVGAコントローラの仕様1
fc2ブログ

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

FPGAの部屋

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

Spartan3A Starter KitのビットマップVGAコントローラの仕様1

以前に作製したSartan3A Starter KitのDDR2 SDRAMコントローラを使ってみるために、グラフィック・コントローラを作って、プロセッサを実装し文字やグラフィックを描画してみようと思う。今のところプロセッサはOpencoresのSH2プロセッサ、Aquariusを考えている。
VGA Video Outputで見てみたが、1024x768, 60Hzで行ってみたい。
1024x768, 60Hzの規格を下に示す。

Pixel Clock 65MHz
Active Video      1024ピクセル
Horizontal Front Porch   24ピクセル
Horizontal Sync Pulse   136ピクセル
Horizontal Back Porch   160ピクセル
Vertical Active Video   768ライン
Vertical Front Porch    3ライン
Vertical Sync Pulse     6ライン
Vertical Back Porch    29ライン


ピクセルクロックは65MHzだ。50MHzのクロックをDCMで13/10倍すると65MHzになるので、これを使用する。
DDR2 SDRAMがCPUとグラフィック・コントローラで共有されるUMA(Uniform Memory Access)アーキテクチャとする。Spartan3A Starter Kit のVGAポートのRGBのビット数は4ビットずつなので、合計12ビット。これを2バイトに割り当てると、メモリは約1.6Mバイト必要となる。このデータを1秒間に60フレーム必要とするので、ビットマップVGAコントローラに必要なメモリ帯域は約100Mバイト/秒となる。16ビット幅、DDR2-300の帯域は600Mバイト/秒であるため、メモリ帯域の1/6をビットマップVGAコントローラで使用する。もちろん、リフレッシュやその他無駄な時間があるため、メモリ帯域の占有時間はもっと長くなることが予想されるが、CPUの動作周波数はOpencoresによると、せいぜい50MHzだろうと思うので、メモリ帯域は足りると思われる。(あくまで予想)
DDR2 SDRAMは512Mビットなので、バイトに直すと64Mバイト。そのうちの約1.6Mバイトをグラフィックメモリとして使用する。さらに、CPUがキャラクタを描画するは負荷が重いと思われるので、キャラクタを生成するキャラクタ生成コントローラを付加することにする。
メモリアクセス・データパスのブロック図を下に示す。
BitMaped_VGA_Controller_1_090105.png

上図でビットマップVGAコントローラからのメモリアクセス要求、キャラクタ生成コントローラからのアクセス要求、CPUからのメモリアクセス要求はアービタで優先順位付けされる。ビットマップVGAコントローラからのメモリアクセス要求が最優先でサービスされることになる。
最初の実装では、キャラクタ生成コントローラを実装せずに、ビットマップVGAコントローラとCPUだけを実装することにする。
  1. 2010年01月05日 05:42 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:4

コメント

おぉ!VGAコントローラですか!
キャラクタ生成コントローラは自分も欲しいなぁと思っていたので,参考にさせていただくと思います.
  1. 2010/01/05(火) 13:08:44 |
  2. URL |
  3. いえなが #-
  4. [ 編集 ]

キャラクタ生成コントローラは、少し先になると思います。グラフィック関係を勉強してからと考えています。期待しないで待っていて下さい。
  1. 2010/01/05(火) 21:56:31 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

LCD用グラフィックコントローラは入手も難しく、製品寿命も短いのでFPGAの活躍場所ですね。
私も参考にさせていただきますのでよろしくお願いします。
  1. 2010/01/05(火) 21:59:02 |
  2. URL |
  3. hazezi #-
  4. [ 編集 ]

一応、VGAポート用のグラフィックコントローラを考えています。グラフィックコントローラができれば良いなと思っています。ただいま勉強中です。昔のグラフィックコントローラのデータシートを見たりして勉強しようと思っています。どなたか良い本かデータシートがありましたら、譲って下さい。
  1. 2010/01/06(水) 04:53:27 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

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