技術文献
UVM Express - UVM導入とUVMによる検証スタイル

UVM Expressについてご紹介します。UVM ExpressはUVMの導入を容易にするパッケージで、この資料ではその検証スタイルについて学んでいただくことができます。この資料はVerification Academy - www.verificationacademy.com に動画で掲載されているUVM ExpressのトレーニングモジュールをPDF化したものです。
まず最初にUVM Expressの概要についてご説明します。この資料を通して使用するDUTについて、またその信号、信号に対してアクセスするBFMのタスク、検証していくためのプランニングについてご紹介します。次に機能カバレッジについてご説明しています。同じDUTに対してオリジナルのテストを用いて、そこに機能カバレッジを追加します。カバレッジのエージェントやモニター、カバレッジコレクタなどについて説明します。トランザクションの構成についても見ていただけます。
リソースを使用した最先端のテストベンチ・コンフィギュレーション
堅牢で再利用可能なテストベントを構築するには、テストベンチ要素が構成可能でなければなりません。要するに、テストベンチの構成とは、データベースに名前/値ペアを追加し、テストベンチ・オブジェクトがそのデータベースにアクセスできるようにすることです。名前/値ペアの格納と検索がすべてではありません。高度に構成可能で再利用可能なテストベンチを構築するにあたり、アーキテクチャ上には、データベースを設計する方法、および項目をデータベースに効率的に追加し使用する方法に関する多くの問題が存在しています。UVMは、コンフィギュレーション・インフラストラクチャとAPIを提供するリソースと呼ばれるファシリティを備えています。ここでは、リソースに共通するコンフィギュレーションの問題を取り上げます。リソースを使用して、精巧なコンフィギュレーションの使用モデルを実装する方法を紹介します。
シナリオ・ベース・スティミュラス生成の概要
スティミュラス生成のニーズはますます多様化していますが、検証のスティミュラスを複雑にする要因は様々で、高機能のIPをデザインに使用している、ハードウェア機能とソフトウェアの高度なレベルでの通信が必要、バス・プロトコルが非常に複雑、検証環境の大部分を再利用したい、などが例として挙げられます。その結果、スティミュラス生成には次のような新しいニーズが生まれています。
- 実行形態(シリアル/パラレル)を制御できるスティミュラス・モジュールの作成
- スティミュラス生成と実際のテストベンチの分離
- 単一プロトコル生成におけるスティミュラスのレイヤ化。レイヤ化スティミュラスを単一プロトコルにカプセル化。一例はEOS(Ethernet over SONET)
- スティミュラス生成と検証IPコンポーネントを一緒にパッケージ化
ここではシナリオの概要と、OVMでシナリオを利用する場合に必要なコードをすべて説明します。
マルチコア・デザインにおける同期障害のデバッグ

マルチコア・プロセッサ・システムでは、互いに独立しているコア間の同期に起因する問題が多くなります。そこで、個々の問題を切り分ける能力が解決のキーポイントとなってきます。共有メモリが壊れたり、スレッドの順番が崩れメッセージが届かないといった問題が起きたり、同時に走っているスレッドがお互いに見合っているうちにロックしないままデッドロック状態に陥ってしまったり---というようなことがしばしば発生します。
メンター・グラフィックスは統合マルチコア・コード・デバッガQuesta Codelinkを提供しています。これは、システム内の各コアに使うソース、変数、メモリなどを表示でき、システム内で何が発生しているかを的確に知ることができます。Questaを使って、こういった状態を表示することでシミュレーションの再生に、それまで十数時間かかっていた処理を数秒で済ませることが可能になりました。
さらに、インタラクティブにデバッグできるうえ、RTLプロセッサ・モデル上で実行するコードもデバッグできます。現時点ではARMコアやMIPSコアを中心にサポートしています。
メカトロニクス・アプリケーションにおけるFPGAの設計と検証

オートモーティブにおけるFPGAの適用が注目を浴びています。FPGAを自動車に応用するに当たり、まず設計手法の確立が最大の問題となります。
この分野ではフィードバック制御が重要視され、センサー、アナログ/デジタル回路、アクチュエーターといった、一連の制御ループをFPGAを使って設計することになります。特に、デジタルではない部分の設計が問題です。時間連続性、微分方程式、台数方程式、伝達関数、物理学、アナログ回路モデルSPICE、統計分布などをどう表現して設計に取り込めばよいのでしょうか。
ここでメンター・グラフィックスが提案するのは、VHDLを拡張した「VHDL-AMS言語」です。この言語を用いれば、どのようなモデルでも非線形微分方程式や台数方程式で表現することが可能となります。VHDL- AMSは、FPGA設計者にはまだ馴染みのない言語ですが、デジタル以外のコンテキストにおける条件定義や、その検証には強力なツールとなるでしょう。
メタスタビリティ効果のもれがなく正確なシミュレーション・モデル作成方法
低消費電力化に伴うクロック・ゲーティングや、設計資産の再利用、様々な周波数で規定されている標準規格への対応など、最近のASIC/SOC設計では複数のクロックによる非同期設計が当たり前になっています。異なるクロックドメイン間でのデータ転送を確実に行うために、受信側の同期化回路挿入や送信側のプロトコル厳守、グレイコード・エンコーディングなどの対策が取られていますが、それでもメタスタビリティは発生してしまいます。この論文は「メタスタビリティ効果のもれがなく正確なシミュレーション・モデル作成方法」と題して、メンター・グラフィックスのRoger Sabbagh氏および富士通研究所の岩下様の共著によるもので、2008年のDVCon(Design and Verification Conference)で取り上げられました。皆様の設計・検証にも非常に参考になると思われる論文であるため、日本語化いたしました。是非ともご一読いただきたいと思います。
戦略的なシステム検証を実現するスケーラブルな検証アプローチ
SoC設計の課題を克服しその恩恵を得るために、エンジニア・チームは設計サイクルのあらゆる面に対応し、LSI製造能力と検証能力の間に生じる「検証ギャップ」を埋める新しい検証戦略を必要としています。この論文では、Scalable Verificationや設計の抽象度、アサーション・ベース技術、そして改善されたデバッグ手法がいかに設計チームが直面している根本的な課題に対処しているかを検討しています。
既存フローへのフォーマル機能検証の統合
Harry D. Foster(以下Foster)によるホワイトペーパー「Integrating Functional Formal Verification Into Your Flow」の日本語版「既存フローへのフォーマル機能検証の統合」が完成いたしましたのでご案内いたします。
組込みシステムにおける設計/検証の最適化
どんな複雑なSoC設計も、設計の統合に至る前に数回の設計のやり直しが必要です。しかし、現在のデザインの入力、検証、解析および修正サイクルは時間がかかりすぎます。製品を適切な時期に市場に出すためにしばしば、チップが設計仕様を満たすように完全に検証する前に設計を切りあげることになります。優れたハード/ソフト設計と検証の環境は、機能上とファームウェアの両方の問題を見つけ、シリコンに落とす前に設計を統合することを支援します。 この論文では、今日のSoC設計のこのような課題を議論し、チップやシステムの仕様を満たすために必要なデザインの入力、検証、解析および修正のタスクに対応するハード/ソフトの設計と検証の環境を提供します。