日記帳だ! with Tux on Libserver

二度目の大改造!! 日記帳…か?を継承し、より柔軟でパワフルなBlogに変身しました。

RSSに対応しています。リンク・コメント・トラックバックは自由にしていただいてほぼ問題ありません。
RSS購読方法、僕のリンク・コメント・トラックバックについての考えを読むことをおすすめします。

JavaScriptを有効にし、Cookieを受け入れ、以下のブラウザを使うことで完全なコンテンツが楽しめます。
Mozilla Firefox 3.0(Get Firefox)・Opera 9.6・Safari 3.2・Lunascape 4/5(Gecko)・Lunascape 5(WebKit)
Internet Explorer 7/8とそれを使うIEコンポーネントブラウザ(Lunascape・Sleipnirなど)

FPGAでVGA信号を出力してみる実験

学生課に受験報告書を、専攻科の事務所に入学確約書を持って行った。

これで僕の受験は終わったことになる。早い決着でした。

そして、午後からは研究室でFPGAボードでいろいろやってた。


先日よりLCDを操作しようとがんばっていたのだが、説明書がようわからん。

それで載ってるチップのデータシートを探して見てみたのだが、なんか書いてあることが違う。

それでサンプルソースを探すと、PicoBlazeというXilinxのFPGA上で動かす小さなマイコンを使っていたりする。

ようわからんことだらけなので、後回しにしてVGA出力を試してみた。

これが案外簡単だった。


画像処理をやるということで、FPGAボードの出力としてVGAが使えるようになっています。

サンプルプログラムにカメラから取り込んだ画像をそのままVGAに出力するというのがあって、

それのために研究室のマシンの画面の横に、FPGAボード用の画面を置いてある。

それを自分の手で使えたら楽しいだろうなって。そう思って試してみたわけだけどね。

研究の中では処理した画像を出力するというときに使えるかもしれないね。

そう言う場合はメモリから読み出しながら順々にVGA信号を発生させていって使うそうです。

ただ、今回はそういうことではなく幾何模様を表示しただけ。具体的にはしましまグラデーションですね。


VGAって信号自体は結構簡単。

水平同期信号と垂直同期信号があってここにパルスを投げ込んでタイミングを取って、それでRGBを出力するだけ。

具体的なタイミングについてはFPGAボードの説明書にある。

Spartan-3A/3AN スタータ キット ボード ユーザー ガイド (pdf)

これの61ページから見て欲しい、ここにVGA出力について書かれている。

見ると分かるがRGBそれぞれ4bitの出力が出来る。しかし、えらく投げやりなD/Aコンバータだな。これでOKらしいです。

64ページに具体的なタイミングが載っている。


これを実現するように回路を作るだけですね。

水平方向のカウンタと垂直方向のカウンタを作って、

水平方向のカウンタをFPGAボードにある50MHzのクロックに合わせてカウントアップすればよい。

VGA信号は25MHzで、表にあるクロック数は25MHzで書かれているから、50MHzで考えるならクロック数を倍数えればよい。

あとは組み合わせ論理回路のオンパレードだ。

例えば水平同期信号はカウントが0から192までの間だけ0にすればいいとかそういうこと。

こういうのはカウンタの結果に応じて出力するだけでいいですよね。というわけでassignのオンパレード。

いやはや、assignで書ける組み合わせ回路は楽ですなぁ。


それで送ってみると、ちゃんと出てきましたよ。しましまがきれいに出てきました。

表示時間になる前は出力は0にしておかなかったらおかしくなりましたが、0にしておけばちゃんと動きました。

これは楽しいですね。LEDとボタンでシフトレジスタを作るよりもよっぽど楽しいですね。


実際、いろいろな回路を作っていくにあたっては、順序回路の部分と組み合わせ回路の部分に分けられそうなもの。

今回はそれがまさに上手く言った例。おかげでスマートに書けましたね。

これがうまいこと切り分けられなかったら、延々とalwaysを使って順序回路の書き方で書いてしまう。

これで意図したとおり論理合成されればいいのだが、なかなかそうもいかんやろうね。

alwaysで作った部分が組み合わせ回路になるための書き方は順序回路になるための書き方と何か違う気がする。

そして複雑になってしまい、おかしな動作したりするかもしれない。

やはり組み合わせ回路には組み合わせ回路のやり方があると。

ちゃんとここを切り分けて作っていかないかんのかなと、今回の成功から学んだ気がする。

まぁそんなことはFPGA開発の本にも嫌になるほど書いてあることなんだけどさ。


Author : hidemaro
Date : 2010/06/15(Tue) 23:57
研究・実験 | Comment | trackback (0)

Tools