イベントの時だけ更新する、という放置っぷりから脱却を図るべく、現在挑戦中(そして次のイベントで出展予定)のネタについて書いておこうと思います。
組み込み向けRubyの「mruby」をAltera FPGAのソフトコアCPU「Nios II」で動かそう、というプロジェクトです。プロジェクト名を rubic と名付けてぼちぼち進めています。
Nios IIはソフトコアCPUだけあって、自分で命令セットを増やせるとか、Tight coupled memoryが使えるとか、普通のプロセッサには無い特徴があります。それを上手く使ったらmrubyを高速化させたりできないか?というのが、このプロジェクトを始めたきっかけですね。
詳しいことはコミケで頒布している薄い本(silicombi電子工作本 vol.3)に書いてます。
作業場所はこちらに。
https://github.com/kimushu/rubic
東雲LCDの件で半年ほどrubicから離れていたら本家mrubyの進化に追いつけなくなったので(^^;)、これまでの成果は放置してやり直しをするかもしれません。
これからしばらく、rubicやmrubyの話を書いていこうかと思います。では。
2013年11月アーカイブ
(2013/11/10 サンプルデータアップに伴い記事修正しました)
(2013/11/11 マニュアルの誤記修正)
えー、2年以上ぶりの投稿です^^;
FPGAのサンプルプロジェクトおよびプログラミング用データは準備中です。もうしばらくお待ち下さい。
(2013/11/10 追記)
お待たせしました。FPGAのサンプルプロジェクトを公開しました。(Quartus II 13.0sp1 Linux版で作成しています)
https://github.com/kimushu/shinonome-lcd/tree/v1.1.20131110
とりあえずすぐに動作検証できるよう、合成済みのjicファイルを用意してあります。
mft2013-demo/output_files/demo_jic.zipを展開し、その中にある de0nano_epcs*.jic と colorbar_epcs*.jic を
Quartus II Programmerを使って書き込んでください。de0nanoとcolorbarの2つはどちらから先に書き込んでも構いません。
なお、DE0-Nanoはリビジョンによって搭載しているSPI Flashの型番が異なります。初期のリビジョンではEPCS16、
後のリビジョンではEPCS64となっているようです。両方のイメージを用意してありますので、お持ちのDE0-Nanoに
搭載の型番を確認の上、一致する方のjicを使って書き込んで下さい。
※なお、私の手持ちのDE0-NanoはすべてEPCS64のため、EPCS16での動作検証できてません。
どなたかEPCS16で検証出来た方はご一報頂けると大変助かります。
de0nano_*.jic はFPGAの合成結果が入っています。Quartus IIで合成したものを、EPCSの先頭に配置します。
colorbar_*.jicはNios II用のアプリケーションです。Nios II EDSでビルドしたelfをEPCSの最終セクタ(末尾-64kByte)に
配置するように設定されています。EPCSの最終セクタからELFロードするためのブートローダは
https://github.com/kimushu/altera_bootloader で公開しているものです。
デモには4つのモードがあります。DIP-SWで切り替えます。
(2013/11/11 マニュアルの誤記修正)
えー、2年以上ぶりの投稿です^^;
相変わらずブログを書く習慣が付かず、放置気味というより完全放置のブログになっちゃっていますね...。
2013/11/3~4に東京お台場で開催されたMaker Faire Tokyo 2013に @silicombi というサークル名義で出展してきました。
(2013/11/10 追記)
お待たせしました。FPGAのサンプルプロジェクトを公開しました。(Quartus II 13.0sp1 Linux版で作成しています)
https://github.com/kimushu/shinonome-lcd/tree/v1.1.20131110
とりあえずすぐに動作検証できるよう、合成済みのjicファイルを用意してあります。
mft2013-demo/output_files/demo_jic.zipを展開し、その中にある de0nano_epcs*.jic と colorbar_epcs*.jic を
Quartus II Programmerを使って書き込んでください。de0nanoとcolorbarの2つはどちらから先に書き込んでも構いません。
なお、DE0-Nanoはリビジョンによって搭載しているSPI Flashの型番が異なります。初期のリビジョンではEPCS16、
後のリビジョンではEPCS64となっているようです。両方のイメージを用意してありますので、お持ちのDE0-Nanoに
搭載の型番を確認の上、一致する方のjicを使って書き込んで下さい。
※なお、私の手持ちのDE0-NanoはすべてEPCS64のため、EPCS16での動作検証できてません。
どなたかEPCS16で検証出来た方はご一報頂けると大変助かります。
de0nano_*.jic はFPGAの合成結果が入っています。Quartus IIで合成したものを、EPCSの先頭に配置します。
colorbar_*.jicはNios II用のアプリケーションです。Nios II EDSでビルドしたelfをEPCSの最終セクタ(末尾-64kByte)に
配置するように設定されています。EPCSの最終セクタからELFロードするためのブートローダは
https://github.com/kimushu/altera_bootloader で公開しているものです。
デモには4つのモードがあります。DIP-SWで切り替えます。
- DIP-SW(1:ON,2:ON,3:ON,4:ON) -- フルカラーバー(7帯)表示
- DIP-SW(1:OFF,2:ON,3:ON,4:ON) -- 基板名称表示
- DIP-SW(1:ON,2:OFF,3:ON,4:ON) -- GPIO/アナログ入力値読み取り
- DIP-SW(1:OFF,2:OFF,3:ON,4:ON) -- MFT2013でやっていたマンデルブロ集合表示
こだわりはじめると公開が遅くなるので、マンデルブロ集合は相変わらずズームとか出来ません...。
MFTのときのままで、3枚の固定座標順次切り替えです。