「SystemC Japan 2014」が2014年6月20日に新横浜で開催された。System C擁護団体やSystemC関連EDAツールベンダー、およびSystemCのユーザーが講演した。最後にはパネルディスカッションがあった。
筆者が聴講できた午後の部のユーザー講演のうち、3社が話していたSystemCや高位合成を活用するためのポイントを以下に紹介する(午前の部の方、申し訳ありません)。SystemC Japanは2006年に第1回があり、それ以降、毎年、行われてきた(日経テクノロジーオンライン関連記事1、同2、同3、同4、同5、同6、同7、同8、同9、同10)。今回は9回目。これまでのユーザー講演では、SystemCや高位合成を適用した成果の報告が目立っていたが、今回はこれらを活用するポイントを3社がそろって語っていたことが印象に残った。3社はSystemCや高位合成の利用経験が異なり、それぞれの立ち位置で活用するポイントを語った。
記述をちょっと変えるだけで回路規模が大幅減
1社目は京セラドキュメントソリューションズである。同社から横田 洋志氏(ソフト開発本部 システムデバイス開発統括部 第1 ASIC開発部 画像処理開発課)が登壇した。同氏は複合機用ASICの開発に携わってきた。以前にC言語入力の設計手法を採用し、C言語入力の高位合成ツールを使ったことがある。その際は、画像処理回路の設計を行った。
今回、制御回路を含めて高位合成を適用しようと考えて、C言語からSystemCに乗り換えた。SystemC入力の高位合成ツールを半年ほど前に導入し、同ツールを使って分かったSystemCや高位合成を使うためのポイントを披露した。画像処理向け回路の開発はアルゴリズムの開発から始まるが、特に何も考えないでSystemCに書き直して高位合成ツールに投入したところ、回路規模が想定よりも大幅に増大した。
そこで、高位合成の内部処理を考慮しながら、SystemCの記述の改善に取り組んだ。記述を少し変えただけで、回路規模が大きく減少することが分かった。横田氏はその事例を3つ、今回紹介した。例えば、フィルタ処理回路の場合は、演算の順番を変えただけで、回路規模が21%削減したという。最大値を見つける演算では、演算を並列化しただけで、回路規模が33%削減したとする。
また、高位合成ツールの最適化オプションを変えただけで、回路規模が20%減ったたケースがあった。ただし、3つの事例で紹介した変更がすべてのケースで有効とは限らないことも同氏は説明している。例えば、高位合成ツールの最適化オプションを変えたら、回路規模が86%増加することもあった。記述の変更がノウハウとして溜まるように、レビューを行ったり、レポートをまとめることなどを勧めて、講演を終えた。