BLANCAのアプリを作る 2日目(VGA)
今日は「BLANCAでFFT」の続きを行いました。
前回ようやく画面が出るようになったので、今回は画面に波形を表示させるための「グラフ表示」機能と、オーディオインタフェースを作ることにします。
最初にグラフの表示ですが、まず思い浮かべるのがオシロの画面のように縦横の目盛があって波形が表示されるものです。そこで、まず画面に格子状の目盛を表示させることにしました。
目盛を出すには、横方向と縦方向に等間隔の縞模様を出せばよいわけですが、これには画面の横方向のドットを数えるXカウンタと、縦方向のライン数を数えるYカウンタを用意します。そして、Xカウンタが何かの整数のN倍の値になったときに出力に特定の色を出すようにすればいいわけです。
具体的には、XカウンタとYカウンタのどちらか下5ビットが"00000"になったときに明るい緑を出すようにし、それ以外では背景色を出すようにします。ただし、これだけだと画面いっぱいに格子模様が広がってしまって見栄えが悪いので、画面の中央の513×257の領域に入った時だけこの模様を出すようにします。
グラフの表示するには、表示させたい値が8ビット(2の補数表現)として、「128 - 表示させたい値 = Yのカウンタ値」となった場合に画面に白い点を出すようにすれば、グラフが描けます。
次の図はY≡X (mod 256)のグラフです。目盛の1マスが32を表しています。

このとおり、今はただの直線を表示させていますが、Xの値に応じて関数を作れば、いろいろなグラフが画面に描けるでしょう。
Y方向の値を8ビットにしたのは、画面のサイズがVGA(640×480)のため、Y方向の解像度が9ビットに満たないからです。
| 固定リンク


コメント
はじめまして。ゆうすけと申します。
まことに恐縮ながら拝見させていただきました。
現在VHDLについて勉強しており、VHDLで書いたものをパソコンモニターに表示させることをしています。
そして今回拝見しましたのが、この格子を表示させるものなのですが
私自身組んでみたいため、文法やソースの考え方をもう少し、くわしく教えていただけないでしょうか?
投稿: ゆうすけ | 2007.05.24 00:44