リコンフィギャラブル研究会で発表させていただきました

“企業における”という発表をさせていただくのは大変おこがましいのですが,
せっかく機会をいただけましたので,
イーツリーズ・ジャパンでのアプリケーション開発の事例紹介と
開発に際して開発コストを削減する取り組みについて紹介させていただきました.
後半1/3〜1/4くらいがSynthesijerとSynthesijer.scalaの話です.


FPGAにBrainF**kインタプリタを実装する話

+-><[].の羅列によるプログラミング言語BrainF**kは,使うには苦労しますが,実装するのは簡単です.

というわけで(?),Synthesijerのサンプルとして同梱されている実装の試し方を紹介します.このサンプルは同じソフトウェア(BarinF**kインタプリタのカーネル)がPCでもFPGAでも同じように動作する事例です.

続きを読む

True DualportBlockRAMに変更しました

プログラム中の配列をTrue Dualport BlockRAMに変更し,それぞれのポートをインスタンス内部と外部からのアクセスで使うようにしました.

この修正によって,

Test003.javaの,

t.a[1]=50;// 1 <- 50

のように,インスタンスの配列に直接、値を代入できるようになりました.

この機能は,Synthesijer-1.1から使うことができます.また,1.1では,1.0にあったバグの修正もしています.

メモリをTrue Dualport BlockRAMに変更

Synthesijerでは配列をブロックRAMとして扱っています.

これまでは,Writeポート/Readポートを持ったSimple Dualport Block RAMをインスタンシエーションしていましたが,ローカルとインスタンス外部の両方からアクセスできるように,True Dualport Block RAMに変更しました.

次は,インスタンス外部にポートを引き出せばOK…のはずです.

Synthesijer.Scalaをはじめました

Synthesijerの開発をはじめたときからJavaをHDLにするだけじゃなくて,ClojureかScala”で”簡単にハードウェアモジュールを書きたいと思いつつ手を出せていませんでした.

ここ2,3日の空いた時間を使って,ScalaでUDPTest.scalaのようにかけるようにしてみました.76行目あたりのステートマシンの記述がちょっとお気に入りです.

続きを読む

Synthesijer 1.0

いったん、現時点のコードセットをSynthesijer-1.0としてアーカイブしました。

1. ダウンロード

https://sourceforge.net/projects/synthesijer/files/synthesijer-1.0/ から

  • synthesijer-20140730.jar
  • sample-20140730.zip

をダウンロードしてください。samle-20140730.zipはサンプルプログラムです。unzipなどで展開してみてください。

続きを読む

Synthesijerバックエンドでe7UDP/IP IPコアを使う

イーツリーズのe7UDP/IP IPコアを使うと,FPGA上のロジック回路と簡単にUDP通信できるようになるので,とっても便利です.

簡単なサンプルが季節のe7UDP/IP IPコアのサンプル(二種)にあるのですが,これをSynthesijerバックエンドを使ったScalaで書き直してみました.

続きを読む