高位合成

High-Level Synthesis (HLS)

C/C++などの高級言語で書いた動作記述からハードウェア記述を生成する設計手法である。レジスタ転送レベルより抽象度が高く、回路設計に必要な専門知識の敷居を下げる一方、逐次的なコードと並列に動く最適化済み回路の間には意味的な隔たりが残り、合成ツールへの指示の与え方が性能を左右する。

詳細

概要

高位合成は、C/C++などの高級言語による記述を入力として回路を生成する設計手法である。設計者はレジスタ転送レベル(RTL)で信号やクロックごとの動作を直接書く代わりに、アルゴリズムの記述に集中できる。ハードウェア設計に必要な専門知識の敷居を下げ、ソフトウェア技術者が回路開発に関わりやすくする点が利点とされる。

技術的な要点

逐次実行を前提とした高級言語のコードと、並列に動作する最適化済みハードウェアの間には大きな意味的隔たりがある。このため、ループのパイプライン化や展開、配列の分割によるメモリ帯域の確保、外部とのインタフェースの指定などを合成ツールに指示する作業が必要になり、同じ機能でも記述の書き方によって回路面積や動作周波数、処理性能が大きく変わる。生成された回路が意図どおりかは、高位の記述とRTLの双方でシミュレーションや等価性の確認を行って評価する。近年は大規模言語モデルを用いて高位合成向けの記述や最適化の指示を支援する研究も報告されている。

産業での位置づけ

高位合成は電子設計自動化(EDA)フローの上流に位置し、生成されたRTLはその後の機能検証や論理合成、物理設計へ引き渡される。FPGAや特定用途向け集積回路のアクセラレータ開発で、設計期間の短縮と設計案の比較検討を目的に用いられる。