【48DAC】FPGA向け機能を大幅強化したNECの高位合成「CyberWorkBench」
第48回Design Automation Conferenceに出展していたNECのブース・レポート。
※修正あり
NECブースでは、もはや日本ではお馴染みのC言語からの高位合成ツール「CyberWorkBench」の最新版を展示していた。ESL手法の普及と共に北米でもHLSへの注目が高まっているためか、同社のブースは例年よりも盛況だった様子。取材時の他に何度か同社のブース前を通ったが、説明員が常に忙しそうにしていた。
長年「Cyber」の開発を指揮している、NEC組込みシステムソリューション事業部、シニア・エキスパートの若林氏によると、同社は今年から北米市場の販社としてEDATechForce社と契約。これまでは自社による製品展開を模索していたが、その営業方針を切り替えた。その甲斐あってか既にビッグネームの引き合いもあり、製品評価が進められているなど、現地販社による営業は上々の滑り出しといった感じのようだ。
今回の48DACでは、「CyberWorkBench」について幾つか大きなニュースがあった。
まず、新たに「CyberWorkBench」のFPGA版がリリースされる事になった。間もなく製品出荷が開始されるFPGA版は、ASICのプロトタイピング用途ではなく、最終製品としてのFPGA設計を目的としたもので、価格は通常版の3分の1程度、ターゲットとするFPGAに特化した最適なRTLを出力する機能を持つ。
実はこの機能が非常に面白い。「CyberWorkBench」はターゲットとするFPGA固有の演算器やDSPマクロを考慮した合成ができるのは当然のこと、FPGA個別の設計ノウハウまでツールに取り込んでいる。これはFPGAメーカーとのパートナーシップによって実現されているもので、現在のところAlteraとのパートナー契約の下、FPGAベンダの熟知している高速化、リソース削減ノウハウなどを「CyberWorkBench」に実装している。若林氏によると同機能は合成結果に如実に現れるという事で、従来のターゲット非依存のRTLよりも局所的にみると回路面積が半分程度に収まるケースもあるという。FPGAベンダのノウハウを誰もが手に入れられるようにというコンセプトは、今までの高位合成ツールには無い発想だ。
また、FPGA版のリリースと合わせて、合成における自動化機能も大幅にテコ入れした。「CyberWorkBench」には合成に関するオプションが200以上もあり、これまで「CyberWorkBench」はプロじゃないと使いこなせないという事実に反するイメージが広がっていた。(※オプションを利用しなくても十分に合成可能)しかし、高位合成の初心者にとって、オプションを駆使して回路を最適化するのはハードルが高いという事で、ツール側で様々なオプションを用いて自動的に結果を出すという自動合成機能が実装された。
※CyberWorkBench自動合成機能によるデザイン探索画面。 NEC提供のデータ
実際に同機能のデモを見たところ、ツールが同一コードから様々な合成結果を出力しグラフ上にプロット。(その処理の速さに驚かされる。)ユーザーは速度、レイテンシ、回路面積など様々な指標で見た合成結果のグラフから、要求仕様に見合った所望の回路を選ぶ事ができるという仕組みで、この自動合成機能は、ユーザー側で様々な制約条件を与える事も可能なほか、デザインのある部分だけを特定して自動合成させることも可能。高位合成に関するノウハウ、テクニックが無くても最適な合成を追及できる。
※FFTの自動合成結果。時間を追うごとに合成結果が増えていく様子が分かる。NEC提供のデータ
更に面白い機能がもう一つ。それは新しく用意された「オンチップ・デバッグ機能」。これは簡単に表現すると「CyberWorkBench」で合成したFPGA内部の動きをVerilogおよびC言語で見るための機能で、「CyberWorkBench」がプロービング用の回路をFPGAに実装。ユーザーは「CyberWorkBench」のデバッグ環境の中で指定したFPGA内部のノードをVerilogまたはC言語で確認できる。これはJAXAとの共同研究の中で開発された機能と聞いたが、CとVerilogのクロスプロービングを実現している「CyberWorkBench」ならではの機能で、高位合成ツールとしてFPGAのデバッグまで対応するのは「CyberWorkBench」だけ。FPGAのデバッグソリューションとして、CtoFPGAを目指すユーザーにとって利用価値は高いと思われる。
※画像はNEC提供のデータ
尚、市販の競合ツールも進めているソフトウェア検証環境(バーチャル・プラットフォーム)とのリンク、組込みソフトのデバッグ環境について若林氏に聞いたところ、「CyberWorkBench」もトランザクション・ベースでISSと協調検証する手法を確立しているが、動作合成可能なC記述(HW向け)から自動生成されるサイクル精度モデルと組込みソフトを協調検証できるのが「CyberWorkBench」の良いところ」と若林氏。「CyberWorkBench」には、RTLよりも高速な検証が可能なサイクル精度HWモデル(合成可能)を出力する機能があるため、同モデルを用いたサイクル精度の協調検証が可能。これによりタイミングを見ながらCコードでソースコード・デバッグが出来るため、例えば、割り込みやバスのデータ衝突(アービター)などをチェックする事ができる。若林氏は、トランザクション・レベルでの高速な協調検証手法が求められる一方で、デバイスドライバーなどの組込みソフトのテストには、サイクル精度の検証が重要であると指摘。「CyberWorkBench」はサイクル精度の検証にも対応しつつ、そこから合成も可能と強調していた。
※画像はNEC提供のデータ