OpenCL+clang+LLVM IR+バックエンドでHLSだなぁと感触を掴んでたんだがいまいち情報が少なくてう〜んな状態で現実逃避ついでにLLVMを見てる。
フロントにclangを持ってきて、真ん中にLLVM-IR、バックエンドにverilog持ってくれば良いんじゃない?と、思っている。
それにOpenCLかませばいいでしょ。
その観点で、探してみると下記の2つが見つかった。
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っぽい感じがする。
そういえば、AlteraがOpenCLやってたなぁと思って、資料を見てみたら、まんまclang+LLVM+バックエンドだった。
なぁ〜んだ、そういうことだったんだ。
Alteraのバックエンドはオリジナルなの?
Alteraは自前でツールを作っているイメージ無いからどっかから持ってきてんのかな?