C言語で入力できることから、「アルゴリズム開発者もハードウエアを設計できる」と過度の期待(誤解?)がかかる高位合成。動くだけで良いハードウエアは設計できるかもしれないが、製品として市場で通用するハードウエアなかなか設計できないのが現状だ。
アルゴリズム設計者とハードウエア設計者が上手い具合に役割分担して、画像処理ICの設計に高位合成を活用しているのが、富士ゼロックスである。同社の三角晃氏(コントローラ開発本部 コントローラプラットフォーム第五開発部)が「Calypto Users Forum 2014」(2014年8月29日にカリプト・デザイン・システムズが新横浜で開催)に登壇し、同社における高位合成活用術に関して講演した。
これまでに富士ゼロックスでは、3つの画像処理ICの開発で高位合成ツール「Catapult」(米Calypto Design Systems製)を活用してきた。最初のICでは4モジュール、2番目のICでは50モジュール、3番目のICでは113モジュールを高位合成で設計した(図1)。順調に高位合成の適用範囲を広げられたのは、アルゴリズム設計者とハードウエア設計者が適切な役割分担していることが効いている。
三角氏が指摘したように、一般にアルゴリズム設計者が用意するC言語ソースコードに記述されているのは、画像処理ICで実行するデータの演算だけである(図2)。ハードウエアとして動作するのに必要な、データの入出力やメモリーインタフェース、ホストCPUインターフェースといった部分は、RTL設計時と同じように別途用意しなければならない。