##高位合成 (HLS)
高位合成はHigh Level Synthesis の略で一般にHLSと言われています.
高位合成は, C 言語などの動作記述を入力としてハードウェア記述言語を自動生成する技術で
す. また, 高位合成の一種にアセンブリや機械語を入力としてハードウェア記述言語を自動生成
するバイナリ合成という技術もあります.
簡単な話, ハードウェア版のコンパイラです.
高位合成システムの9割が入力としてC, Javaを入力します.
###高位合成のメリット, デメリット
ハードウェア記述言語は手で書くこともできるのですが非常に難しいため, 作成に時間がかかるしデバッグも大変です.
同様にソフトウェアの世界でも本気を出せばバイナリ, アセンブリでプログラムすることはできますけど, 時間がかかるしデバッグも難しいですよね.
そのためメリット, デメリットもコンパイラとほとんど一緒です.
- メリット
- デバッグが比較的楽
- ハードウェア記述言語を理解する必要がない
- 大規模のシステムを作成する場合, 高位合成を使った方が速度が早い
- デメリット
- 高位合成システムのツールの使い方を学ぶ必要がある
- 小さいシステムの場合手書きの方が早い
一部補足します.
大規模なシステムの場合高位合成を使った方が早いのもコンパイラと一緒です.
人が完璧な実装ができると仮定すると, どのような場合でも手書きの方が速度の早いシステムを作ることができます.
しかし, 人は完璧ではありません. 最適化処理を高位合成システムに任した方が早いシステムになります.
小さいシステムの場合, 人でも完璧に理解できるため手書きの方が速度が出ます.
###有名な高位合成システム
有名な高位合成システムにVivadoHLSがあります.
(逆にこれ以外使う必要がないかも...)
高位合成, FPGAの世界には大きな会社が二社あります.
- Xilinx
- Intel (旧Altera)
Intel はAlteraを吸収したことで有名になりました.
VivadoHLS はXilinx社の提供する高位合成システムです.
シミュレーションシステムにVivadoがあり, それの高位合成を担っているのがVivadoHLSです.
(FPGAは書き換え可能な集積回路で, VerilogHDLで書き込むことで回路を設計できます.)