高位合成でいろいろ遊びながら・・・。 性能が出ないとか他いろいろ問題があるようなことが指摘される。 それで深堀してみると・・・。
そもそも、今の高位合成って結局、シーケンシャル思想をパラレル思想に変換するわけなので無理が生じるところも出ると思うんだけど・・・
性能面で指摘する人って・・・
HDLで性能出せない人が高位合成で性能出せるわけありません。 HDLが書けるとハードウェアができると思っている勘違いさんがいます。 HDLもまともに書けないのにソフトウェアがまともにかけるはずありません。 コーディング技術ではなく何をコーディングしているのか勉強しましょう。
要するに何を作りたいか、決まってない人は高位合成で性能はだせません。 高位合成して眺めるのは高位合成ツールのレポートで、レポート→ソースコード修正→高位合成→レポートの繰り返しで、レポートを見ても性能は上がりません。 単にイタチごっこです。 何を作るか考えて、高位合成出力の妥協点を考えましょう。
現状の高位合成ツールで扱う言語はソフトウェア言語です。 ソフトウェアというと語弊があるのでシーケンシャル処理を主とした言語です。 ハードウェアで使用する言語はパラレル処理ができる言語です。 言語思想が違うので、ソフトウェアとの付き合い方や考え方も工夫しましょう。
メモリ周辺で性能が・・・、バス周辺で性能が・・・という人に多いのです。 現状の高位合成ツールはコンパイラ技術を使用したものになります。 ソフトウェアはメモリ上で動作するということが前提の高位合成になります。 効率の良いデータ転送方法を取り入れながら、メモリとの付き合い方を考えましょう。