最初の模様

| | コメント(0) | トラックバック(0)
xilinx_051116_01.jpg

Spartan-3 基板で VGA に模様を出力する回路を作ってみた。 ソースコードその他は Trac のリポジトリ につっこんである。

640x480@60Hz という解像度で出力している。 残念ながら 8 色しか出せないのでこんな模様しか作れないわけだが、かなり目によろしくない。 暇があったら DAC 回路を外付けしてフルカラー出したり NTSC 出したりできるようにしたいが、 今はこれでがまん。


標準 VESA タイミングでは 640x480@60Hz でのドットクロックは 25.175MHz だが、 Spartan-3 基板では 50MHz のオシレータが載ってる関係から 25MHz を使うことになる。 マニュアルに書いてある推奨タイミングを XFree86 の modeline 風に書くと、以下のようになる。

# VESA industrial standard
modeline "640x480" 25.175 640 656 752 800 480 490 492 525 -hsync -vsync
# Spartan-3 Starter Kit
modeline "640x480" 25     640 656 752 800 480 490 492 521 -hsync -vsync

要するに VESA に比べるとスキャンラインが 4 本ほど少ないだけらしい。 うちの LCD モニタは特に問題なく映してくれたが、タイミングにきびしいモニタだと映らないかもしれない。

今回いちばん苦労したのは、25MHz を作るために Spartan-3 に内蔵されているクロックジェネレータ (DCM) を VHDL から使う方法を調べることと、 ナナメのしましま模様を作るために integer 変数のビット演算をする VHDL を書くこと。 CONV_STD_LOGIC_VECTOR() といった関数を思いだすのに相当時間がかかった。 VHDL はかなり型に厳密なので、 ちょっと凝った計算をしようとするとあっというまに記述がふくらんでしまう。

なお論理合成ツールの吐いたログを見ると、この VHDL がどのように処理されたかわかる。

crtc_map.mrp によれば Number of Equivalent Gates for Design = 7,624 ということで、けっこうでかくなった。 (しましまのところでなんも考えずに足したり引いたりとかしてるからだが)。 スライス (FPGA 内部のロジック構成部品) 数的には X3S200 デバイスの 1% ほどを使用しているようだ。

次はこういう簡単な模様じゃなくて、 SRAM の中身をフレームバッファとして出力するようにしてみようかな。 というわけで SRAM アクセス回路を作ろう。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: 最初の模様

このブログ記事に対するトラックバックURL: http://www.keshi.org/mt/mt-tb.cgi/9

コメントする

このブログ記事について

このページは、yaegashiが2005年11月17日 02:45に書いたブログ記事です。

ひとつ前のブログ記事は「My Logical Repository」です。

次のブログ記事は「Spartan-3E Starter Kit」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0