デジタルIC検証研究ノート
1.検証の概要
1.1 验证介绍
1.2 System verilog介绍
1.3 UVM介绍
1.1検証の概要
(1)検証の概念は、
主に、設計機能が正しく、設計機能の説明のフローに準拠していることを証明するために使用されます
(2)。検証プラットフォーム
- 刺激ジェネレーター:DUTのテストシーケンスを作成し、最初に刺激しやすい
- 検出器:DUTの入力と出力を観察します
- コンパレータ:DUT出力を期待されるデータと比較します
- クロック/リセット:クロックとリセット信号を提供します
- 検査結果報告
(3)作業内容を確認する
- 機能説明書に従って設計ファイルが正しく実装されているかどうか
- ハードウェア設計者には、欠落しているコーナーケースがありますか?
- デザインがエラー応答(エラー応答)を処理できるかどうかを確認します
(4)検証タスク:
モジュールレベル、サブシステムレベル、およびチップレベル
(5)検証の目標:
時間、品質、消費について
- 時間通りに:プロジェクト計画に従って、各ノードの検証を検討してください(マイルストーン)
- 品質保証:テープアウトする前に、可能な限りすべての欠陥を見つけてください
- パフォーマンス、低消費:作業を完了するための時間、人員の削減
(6)検証サイクル:
- 検証計画:設計されたテストファンクションポイント、マッピングカバレッジ、検証環境構造、回帰テストリスト
- 検証環境:励起発生器、検出器、コンパレータ
- 検証コード検査:テストインセンティブの欠落、不適切なランダム制約、カバレッジを改善するためのコード構造の欠陥
- 回帰テスト:すべてのテストシーケンスが繰り返し実行されます。ランダムテストを使用して、テストの対象となるインセンティブシナリオを確認し、カバレッジを向上させることができます。
- テープアウト前の検証の完全性チェック:回帰テストレポート、カバレッジデータ、検証プロセスのチェックリスト
- シリコン後のテスト:テスターでテープをテストし、欠陥の原因を確認し、方法を修正します
- エスケープ分析:エラーと原因を要約し、経験を蓄積します
1.2 SystemVerilogの概要
(1)背景
2002年、Verilogの拡張ハードウェア記述言語および検証言語であるAccelera標準の編成が開発を主導しました。
(2)コア機能
- インターフェース
- オブジェクト指向機能(クラスとパッケージ)
- ランダム制約(制約付きランダム)
- スレッド制御と通信(プロセス制御と通信)
- 直接プログラミングインターフェース
- アサーション
1.3UVMの概要
(1)概念
SVベースの検証方法ライブラリは、検証環境の一般的な手段を構築するために抽象化され、検証環境を構築および再利用しやすくするために標準インターフェイスを使用します。幅広い実用性。
(2)目的
プロジェクト間の水平方向の再利用と垂直方向の再利用の作業負荷を軽減するために、再利用可能なクラスをいくつか提供します
(3)。UVM学習構造:
- UVMレイアウト(クラスライブラリ)、コアメカニズム
- コアUVMコンポーネントと工法
- UVMコンポーネント間の通信方法
- UVMテストシーンの構成
- UVMのモデルアプリケーションを登録する
(4)。検証プラットフォーム:
- SV
- SV / C ++ / Verilog
- C ++ / Verilog
(5)。検証ツール:
- このmodelsim(メンター)
- NC-sim(ケイデンス)
- VCS(synopsys)
(6)検証作業:
12 。インセンティブを注入する
13.応答を設定する
3.比較する(実際のデータと期待されるデータ(c ++))
(7)
/ shell / python / makefileごとの検証スクリプト(環境変数の設定に使用)
(8)学習方法
UVMライブラリオンライン検索マニュアル、DVT SV / UVM統合開発環境(win / linux)
【注意】:個人学習メモ、間違いがありましたら、お気軽に教えてください、丁寧です~~~