MFT2015に行ってきた
Maker Faire Tokyo 2015 に行ってきました。
Lチカコンピュータやintel4004を用いた電卓の展示、ペッパーの集団など普段なかなか見れないようなものがたくさんありました。
今回がMFT初参戦だったのですが来年もまた参加したいです。
スーパーLチカコンピュータ
www.flickr.com
図形描画
これまでに作成したVGA表示回路で図形を描画できるようにしました.
NIOS IIでVRAMにアクセスして図形を描画しています.
図形の描画アルゴリズムはこちらのサイトを参考にしました.
アルゴリズムの紹介
まだ直線と画像の描画しか実装していないのですがとりあえず実行中の画像です.
文字(画像)の描画と直線の描画
また今回は、DE0の起動毎にハードウェアの情報を書き込んで、ソフトを書き込むという作業が面倒だったため、下記の本の第9章を参考にブートコピアを実装しました.
FPGAスタータ・キットで初体験!オリジナル・マイコン作り―フリーのCPUコアNios 2/eと高速ロジックで七変化 (トライアルシリーズ)
- 作者: 岩田利王
- 出版社/メーカー: CQ出版
- 発売日: 2013/04
- メディア: 単行本
- この商品を含むブログ (1件) を見る
ハードウェアの情報はEPCS4に、ソフトウェアはFlashに入れるため不揮発性になりCycloneIII内のメモリー使用量を減らすことができました.空いた分をVRAMにまわせそうです.
しかし、CPUの処理が重くなり描画に時間がかかるようになってしまいました.
今は静止画のみの描画なので速度が遅くても困りませんが、そのうちより複雑な計算が必要になってきたらソフトウェアでは厳しそうです.
また、VRAMもDE0に載っているCycloneIII内のメモリービット数では640×480ピクセル分のデータを保持することができないため, SDRAM上にVRAMの領域を取るなど改良が必要そうです.
これらの改良はまた後々にやってみようと思います.
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ボード
ブログはじめました
ブログ始めました.
趣味の電子工作とかのことについていろいろと書いていこうと思います.