FC2カウンター FPGAの部屋 キャラクタ描画テスト回路の実機デバック1
FC2ブログ

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

FPGAの部屋

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

キャラクタ描画テスト回路の実機デバック1

前回、キャラクタ描画テスト回路のインプリメントをして、実機にダウンロードしてテストしてみたが、おかしな画面になってしまった。もう一度、シミュレーションをしてみることにした。
シミュレーションしてみたのが、下の画面。
Bitmap_VGAC_debug_3_100214.png

あれ?clk_vgaのクロックがでていない。以前のシミュレーション波形を下に示す。
Bitmap_VGAC_debug_2_100211.png

やはり、clk_vgaがでていない。Verilogソースは、”キャラクタ描画テスト回路のインプリメント1(TIG制約)”で”最初にVGA信号用のDCMとDDR2 SDRAM用のDCMを同じクロック入力パッドから入力していたので、片方のクロック配線が一般配線に回ってしまうというエラーが出てしまった。これは、DDR2 SDRAM用のDCM出力 (BUFG出力) からVGA信号用のDCMのクロック入力につなぐくことにして問題解決。”というところしか、いじってないので、ここが悪いのだろう?
DDR2 SDRAM用のDCMのLOCKED信号を反転して、VGA信号用のDCMのリセットに入れることにした。この対策をした結果、clk_vgaも出力されて、元のシミュレーション波形と一致した。
とりあえず、インプリメントして、実機で見てみた。少し画面は変化したが、あまり変わらない。
次に、キャラクタ生成コントローラへのGRNATを止めてみた。つまり、画面には何も書かないようにした。そうしたところ色はなくなったが、まだ動いているように感じる画像だった。
次に、シミュレーションで確認してみようと思ったが、時間とディスク容量がかかりすぎるので、このままでは無理だ。そこで、VGA信号のタイミングをいじることにした。垂直関係の信号を下のようにいじってみた。(パラメータ化しておくと、こういう時に一発でタイミングを変更出来て便利だ)

parameter V_ACTIVE_VIDEO = 2;
parameter V_FRONT_PORCH = 0;
parameter V_SYNC_PULSE = 1;
parameter V_BACK_PORCH = 0;
// parameter V_ACTIVE_VIDEO = 768;
// parameter V_FRONT_PORCH = 3;
// parameter V_SYNC_PULSE = 6;
// parameter V_BACK_PORCH = 29;


これで垂直同期までシミュレーションで現実的な時間で見ることが出来る。
シミュレーションを下の図に示す。
Bitmap_VGAC_debug_4_100215.png

hsyncxとvsyncxが水平同期と垂直同期だ。問題なさそう。
次に、pixel_afifo_rd_enの長さを測る。15,753,848psecだった。これをクロックの65MHzの逆数で割ると、約1024となり(ぴったりには割れないが、誤差かな?)、非同期FIFOから読み出しているデータ数にも問題はなさそう。

今のところ、どこが問題なのか良くわからなくなってきたので、ビットマップVGAコントローラ単体で、適当なデータを与えて表示させてみようと思う。やはり、単体テストを行わないのは、まずかったか?やはり、単体テストからですね。当たり前か。。。
  1. 2010年02月15日 05:35 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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