PR
講演する東浦功典氏 日経BPが撮影。
講演する東浦功典氏 日経BPが撮影。
[画像のクリックで拡大表示]
図1●現在のフローの問題点とCatapultへの期待(1) コニカミノルタのデータ。
図1●現在のフローの問題点とCatapultへの期待(1) コニカミノルタのデータ。
[画像のクリックで拡大表示]
図2●現在のフローの問題点とCatapultへの期待(2) コニカミノルタのデータ。
図2●現在のフローの問題点とCatapultへの期待(2) コニカミノルタのデータ。
[画像のクリックで拡大表示]
図3●熟練設計者と比較 コニカミノルタのデータ。
図3●熟練設計者と比較 コニカミノルタのデータ。
[画像のクリックで拡大表示]
図4●複数のFPGAの品種に適用した結果 コニカミノルタのデータ。
図4●複数のFPGAの品種に適用した結果 コニカミノルタのデータ。
[画像のクリックで拡大表示]
図5●検証用のC言語ソースを別途用意 コニカミノルタのデータ。
図5●検証用のC言語ソースを別途用意 コニカミノルタのデータ。
[画像のクリックで拡大表示]

 コニカミノルタビジネステクノロジーズは,米Mentor Graphics Corp.の動作合成ツール「Catapult C Synthesis(以下,Catapult)」を,複合機など向けの画像処理機器用LSIの開発に取り込んでいった経緯に関して講演した。この講演は,東京・品川で9月5日に開催の「EDA Tech Forum 2008」(講演番号TE-4)で行なわれた。

 コニカミノルタビジネステクノロジーズは,持ち株会社であるコニカミノルタホールディングス傘下の主力事業会社の一つで,複写機、デジタル複合機、プリンタなどの開発・製造・販売を行なっている。今回の講演で登壇したコニカミノルタビジネステクノロジーズ(以下,コニカミノルタ)の東浦功典氏(機器開発本部 機器第1開発センター第13開発部第3開発グループ マネージャ)は,こうした機器の画像処理アルゴリズムの開発者である。

間際の仕様変更に対処できなかった

 従来,同社では,開発したアルゴリズムをハードウェア(ASIC)で実装する場合には,アルゴリズム開発者がRTL設計向けの仕様書を作り,それを見ながらハードウェア設計者がRTLの設計(HDLによるコーディング)を実施していた。この開発フローには複数の問題点があった。

 まず,RTL設計に向けた仕様書(開発したC言語アルゴリズムの内容)の作成と,RTLの設計データの作成(HDLによるコーディング)という,二つの手作業の工程があったことである(図1)。「手作業があると,誤りが混入しやすい」(東浦氏)。

 また,RTL設計にある程度の時間が必要なため,製品の出荷時期が迫ってくると,仕様変更に対応できなかった。「『仕様変更がある』とハードウェア設計者に言っても,『製品の出荷時期から逆算するともう受け入れなれない』と言われてがっかりしたことが何度かある」(同氏)。

 さらに,そのRTLを試作向けのFPGAに実装し,期待値との違いが発覚した場合には,デバグにかなりの時間がかかってしまっていた(図2)。例えば,アルゴリズム開発者が作ったC言語データに問題があるのか,ハードウェア設計者が作ったRTLデータに問題があるのかを特定するのが難しいためである。

 こうした従来のASIC設計フローの問題点の排除を狙って導入したのが,Catapultである。市場には複数の動作合成ツールがあるが,ANSIのC++をサポートしていること,gcc等のCコンパイラでシミュレーション可能なこと,GUIで操作が可能なことなどによって,Catapultを選んだ。導入に際しては,「ハードウェア設計者向けのEDAツールなしで,アルゴリズム開発者がC言語を使って回路を設計できるといいね」という思いがあった,と東浦氏は言う。

プリント機構の開発が効率化

 東浦氏によれば,「コニカミノルタではCatapultの評価段階はすでに終わり,実用段階に入った」という。すでに製品に搭載するASICの開発に適用しているようだ。なお,コニカミノルタが使う前には,コニカミノルタ・グループの研究所に当たる「コニカミノルタテクノロジーセンター」がCatapultを,ASIC開発のツールとして適切かどうかを評価している。コニカミノルタテクノロジーセンターでの評価が固まり,現業部門のコニカミノルタ(コニカミノルタビジネステクノロジーズ)に導入した。

 コニカミノルタの東浦氏のグループは,現在,Catapultを使って主に二つの目的でFPGAを設計している。一つはプリント・エンジン(紙にトナーを載せるなどのプリンタの本体機構)の開発者向けに,暫定の画像処理回路をFPGAで提供することである。このFPGAの設計がCatapultで容易になり,プリント・エンジン開発者の作業が効率化した。

 もう一つが画像処理回路の本番(ASIC)の検討用に設計しているFPGAである。こちらもCatapultで設計が容易になり,より多数の候補をFPGAで検討できるようになった。

数日が4時間に短縮

 東浦氏は今回の講演でCatapultを実際に使ったり,評価したりした結果をいくつか説明している。例えば,ある事例では,Catapultを使ってアルゴリズムのC言語コードからRTLデータを得る作業と,そのRTLの検証が合わせて4時間で完了したという。従来の手法(ハードウェア設計者がRTLを人手作成)では数日を要していた作業内容である。

 また,熟練のハードウェア設計者が作ったRTLと,Catapultが生成した結果の比較を見せた。レイテンシや回路規模では熟練設計者の結果が勝っていたが,どちらも目標の動作周波数をクリアしており(図3),「動作合成に入力するC言語ソースの記述の習熟度が上がれば,Catapultを実際の設計に使えると判断できた」(同氏)。

 さらに,CatapultがFPGAのアーキテクチャに最適化した結果を出せるかどうかの実験結果も紹介した。これによれば,一つのソース・コードから,複数のFPGAの品種に最適化できる結果を出せることが分かった(図4)。

 同氏はCatapult使用時の課題も述べた。例えば,アルゴリズム設計者が動作合成向けのC言語ソースを書くようになってしまい,これまで一般的なC言語ソースを見てきた第3者による検証が難しくなってしまった。そこで,第3者検証向けのC言語ソースを別途,作るようにした(図5)。

 東浦氏は,このほかの問題点やMentorへの要望を述べ,最後に「Catapultを使った設計が効果を上げる三つの条件」を説明した。第1に,「すでにC言語でアルゴリズムを開発スタイルが確立している」こと。すなわち,このツールのためにC言語を使うというのでは,厳しい。

 第2に,「現在よりも開発効率を向上させる必要性がある」こと。すなわち,最初上手くいかなくても後戻りできない事情が必要だという。

 第3に,「実現したいアイデア(案件,設計)が豊富にある」こと。ツールを使うことは手段であり目的ではない。導入するからには,使う場面が多くないと意味がない。