ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

High Level Synthesis

OpenCL+clang+LLVM IR+バックエンドでHLSだなぁと感触を掴んでたんだがいまいち情報が少なくてう〜んな状態で現実逃避ついでにLLVMを見てる。

フロントにclangを持ってきて、真ん中にLLVM-IR、バックエンドにverilog持ってくれば良いんじゃない?と、思っている。

それにOpenCLかませばいいでしょ。

その観点で、探してみると下記の2つが見つかった。

http://www.c-to-verilog.com/

https://github.com/OpenEDA/Shang/

http://legup.eecg.utoronto.ca/

ちょっと、手が出せてなかったのはどう構築すればclangからバックエンドに繋がるかイメージができてなかった。

なかなか、良い記事が見つけられなかったのでなんとなぁ〜くしかわからなかったんだけど、LLVM-IRからのバックエンドを提供しているということでイメージが湧いたので、ひとまず、OKかな?

LLVMはバージョンが違うと互換性がない場合があるらしい。

c-to-verilogはLLVM 2.5に対応していて、LegUpとShangはLLVM 2.9に対応しているらしい。

LLVM 3.2からはバックエンドを取り込んだというようなリリースノートがあるし・・・。

それが下記のURLになるんだけど、WEBページを見てみるとVHDLっぽい感じがする。

http://tce.cs.tut.fi/

そういえば、AlteraがOpenCLやってたなぁと思って、資料を見てみたら、まんまclang+LLVM+バックエンドだった。

なぁ〜んだ、そういうことだったんだ。

Alteraのバックエンドはオリジナルなの?

Alteraは自前でツールを作っているイメージ無いからどっかから持ってきてんのかな?