DE0でVGA出力(VRAMを実装)
前回作成したVGAコントローラーにVRAMを実装した.taltalp.hatenablog.jp
前回までに作成したVGA表示回路は表示画像を回路で作成していたため特定の画像以外は表示することができなかった.
今回はVRAMとNIOS2を実装してソフトウェアから画像を変えられるようにした.
1.仕様
・画面サイズ・・・640×480
・描画可能領域・・・150×150
・256色カラーパレット
2.ブロック図
3.VRAM
今回作成したVRAMはFPGA内のロジックセルを用いた.
MegaWizardの「ROM:2-PORT」を用いれば書き込みと読み出しが別々に行えた.
VRAMにはそれぞれのドットごとに1byteのカラーパレット番号を記憶できるようにして,150×150ピクセルのデータを保持するために22500byte以上のデータが必要である.今回は32768byteを確保した.
4.カラーパレット
色はそれぞれのドットごとに12bitのデータを保存して8192色を使えるようにしたかったが,それだとオンチップのVRAMではロジックセル不足になってしまうため,カラーパレットを用いて最大で256色を表現できるようにした.
今回は書き換えすることができないカラーパレットでとりあえず作成した.
5.描画領域
図のようにカウンタが原点座標に来たら描画をスタートして,それ以外の領域ではパレット番号0(黒)を指定して等倍で表示をした.
6.動作の様子
Nios2でパターンを描画させた.
(画像だと見えにくいが,青,緑,黄,赤の順に1ピクセルごとに描画した)
Nios II で Hello World
Qsysを使用してDE0にNios IIを実装してPCに Hello World! を表示させました.
実際には自分でソースコードを書いたりだとかはほとんどしておらず,どちらかと言えばQuartusとQsysの使い方がメインです.
1.使用した環境
・Windows7
・Quartus II Ver.13.1 Web Edition
・DE0ボード
ブログはじめました
ブログ始めました.
趣味の電子工作とかのことについていろいろと書いていこうと思います.