「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%増加することもあった。記述の変更がノウハウとして溜まるように、レビューを行ったり、レポートをまとめることなどを勧めて、講演を終えた。