水曜日, 5月 22, 2013

JRubyの導入

現在、DE0-Nano用のプロセッサ設計と平行して、JRuby関連の環境整備をしています。

JRubyはJava仮想マシン上で動くRuby環境で、Jarファイル一つでお手軽に導入可能な便利なものです。このRubyという言語は非常に自由度が高く、その上に別の言語(ドメイン特化言語)を構築するようなことも可能です。プロセッサの回路設計は論理合成のためにVHDLVerilog HDLといったハードウェア記述言語を利用しますが、マルチプロセッサの様な大規模な回路をCAD無しで直接記述するのは結構大変なので、ここではRubyを利用したより上位の記述をもとに、VHDLのコードを自動生成する方式を採ります。また、マルチプロセッサ用のソフトウェア開発においても、Rubyを利用したコンパイラを構築する予定です。

このJRubyですが、Windows環境ではDLL呼び出しの機能もあるので、JNAの代わりにそれ自体でJTAGのアクセスが可能です。というわけで、さっそくJRubyを利用したJTAGデモプログラム(jtag_demo.jar)を作ってみました。JRubyのJarファイル(jruby-complete.jar)は結構大きいので、今度は同梱せずにネットから最新版を自動的にダウンロードするようにしてあります。

jrubyloader.png

ダウンロードしたjruby-complete.jarをjtag_demo.jarと同じフォルダに置いておくか、Javaの拡張フォルダ(jre/lib/ext)に移動すれば、次からはダウンロード無しで実行が可能です。このやり方で、かなりコンパクトなファイルのみで回路データとコンフィギュレーションプログラムを配布することが可能になります。JavaとRubyのソースコード(Rubyの方は実行コード)はJarファイル内に同梱してありますので、同様の仕組みを利用したい方はご参照ください。