Diary/2011-8-16
JavaRock開発日誌
開発中のJavaRock.
先週末にどうにか実装をおえつつあったメソッドへの配列渡しのHDLコード生成部分.
きちんと動作していることがシミュレーションで確認できた.
本当は昨日飛行機の中でやる予定だったのだけど酔ってしまってできなかった...
いろいろと方式を検討した挙句,
- 配列を引数に受けるcallee側で適当なサイズの配列を用意
- calleeからcallerへ,その配列への書き込みポートを提供
- callerは関数呼び出し時に配列に値を書き込んでから関数の実行をキック
という方法で実装.
↓のようなcallee側のクラスを用意しておいて
import net.wasamon.javarock.rt.*; public class sum implements Synthesizable{ public int sum(int[] a){ int sum = 0; for(int i = 0; i < a.length; i++){ sum += a[i]; } return sum; } }
↓のようなcallerで呼ぶことができます.
import net.wasamon.javarock.rt.*; public class sumsim implements Synthesizable, Runnable{ sum obj = new sum(); int[] data = new int[10]; public void run(){ int value = 0; for(int i = 0; i < data.length; i++){ data[i] = i; } value = obj.sum(data); } }
これで文字列(文字の配列)やまとまったデータが渡せるようになるので,かなり嬉しいはず!!
とりあえず東京に戻ったら,ML605のキャラクタディスプレイに文字列を書きこむデモでも作ろうかな.
次は,同じようにして,関数の返戻値として配列を扱えるようにしよう.
夏風邪
父親が車を貸してくれるというので,
家族でどこかに出掛けようかと思案していたのだけど,
朝起きてきた次男が熱っぽい...
というわけでお出掛けの目的地は病院になりました.