「MATLABからの高位合成フローを確立」富士通九州ネットワークのCatapult適用例
2010年10月22日、メンター・グラフィックスは、今年で2回目となる「Catapult Users Forum」を開催した。
「Catapult Users Forum」は、文字通り高位合成ツール「Catapult」のユーザーを主たる対象としたセミナーで、今年は富士通九州ネットワークテクノロジーズ株式会社、パナソニック モバイルコミュニケーションズ株式会社、他1社の計3社が「Catapult」を用いた設計事例を発表した。
ここでは直接話しを伺った、富士通九州ネットワークテクノロジーズ株式会社、第一開発統括部、第一技術部の斎藤 睦巳氏の講演内容について紹介する。
斎藤氏は、方式(アルゴリズム)開発者として高位合成ツール「Catapult」を利用する人物で、専門は信号処理システムの方式開発。社内の高位合成ワーキンググループのメンバーとしてCベース設計を推進しており、今回「方式開発者から見たCatapultの適用効果」というタイトルで発表を行った。
事例の発表前に斎藤氏が語った同社のバックグラウンドによると、富士通九州ネットワークテクノロジーズ株式会社(以下、QNET)では、2004年と相当早い時期から高位合成の適用をスタート。現在ではメンターの「Catapult」以外にも別の高位合成ツールを併用している。実績としてはここ数年で高位合成の適用事例が急増しており、特にこの1年で高位合成の導入効果が認知され、信号処理系に限らず通信制御系の高位合成にも着手するなど、会社として高位合成の適用を積極的に推進するに至っている。
この状況を聞く限り、QNETは国内でも有数のHLS先進企業と言えるが、気になるのは何故複数の高位合成ツールを併用しているか?という点。斎藤氏によると、各社異なる高位合成ツールの特徴を活かす形で、デザインに応じてツールを使い分けているとの事で、例えばメンターの「Catapult」は信号処理系のデザインを中心にLSI開発にも適用している。さすがに一つのデザインで複数ツールを利用したケースはまだ無いようだが今後はそのようなケースも想定されるという話で、比較的高価と言われる高位合成ツールをデザインに応じて使い分けるという恵まれた環境は、その実績(現場の努力)が生み出しているようである。
今回、斎藤氏が発表した事例は、次世代通信向けのシステムLSIに内蔵するモデム開発。パフォーマンス的にハード化が求められる一方で要求仕様が不確定(方式変更の可能性あり)。更に超短期開発が求められるという条件下で、現場のマネージャーは課題の克服に向けて「Catapult」の適用にGOサインを出した。この開発に「Catapult」を選んだのは、前段のプロジェクトで「Catapult」を使っていたという経緯もあるが、方式開発はMATLABを使う事になっていたため、MATLABとの親和性という意味でも「Catapult」のANSI-Cからの合成能力を重視したようだ。
斎藤氏によると実際の設計では、モデム回路の周辺インタフェースおよび制御部は人手でRTL設計を行い、その他の演算処理部は高位合成を適用する方針を取った。演算処理部についてはまずMATLABモデルをCモデルに変換し、そのCモデルを更に高位合成用のCモデルへと変換。最終的に「Catapult」で合成してRTLを入手するというフローで設計を進めた。これらモデルの変換(リファイメント)作業は、「Catapult」による合成のし易さを考慮し比較的小さな処理単位で関数ごとに実施。実際の高位合成は、上手く行きそうなところは複数関数を一括合成し、難しそうなところは関数単位で合成し手で繋ぐという2つの手法を使い分けた。このあたりの判断は、豊富な経験とノウハウが生きているものと思われる。また斎藤氏は、MATLABモデルから高位合成用のCモデルへの変換作業は人手で対応したと語っていたが、一部の工程はツールを利用する効率化ノウハウも有るようで、同件については別途11/26開催のMATLAB EXPOにて詳細を発表すると聞いた。
※画像はQNET提供のデータ
検証に関しては「Catapult」の信頼性の高さから、戦略として機能検証は主にCモデルで実行(RTLではなく)。RTLシミュレーションは要点のみ実行という形を取り、早々にデザインをFPGAボードに実装し実機評価を進めた。カバレッジに関してもCモデルベースで確認し、RTLのカバレッジ100%は不要とあくまでも参考程度に留めた。斎藤氏は高位合成ツールで合成したRTLをどう検証するかについては、手設計のRTLの検証基準とは別の形で考える必要があると語っていた。
最終的に「Catapult」を用いて設計したモデム回路は、人手設計と同等の回路規模で実現。所望の性能も達成し、開発工数は人手設計の6割程度に抑える事に成功した。また、FPGAボードによる評価後に仕様追加が発生したが、MATLABモデルの修正からRTL生成までを僅か1日で完了。この作業は従来手法だと1から2週間は要していたという。
今回の設計事例の成功は、長年高位合成ツールの適用に取り組んできたQNETの経験・ノウハウが大きな要因である事は間違いないと思われるが、斎藤氏は講演の中で具体的な成功要因を2つ紹介した。一つはMATLABの段階からハード化を意識してモデルを作成した事。これは過去の失敗経験から学んだという話だが、高位合成を意識して方式開発の段階で極力平易な記述を心がけたとの事。そしてもう一つはプロジェクトのチーム編成。今回のケースでは、方式開発者、LSI設計者、そしてこの両者の橋渡し役の翻訳者という3名3つのプロセスで作業を進める事で、MATLABモデル⇔Cモデル⇔高位合成モデルというフローでのイタレーションをスムーズに実現。翻訳者を介して方式開発者とLSI設計者が同じコード上で相談出来た点が非常に大きかったという事だった。
※画像はQNET提供のデータ
高位合成はツールも様々、使う人も使い方も様々と、これが正解というものが「ある意味何一つ無い」事が普及を鈍らせて来たとも言えるだろう。しかし、そんな中でも積極的な設計者・設計現場は独自のノウハウやメソドロジを編み出し、うまく設計に高位合成を利用することに成功している。斎藤氏のコメントに限らず、ここ最近耳にした高位合成ユーザーの声からすると、「チーム編成」は高位合成ツールで成功するための一つの答えかもしれない。