カラーバー 時計(カウンタ) ゲーム GPSクロック VGA出力サンプル カラーバー 時計(カウンタ) ゲーム GPSクロック
VGA 640×480画素の表示領域 フロントポーチ、バックポーチを含めると800×520 25MHzクロック VSYNC(垂直同期) HSYNC(水平同期) R,G,B(赤、緑、青) FPGA出力3本を一対一で接続して、3ビットで8色を表示可能 リフレッシュレート60Hz (25MHz÷(800×520)=60)
モジュール構成 クロック発生回路 水平同期発生回路 垂直同期発生回路 RGBドット制御回路 基板の33.33MHzからDCMで25MHzを生成する 33.33MHz×3÷4=25MHz 水平同期発生回路 25MHzで800カウントの立下りパルス波形を出力する 垂直同期発生回路 水平同期パルスで520カウントの立下りパルス波形を出力する RGBドット制御回路 垂直同期と水平同期のカウント値をXY座標に変換し、表示色を決定して出力する
垂直同期 800 垂直フロントポーチ 640 水平 バック ポーチ 水平 フロント ポーチ 520 480 表示領域 水平 同期 垂直バックポーチ
水平同期とRGBの波形
カラーバー GBR 000 001 010 011 100 101 110 111 水平同期をカウントした値(0~519)を1/64した3ビットをRGBへ出力
垂直同期とRGBの波形
時計(カウンタ) 640×480を16で間引いて40×30の座標とする(水平、垂直カウント値の下4ビットを捨てる) 2 5 8 11 15 2 5 8 11 15 18 21 24 28 31 34 37 3 7 11
垂直同期と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ピン用カバー 抵抗 フラットケーブル(6芯以上) 圧着コネクタ(6芯以上) 82Ω×2(HS、VS) 270Ω×3(R,G,B) フラットケーブル(6芯以上) 圧着コネクタ(6芯以上) 圧着工具が必要 基板側ポスト(6芯以上) 絶縁チューブ