技術文献
高品質 CDC 検証のための5つのステップ
今日の複雑なASIC設計ではクロックドメインの数が増えており、CDC(Clock Domain Crossing)を完全に検証することはかつてなく重要かつ困難になっています。機能検証同様、CDC問題の完全な検証を確実にするには、包括的なテストプランが欠かせません。私たちは、北米、日本、ヨーロッパでの数多くの顧客との作業経験を基に、5つのステップで構成される CDC検証のためのプランニングプロセスを開発しました。
CDCのテストプランを立てた後には、構造検証、プロトコル検証、およびメタスタビリティ検証を含む効果的なCDC検証手法が必須となります。これにより、設計段階より CDC 信号の取り扱いを確実に行い、製造後のリスピンを回避できます。本稿では、ブロックレベルおよびトップレベルの RTLモジュールに対してこれらを適用する方法を概説します。また、CDC違反の一般的な例をいくつか説明すると共に、それらが本当の設計上の問題であるか否かを判定するテクニックについても説明します。最後に、いくつかのデザインに対するこの手法の適用結果について、まとめて解説します。
その他の技術文献
UVM Express - UVM導入とUVMによる検証スタイル

UVM Expressについてご紹介します。UVM ExpressはUVMの導入を容易にするパッケージで、この資料ではその検証スタイルについて学んでいただくことができます。この資料はVerification Academy - www.verificationacademy.com に動画で掲載されているUVM ExpressのトレーニングモジュールをPDF化したものです。
まず最初にUVM Expressの概要についてご説明します。この資料を通して使用するDUTについて、またその信号、信号に対してアクセスするBFMのタスク、検証していくためのプランニングについてご紹介します。次に機能カバレッジについてご説明しています。同じDUTに対してオリジナルのテストを用いて、そこに機能カバレッジを追加します。カバレッジのエージェントやモニター、カバレッジコレクタなどについて説明します。トランザクションの構成についても見ていただけます。
リソースを使用した最先端のテストベンチ・コンフィギュレーション
堅牢で再利用可能なテストベントを構築するには、テストベンチ要素が構成可能でなければなりません。要するに、テストベンチの構成とは、データベースに名前/値ペアを追加し、テストベンチ・オブジェクトがそのデータベースにアクセスできるようにすることです。名前/値ペアの格納と検索がすべてではありません。高度に構成可能で再利用可能なテストベンチを構築するにあたり、アーキテクチャ上には、データベースを設計する方法、および項目をデータベースに効率的に追加し使用する方法に関する多くの問題が存在しています。UVMは、コンフィギュレーション・インフラストラクチャとAPIを提供するリソースと呼ばれるファシリティを備えています。ここでは、リソースに共通するコンフィギュレーションの問題を取り上げます。リソースを使用して、精巧なコンフィギュレーションの使用モデルを実装する方法を紹介します。
検証マネジメントでリスピンへの懸念を軽減
検証が管理されていないと、プロジェクトがスケジュール通りに進まず、品質が脅かされ、リスピンの危険性が大幅に高まります。こうした好ましくない状況が発生する頻度が次第に増加しているようです。メンター・グラフィックスが実施した独自の検証調査によれば、シリコン製造が初回で成功する率は徐々に低下し、2002年の40%前後から2007年には30%未満にまで落ち込んでいます。リスピンの主な原因は設計の機能的または論理的欠陥で、検証マネジメントのプロセス全体で問題が増加していると推測されます。こうした問題が起こる背景には、仕様に基づいて検証プロセスを推進し、検証中に生成される大量のデータを管理できるツールの欠如があります。必要なのは、すべての関係者、つまり、システムアーキテクト、ソフトウェア・エンジニア、設計者、検証スペシャリストがプロジェクトをリアルタイムで可視化できる共通のプラットフォームと環境です。単に検証プランに対してだけでなく、時間とともに変更されることの多い仕様と設計に対してもリアルタイムでの可視化が必要です。IC設計プロジェクトには、プロセス、ツール、データといった3つの側面があります。検証マネジメントに包括的にアプローチするには、それらすべてに対応することが求められます。
プロセッサドリブン検証によるマルチプロセッサ同期のリスク軽減
マルチプロセッサ同期手法は、シングル・プロセッサのマルチスレッドで確立されたソフトウェアベースの同期手法を拡張したものです。こうしたマルチプロセッサ同期手法を実現するには、ハードウェア・ロジックとプロセッサ命令ロジックに対する高度な並列性に対する可視性が欠かせません。マルチプロセッサ同期のハードウェア・ロジックとプロセッサ命令ロジックを検証する際のリスクは、プロセッサドリブン検証手法とそのサポート・ツールを利用すると、最も効果的に軽減できます。検証でのスティミュラスは、システムレベル・テストベンチ上でプロセッサから発生させる必要があります。また、マルチプロセッサを使用した設計内のハードウェアやすべてのプロセッサのステートに対する並列可視性を提供できる非侵入型(デバッグ・ツールを使うことにより対象の状態を変えることのないという意味)のデバッグ・ツールが必要です。
OVM/UVM マクロの弊害性: コスト/メリット分析
マクロの使用は弊害をもたらすのでしょうか。答えはイエスでもありノーでもあります。マクロはあらゆるソフトウェアに不可欠な構成要素であり、Open Verification Methodology(OVM)ライブラリやUniversal VerificationMethodology(UVM)ライブラリも例外ではありません。マクロは、少量のコードの繰り返し入力の軽減、異なるベンダのシミュレータ間での実装や制限の差の吸収、重要機能の確実な実行を目的として、控え目に使用すべきです。OVM/UVM マクロのメリットは明白で直接的かもしれませんが、ベンチマークや頻発するサポートを通じて、隠れたコストが明らかになってきました。マクロの中には、複雑で大規模なコードブロックに展開して性能や生産性に悪影響を与えるものや、シンプルで柔軟なAPI の使用を不必要に分かりにくくし、その使用を制限してしまうものも存在します。
機能検証のトランスフォーマー: 新生Questa

今日の複雑なASICやマルチコアに代表されるようなSoC設計において、検証はその困難さを極めています。従来のモノリシック的な手法の改善やプロジェクトメンバーの増員などのアプローチでは、その困難さに追従することができないのが現状です。設計が機能していることを確かめることがやっとで、プロジェクトの終了間際からクロックを乗せ換える部分で発生する非同期転送の検証を行い、さらに後追いでコーナーケースを叩くようなシナリオをパターン化して検証するようなケースも多くなってきています。結果としてシリコンのやり直し(リスピン)が発生し、予期せぬコスト増につながることも少なくありません。SoCの場合にはソフトウェアで回避する方法も可能性として挙げられますが、確かな方法ではありません。FPGAプロトタイピングなどを導入するプロジェクトも増えていますが、環境立上げの労力やその後の実稼働率が問題となり、必ずしもTAT短縮に充分な貢献ができているとは言えません。検証の在り方を根本的に考え直し、トランスフォームを実践することが必要だと言えるでしょう。