オリンパスデジタルシステムデザインは,C言語入力の高位合成ツール「Synphony C Compiler」を利用してFGPAを設計した事例について,「SYNOPSYS USERS MEETING 2010」(日本シノプシスが10月15日に東京で開催)で講演した。Synphony C Compilerは,元々,米Synfora, Inc.の製品(当時の製品名は「PICO Extreme」)で,米Synopsys, Inc.は2010年6月に同製品などを買収し,自社製品に加えた(Tech-On!関連記事1)。

図1●導入経緯を紹介する丸田 知彦氏 Tech\-On!が撮影。スクリーンはオリンパスデジタルシステムデザインのデータ。
図1●導入経緯を紹介する丸田 知彦氏
Tech-On!が撮影。スクリーンはオリンパスデジタルシステムデザインのデータ。
[画像のクリックで拡大表示]
図2●適用した設計 Synphony C Compilerで合成した回路の比率は99%と高い。オリンパスデジタルシステムデザインのデータ。
図2●適用した設計
Synphony C Compilerで合成した回路の比率は99%と高い。オリンパスデジタルシステムデザインのデータ。
[画像のクリックで拡大表示]

 登壇したのは,オリンパスデジタルシステムデザインの丸田 知彦氏(ハードウェア部)である。同社はオリンパス・グループの研究開発企業で,映像・医療分野で将来必要になるSoC技術やデジタル画像基盤技術などを手掛けている。その中に動画処理アルゴリズムの開発がある。開発したアルゴリズムの検証では,リアルタイムで動画を評価する必要があり,FPGA化が求められている。

 これまでは,RTLのHDLでFPGAを設計していたが,時間がかかること,アルゴリズムに変更があっても対応が難しいことから,高位合成ツールを導入することにした(図1)。2008年に,入力言語がC言語/C++であること,回路規模の見積もりが容易なことを条件にして,市販の高位合成ツールの調査を開始した。従来のRTL設計手法に比べて回路規模は20%ほど増えるものの,工数が40%削減できることから,Synphony C Compilerを選んだ。2009年から利用をはじめて,現在までに複数のプロジェクトで適用している。

 今回の講演で,丸田氏はSynphony C Compilerを適用したプロジェクトを一つ詳細に紹介した。1080i(1920×1080画素,60Hzのインターレース)で画像処理するアルゴリズムで,オンチップ・バスにぶら下がる画像処理ブロックとして米Altera Corp.のFPGAに実装する(図2)。回路規模は300万ゲート以下に抑え,75MHzで動作することを目指した。

 このプロジェクトを通して,丸田氏らは,「すべてのC言語コードがハードウェア化できるわけでないこと」や「問題が発生したときには,その対策にはハードウェア設計の知識が必要なこと」を知り,コーディングやデバグのガイドラインを構築する必要があることを学んだ(現在進行形で,ガイドラインは整備中)。それでも,既存のRTL設計手法だったら開発に23.5人月の工数がかかっていたであろうところを,高位合成を適用したことで15人月の工数で済ませた。36%の工数削減である。