VGA出力サンプル - @niftyホームページサービス

VGA出力サンプル
カラーバー
時計(カウンタ)
ゲーム
GPSクロック
VGA
•
•
•
•
•
•
640×480画素の表示領域
フロントポーチ、バックポーチを含めると800×520
25MHzクロック
VSYNC(垂直同期)
HSYNC(水平同期)
R,G,B(赤、緑、青)
FPGA出力3本を一対一で接続して、3ビットで8色を表示可能
• リフレッシュレート60Hz
(25MHz÷(800×520)=60)
モジュール構成
• クロック発生回路
– 基板の33.33MHzからDCMで25MHzを生成する
33.33MHz×3÷4=25MHz
• 水平同期発生回路
– 25MHzで800カウントの立下りパルス波形を出力する
• 垂直同期発生回路
– 水平同期パルスで520カウントの立下りパルス波形を出力する
• RGBドット制御回路
– 垂直同期と水平同期のカウント値をXY座標に変換し、表示色を決定
して出力する
垂直同期
800
垂直フロントポーチ
640
水平
水平
フロント
ポーチ
480
ポーチ
表示領域
水平
同期
バック
垂直バックポーチ
520
水平同期とRGBの波形
カラーバー
GBR
000
001
010
011
100
101
110
111
水平同期をカウントした値(0~519)を1/64した3ビットをRGBへ出力
垂直同期とRGBの波形
時計(カウンタ)
• 640×480を16で間引いて40×30の座標と
する(水平、垂直カウント値の下4ビットを捨てる)
0
0
3
7
11
2
5
8
11
15
18
21
24
28
31
34
37
垂直同期とRGBの波形
ゲームのしくみ
• 元ネタはトランジスタ技術2007年8,9月号(中身は別物)
• VSの立ち上がり(=画面更新)3回毎にボールの座
標を縦横1座標分だけ移動
• 壁やラケットの座標と一致したら、ボールの進行方
向を反転
• スイッチが押されている期間ラケットの座標を変更
• ボールが右端の座標に達したらレシーブ失敗、サー
ブとしてラケットの上端からボールをスタート
• ゲームとしては未完成
• もっとゲームらしくなるよう機能を追加
• メーリングリストに公開?
GPSクロック
• GPSモジュールhttp://akizukidenshi.com/catalog/g/gK-02294/
が出力するシリアルのテキストデータから時
刻部分を取り出して、画面に実時間を表示す
る(UTCなので9時間加算)
• 複雑な処理にPicoBlazeを使用
• Xilinx社が提供する無償のソフトマイコン
http://japan.xilinx.com/products/ipcenter/picoblaze-VE-S2.htm
左のdownload (登録が必要)
http://japan.xilinx.com/support/documentation/user_guides/j_ug129.pdf
増設VGAコネクタ
部品表
• Dサブ3列15ピンメス
• Dサブ2列9ピン用カバー
• 抵抗
– 82Ω×2(HS、VS)
– 270Ω×3(R,G,B)
• フラットケーブル(6芯以上)
• 圧着コネクタ(6芯以上)
– 圧着工具が必要
• 基板側ポスト(6芯以上)
• 絶縁チューブ