高位合成ツール(VitisHLS)
Cコード(C/C++)からRTL記述を合成する高位合成(High Level Synthesis)は、VitisHLS(旧VivadoHLS)が出て身近になった。FPGAベンダはソフトウェア技術者をターゲットにしているようだが、言語は同じでもS/WとH/Wでは性能が出る書き方が違っていて、パイプラインとかダブルバッファのH/Wの概念を知らないとFPGAでまともな性能を出すのは難しいようである。
◇
一方、ハードウェア技術者にとっては、C言語になじみがあればC++を知らなくても大体書けるし、うまくするとRTL記述の1/10の行数で書けてしまうのでご利益も大きいと思う。ただ、RTL記述よりも自由度が小さく、回路によって向き不向きがある。そこで、RTL記述を知っている人がVitisHLSを使うための基本知識をまとめられたら、というのが本章を書いたきっかけである。