バックナンバーはこちら

today&tomorrow

Industry Trend

  • T&T HOME
  • Industry Trend
  • SoCデザインをファブに送る前にソフトウェア・ブリングアップを実行することの重要性

2017 Jan Winter vol.105

SoCデザインをファブに送る前にソフトウェア・ブリングアップを実行することの重要性近い将来、早期ソフトウェア・ブリングアップが検証フローの必須工程となる可能性も

シノプシス コーポレート・コミュニケーションズ・ストラテジ担当ディレクター Mike Santarini

Unified Compile機能を使用すると、検証エンジニアは、たとえばシミュレータのVCS®でインプリメントするのと同じRTLデザイン・ブロックをエミュレーション・システムZeBuやFPGAベース・プロトタイピング・システムHAPSにそのまま移行でき、しかもこれら3つの検証モデル間でデザインの機能の一貫性が維持されるとSanieは述べています(もちろん、同じ機能はハードウェア・エミュレーションやプロトタイピングの方が高速に実行できます)。「Unified Compile機能により、RTLやUPFなどシミュレーション環境で使用するファイルを、そのままエミュレーションでもFPGAプロトタイピングでも使用できるようになりました。エミュレーションやFPGAプロトタイピングでブリングアップを行うためにデザイン自体に変更を加える必要はありません」(Sanie)。この点についてSalzが指摘しているのは、シミュレーション・ソリューションの動作は通常逐次的で、Verilogセマンティクスに基づいてイベント・ドリブン方式で動作しますが、ハードウェアは並列化が進んでいるという点です。Unified Compileでは各エンジンの一致度が高いため、シミュレーション、エミュレーション、FPGAプロトタイピングで一貫した結果が得られます(図2)。

図2:Verification ContinuumプラットフォームのUnified Compile機能により、シミュレーション、エミュレーション、FPGAプロトタイピング間でのデザイン移行が容易に

図2:Verification ContinuumプラットフォームのUnified Compile機能により、シミュレーション、エミュレーション、FPGAプロトタイピング間でのデザイン移行が容易に

また、Unified Debugは業界のデファクト・スタンダードであるVerdi®のデバッグ機能をベースにしているため、検証チームは、どの検証プラットフォームでSoCデバッグを実行しても同じ品質と完全性が得られるとSanieは述べています。

シノプシスのエミュレーション製品マーケティング担当シニア・ディレクタTom Borgstromによると、「検証の進め方はユーザーによって千差万別であり、多くの場合、同じ企業内でも検証チームが違えば検証方法も違う」と言います。「Verification Continuumプラットフォームでは、特定の検証方法が強制されることはありません。検証チームが採用しているどのようなメソドロジでも実行できるように豊富なオプションが用意されています。それだけでなく、最高品質のツールとこれらツール間のフローの高い信頼性により、どのようなメソドロジでもより効果的に実行できます」(Borgstrom)。

たとえば企業によっては、複数の非常に大規模なデザインと非常に大規模な検証チームが存在することがあります。プロジェクトが開始されると、まず設計チームが小規模なブロック単位で設計を行い、ブロックが完成するとただちに検証チームがVCSとVerdiを使用してブロックレベル・シミュレーションを実行します。この後、さらに別のチームがこれらのブロック/ビルドをより大規模なブロックに接続し、この大規模なブロックに対してシミュレーション、エミュレーション、Verdiデバッグを実行します。こうして、最終的にチップ・デザインが完成するまでビルドと検証のプロセスを繰り返します。次に、チップ・デザイン全体をエミュレーション・システム上で実行し、デザインのハードウェア・デバッグを実行します。検証が完了してハードウェアが安定したら、チップ・デザインをサインオフする前にソフトウェア・チームが必要なソフトウェアをブリングアップします。ソフトウェア・ブリングアップの結果が満足のゆくものであることを確認できたら、設計チームはチップをファブに送ります。ソフトウェア・チームは引き続きエミュレーション・システムまたはFPGAプロトタイプを使用し、チップ・レベルおよび完全なシステム・レベルでソフトウェア・レイヤの開発とブリングアップを続けます。「実チップ製造後の不具合診断にエミュレーション・システムを使用している企業もあります」とBorgstromは述べています。

チームによっては、ソフトウェア・ブリングアップをさらに前倒しで実行したいというケースもあります。その場合、一般的に検証チームは過去に検証実績のある再利用ブロックに関しては機能モデルまたはビヘイビア・モデルをシミュレーションで実行し、新規チップ・デザイン用に作成した新しいRTLブロックに関してはエミュレーションで実行するという方法で早期ソフトウェア・ブリングアップを行います。こうすれば、通常はデザインの全体的なクロック・サイクルを高速化できるため、ソフトウェア・チームはチップ・デザインでターゲットOSをブートできるかどうか、そしてデザインで実行する必要のあるアプリケーションをブリングアップできるかどうかをより短期間で確認できるようになります。

実チップを製造中、デザインのCモデル/バーチャル・プロトタイプを作成し、社内のソフトウェア開発チームおよびエンド・カスタマーがアプリケーション・ソフトウェア開発を早期に開始できるようにすることもできます。

カテゴリートップ