News and Views 2010 Winter

[SUCCESS STORY | ESL設計]

株式会社日立製作所 通信ネットワーク事業部、Catapult C Synthesisを複雑なフォワード・エラー・コレクション(FEC)設計に適用

株式会社日立製作所 通信ネットワーク事業部(以下、通信ネットワーク事業部)は、データ転送における信頼性の向上や通信距離の増大といった次世代通信システムに求められる要求に応えるため、FEC(Forward Error Correction)回路の開発を計画しました。

3つの選択肢

FEC回路とは、前方誤り訂正回路であり、伝送中のノイズの混入などによる不完全な伝送による誤りを検出して修正する回路です。この技術により、品質の高い長距離伝送を可能にしますが、FEC回路は複雑なアルゴリズム計算を必要とするため、困難な設計であることが予想されました。通信ネットワーク事業部には、それを短期間で設計しなければならない、という大きなプレッシャーがありました。

このような状況下でプロジェクトを進めるにあたり、3つの設計方針を検討しました。

第一の選択肢は、ハンド・コーディングによるRTL設計です。この方法は、厳しいタイミング制約を守って設計することはできますが、限られた設計期間内で十分なシミュレーションの時間を確保することができないであろうと予測されました。

第二の選択肢は、既存IPの購入です。この方法は設計期間の短縮につながるものの、IPとのインタフェース部分の回路を開発する必要があり、そのための工数がかかります。

図1:チップ内のFECとエンハンスドFEC図1:チップ内のFECとエンハンスドFEC

第三の選択肢は、高位合成ツールの導入です。これまで適用したことのない新しい設計手法であるため、この手法はリスクを伴いますが、従来のハンド・コーディングによるRTL設計と比較して大幅な設計工数の短縮化が期待でき、また抽象度の高いレベルでの方式検討や高速なシミュレーションができるメリットがありました。

検討の結果、第二の選択肢は、IP提供会社のサポート面に関して不安が残ったために見送りとなり、最終的に、アルゴリズム開発エンジニアの多くがANSI C++を使ったアルゴリズムの記述に慣れていたため、ANSI C++ベースの高位合成ツールを調査した上で第三の選択肢が採用され、そのツールとしてCatapult C Synthesisを選択しました。

しかし、プロジェクトを成功させるためには、1つの手法だけで進めるにはリスクを伴うため、従来のハンド・コーディングによるRTL設計と高位合成ツールを用いた新しい設計手法の2つを並行して進めることになりました。

高位合成ツールは、使い勝手や合成できるCコードの記述方法、CとRTLの等価性や性能が出ない場合の解析の仕方など、多くの不安があることも事実です。このような中で、果たしてCatapult C Synthesisを用いて仕様通りのクロック周波数や面積を満たす結果を得ることができるのでしょうか?

「当初は、新しい設計手法に伴うリスクを軽減するため、従来のハンド・コーディングによるRTL設計方法とCatapult C Synthesisベースのフローの両方でプロジェクトを進めました。Catapult C Synthesisフローの結果が証明されて以来、特に1つのCコードから様々なアーキテクチャを生成できるという使いやすさの点から、複雑でアルゴリズミックな設計に対して高位合成の適用を開始しました。」

CATAPULT C SYNTHESISの適用: より短時間で最適な設計を追求

Catapult C Synthesisを用いた設計が進むにつれ、それらの懸念は解消されていきました。合成結果として、ハンド・コーディングによるRTL設計と比較して同等の周波数とレイテンシを達成することができ、また、工数全体も1/5の短期間で設計できました。詳細な工数比較をしてみると、ハンド・コーディングによるRTL設計の工数全体を仮に100%とした場合、42%がRTLコーディングに、58%が検証に費やされていました。それに対しCatapult C Synthesisを用いたフローでは、コーディングの工数はわずか10%で、4.2倍もの改善につながりました。さらに、検証にかかった工数は、わずか8%に抑えられ、コーディング時の改善よりもさらに著しい7.25倍の改善が達成されました。

さらに、ゲート規模に関してもハンド・コーディングによるRTL設計と比較して1/3に低減できたことは大きな収穫でした。
Catapult C Synthesisで優良な合成結果を出すためには、Cコードの記述の仕方が重要です。通信ネットワーク事業部は、最も効率的な結果を得るために2段階のアプローチを採用しました。まず、高速な検証を目的とした一次Cコードを作成しましたが、結果的に一次Cコードは高位合成には適していませんでした。従って、一次Cコードで迅速なシミュレーションを行った後、合成可能な二次Cコードに書換える必要がありましたが、書換え作業は、わずか数日間で完了できました。

「設計中、仕様上のバグを発見しました。このバグを発見するのにCシミュレーションではわずか1時間でしたが、RTLシミュレーションではトリガーするために20,000ものテストパターンを必要としたので、960時間(40日間)近く要したでしょう。」

さらに、Catapult C Synthesisフローでは、仕様上のバグを早期に検出することができました。Cシミュレーションでは、わずか1時間でバグを発見することができましたが、RTLシミュレーションでは、トリガーするために20,000ものテストパターンを必要とするので960時間(40日間)近くかかることが予測されました。RTLシミュレーションでこのバグを発見するには、短い設計期間の中においては非常に困難であったと想定されます。

図2:RTL(ハンド・コーディング)アプローチと高位合成アプローチの設計期間比較(%割合表示)図2:RTL(ハンド・コーディング)アプローチと高位合成アプローチの設計期間比較(%割合表示)

このように、抽象度の高いCでは、高速なシミュレーションにより、バグを早期発見できるメリットがあります。

同様に重要なことは、Catapult C Synthesisにより、同じCコードから面積とパフォーマンスのトレードオフや様々なアーキテクチャを検討することが可能なことです。例えば、シリアルな記述のCコードからパラレルな記述のRTLの生成、または、パラレルな記述のCコードからシリアルな記述のRTLの生成は、オプション機能を使うことで簡単に生成することができました。また、ROM/RAM制御の論理も非常に簡単に作ることができました。これにより、通信ネットワーク事業部は最終的に要求仕様を満たす最適な回路へと導くことができました。

まとめ: 4.5Mゲート、CからRTL

FEC回路の設計に無事Catapult C Synthesisを適用することができた後、通信ネットワーク事業部は、新しい設計手法である高位合成ツールの導入という選択に確信を持つことができました。最初の適用以降、8品種のテープアウト(ASICとFPGA両方)でCatapult C Synthesisを適用しました。そのうち最新の設計は7.9Mゲート規模のASICで、その57%がCatapult C SynthesisによってCから合成されました。

日立製作所 通信ネットワーク事業部について

日立製作所 通信ネットワーク事業部は、通信の最先端分野に向け「次世代モバイル」「光ブロードバンド」「IPネットワーク」の事業領域に特化し、携帯電話基地局の開発、超高速・超大容量の光ネットワークで全ての家庭を結ぶFTTHの開発や、IPテレフォニーなど最先端の通信インフラを提供しております。