Synthesijer」カテゴリーアーカイブ

Synthesijer-2.0

Synthesijerで浮動小数点数演算への対応をはじめとした大きな改変を行ったバージョン2.0の開発をはじめ,一段落しましたので,バイナリパッケージにまとめました.

http://sourceforge.net/projects/synthesijer/files/synthesijer-2.0/

からダウンロードできます.

このバージョンでは,VHDL/Verilog HDLの生成をオプションで選択するように変更されています.VHDLコードを生成する場合には--vhdlを,Verilog HDLコードを生成する場合には--verilogを指定します.オプションを指定しない場合にはデフォルトでVHDLコードが生成されます.また,両方指定することもできます.

内部の合成方式の大幅な変更に伴って,最適化器の適用をすべてキャンセルしているので,とても賢くないコードが生成されますが,少しずつ最適化器の実装がすすめられています.

SynthesijerでDE0nanoにWIZ830MJを接続してみた

とある親切な方に,WIZ830MJをわけていただいたので,DE0-nanoに接続してみました.

IMG_0004

WIZ830MJに載っているW5300は,制御/ステータスレジスタやパケット格納メモリがメモリアドレス空間にマッピングされた,プロセッサとの親和性が高いインターフェースを持っています.

正当なAlteraユーザであれば,おそらくNios IIにぶらさげるところなのでしょうが,まずは,(私にとって)てっとり早くSynthesijerで制御回路を書いてみました.

続きを読む

Synthesijer-20141031

Synthsijer 2014.10.31版のバイナリパッケージを用意しました.細かなバグフィクスが中心ですが,2014.09.23版からの一つ大きな変更としてコマンドライン引数が追加されています.

これまでは,実行するとJavaからVHDLとVerilogの両方を生成していたのですが,生成したファイルをISEやVivado,Quartusのプロジェクトに追加する際の選択が面倒だという声をいただきました.

そこで,次のようにオプションで生成するHDLコードを選択できるようにしました.

VHDLファイルを生成する場合,

java -cp Synthsijer.Main --vhdl Javaファイル

Verilog HDLファイルを生成する場合,

java -cp Synthsijer.Main --verilog Javaファイル

--vhdl--verilogの両方を選択することもできます.

なお,オプションを指定しない場合にはVHDLファイルを生成します.

RGBTest: サインカーブを描いてみる

SynthesijerでAXIたたいてみたよ,なサンプルです

hdmi_test

DSForum2014やESS2014で紹介させていただいた,InreviumのZynqボードTD-7Z-020-EMCを使って,HDMIディスプレイにサインカーブの出力をしてみたサンプルです.サインカーブを描くというのがやりたいことではなくて,”AXI-HP経由でDDRメモリにアクセスするモジュール”を”Synthesijerを使ってJavaで書いた”というのをご覧いただければ,と思っています.

生成したVHDLを含むVivadoプロジェクトのアーカイブをhttp://www.wasa-labo.com/zynq_test_20141023.zipにまとめています.

続きを読む

DSForum 2014で発表させていただきました

Design Solution Forumにて”オープンソース高位合成処理系 Synthesijer”とういタイトルで発表させていただきました.

内容は,Synthesijerを使った開発のイメージと,どういうつもりでSynthesijerを開発しているか,というものを盛り込んだものになっています.

発表資料は,http://www.dsforum.jp/materials/ からダウンロードできるようです.

例題としては,東京エレクトロンデバイスのZynq評価ボードを使った画像表示回路として,位相の違うsinカーブを描く回路(Javaコード)を紹介してみました.関連リソースは少し整理をして10月末までには公開したいと計画中です.

hdmi_test

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

“企業における”という発表をさせていただくのは大変おこがましいのですが,
せっかく機会をいただけましたので,
イーツリーズ・ジャパンでのアプリケーション開発の事例紹介と
開発に際して開発コストを削減する取り組みについて紹介させていただきました.
後半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…のはずです.