NEC主催の高位合成セミナー参加レポート【2014/03/10】
1ヶ月以上までになりますが、2014年2月5日(水)に行われた、NEC主催の高位合成セミナー『CyberWorkBench Forum 2014』に参加してきましたので、そのときの様子などをレポートいたします。
CyberWorkBench Forum 2014の各セッションのアジェンダは次の通りです。

1.CyberWorkBenchの適用領域拡大と今後の機能拡張の紹介(NEC)
2.CWB画像ライブラリのご紹介とその応用開発事例(荻原電機株式会社)
3.CyberWorkBenchを活用したはやぶさ2画像認識FPGA開発事例(NECエンジニアリング株式会社)
4.CyberWorkBenchによる大規模ASICへのフルチップ動作合成適用事例について(株式会社アドバンテスト)

各セッションごとに思ったことなどをまとめておきます。

<CyberWorkBenchの適用領域拡大と今後の機能拡張の紹介>
主題はCyberWorkBenchをメインとしているようでしたが、おおむね高位合成についての説明が多かったと思います。「ソフトウェアプログラムからハードウェア記述を合成する高位合成技術」をもとにプレゼンテーション資料が作成されているように思います。
高位合成を活用した事例としては、NICカードにFPGAを搭載し、ネットワークストリームから特徴量計算を行うことによりる低遅延処理の事例等を取り上げていました。
とはいえ実際にデモでそれらを見ることはできず話を聞くにとどまりました。どうも開発段階とのことでした。
また、高位合成を活用するメリットとのひとつとして紹介していたのは、モータ制御の例です。
PWM制御であれば、C言語で記述した場合は2行で済むので制御処理を素直に書くことができることを紹介していました。(HDL記述であれば2行ではすまないということでした。)
そのほか、CyberWorkBenchを活用した場合、Cソース上でタイミングデバックが行えることや、HW/SWを同時にデバック(協調検証)が行えることを強調していました。
全体的な感想としては、具体的な活用事例は紹介されておりませんでしたのでそこがもう少しあればよかったかと思いました。

<CWB画像ライブラリのご紹介とその応用開発事例>
このセッションでは、CyberWorkBenchで開発した画像処理IPの紹介がメインでした。
この画像処理IPとCyberWorkBenchを活用して、カメラ画像を4×4のスナップショットとして外部モニターに描画させるという処理を、インターンシップ生に作成してもらったところ、1週間で行えたとのことが報告されていました。
CyberWorkBenchを使うところから1週間ということなので、FPGA開発の初心者でも早く開発が行える事例といえるかもしれません。

<CyberWorkBenchを活用したはやぶさ2画像認識FPGA開発事例>
CyberWorkBenchを活用した事例として、はやぶさ2での画像処理部のFPGA開発を取り上げて詳細に説明をされていました。この事例の概要は次の通りでした。
初代はやぶさでは画像処理をASICで行っていたとのことですが、はやぶさ2では様々な要因からFPGAに開発を実施することになりました。ただし、初号機の設計を継承して確実な開発を行うとの方針も合わせて示されたため、移植を検討することになったようです。
幸い、C言語で記述した画像処理アルゴリズムがあったので、CyberWorkBenchを活用してFPGAを作成する方針で進めることができたとのことでした。
まず、対象のFPGAデバイスに実装可能かどうかの検証を行ったそうです。CyberWorkBenchで画像処理を含む部分をざっと作成して合成を行うと、回路規模(LUTsとレジスタ)を見積もってもらえる機能があり、その指標から判断を行ったとのことです。
そうしてデバイスの見積もりを行いつつ、画像処理アルゴリズムと外部のメモリーをつなぐ部分などを一部新規開発して実装を行ったとのことです。当然ですが画像処理アルゴリズムには一切手を入れていないので、新規開発部分のみをデバックすればよく効率的な開発を行えたとのことを言っていました。
また、CとHDL記述の比較としてC言語のほうがHDLの記述と比べてコード記述量を1/4にできたとのことでした。また、C言語のほうが可読性も上がるとの指摘をされていました。
このようなことから、設計・検証工数の短縮を実現し、コスト削減も行えたとのことでした。CyberWorkBenchの効果が端的にわかるとても良い事例紹介だと思いました。

<CyberWorkBenchによる大規模ASICへのフルチップ動作合成適用事例について>
最後のセッションでは、FPGAの開発ではなく、ASICの開発にCyberWorkBenchを活用している事例の紹介でした。CyberWorkBenchで設計したASICとしては4チップの回路規模が紹介されていました。
開発したチップの回路規模としては、1stチップが2000万ゲートでしたが、4thチップでは18000万ゲートの物まで開発を積み重ねてきているとのことでした。
そもそもCyberWorkBenchを導入することで、コード記述量を1/5に削減したい意向があったとのことですが、単純にそこまで削減するには至らず、CyberWorkBenchおよびCyberWorkBenchに合わせた設計自動化ツールを使ってコード記述量を減らしているとのことでした。また、高位合成設計仕様書作成ガイドラインやBDL記述ガイドラインなどのガイドラインを充実させ、主に初心者に向けたドキュメントの充実を図っているとのことでした。
その結果として回路規模は大きくなっているものの、手動のコード記述量や工数を削減できているとのことでした。ただし、当初想定の1/5までは届いていないので今後も試作を行っていくとのことでした。
このセッションでは、良い点と悪い点を明確に発表されており、聞いている人からするとなるほどと考えさせられる内容でした。
以上、高位合成のセミナーに参加してきました。C言語でFPGAが作成できるのであればソフトウェアエンジニアにとっても、ハードウェア設計者の意図を理解したコミュニケーションが取れるようになるのでそれだけでも効果は高いのではと思いました。そもそも、ソフトウェアとハードウェアというエンジニアの垣根を大幅に低くでき、相互に意思疎通が図れるようになる技術なのではないかと感じました。

» 記事一覧へ戻る