JP5063850B2 - テストカバレージを最大にするための方法および装置 - Google Patents
テストカバレージを最大にするための方法および装置 Download PDFInfo
- Publication number
- JP5063850B2 JP5063850B2 JP2002501058A JP2002501058A JP5063850B2 JP 5063850 B2 JP5063850 B2 JP 5063850B2 JP 2002501058 A JP2002501058 A JP 2002501058A JP 2002501058 A JP2002501058 A JP 2002501058A JP 5063850 B2 JP5063850 B2 JP 5063850B2
- Authority
- JP
- Japan
- Prior art keywords
- coverage
- test
- design
- value
- dut
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31707—Test strategies
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/31835—Analysis of test coverage or failure detectability
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
Description
関連出願の相互参照
本願は、本願と同一人に譲渡された1999年6月8日出願の「System and Method for Measuring Temporal Coverage Detection」と称する同時係属米国特許出願第09/327966号の一部継続出願であり、それを参照によって全部ここに組み込む。本願はまた、2000年6月2日出願の「Method and Apparatus for Maximizing Test Coverage」と称する米国特許出願第60/208822号の一部継続出願でもあり、それを参照によって全部ここに組み込む。本願はまた、2001年3月6日出願の「Method and Apparatus for Maximizing Test Coverage」と称する米国特許出願第09/799065号の優先権をも主張し、それを参照によって全部ここに組み込む。
【0002】
発明の分野
本発明は、コンピュータソフトウェアに関し、さらに詳しくは、回路設計の機能性を解析し、かつ回路設計の機能の正確性を解析するコンピュータソフトウェアに関する。
【0003】
発明の背景
電子設計自動化(EDA)の分野はよく確立されている。粒度または特定性の様々なレベルで回路を記述するために、多数のソフトウェアツールが使用されている。そうしたツールは、回路を非常に詳細に指定するゲートレベルの記述から、VerilogまたはVHDLなどのハードウェア記述言語で書かれた高レベルの記述までを含む。デバイスのシミュレーションモデルを通して設計を検証するプロセスは、VerilogおよびVHDLの可用性によって促進される。これらの言語は、ハードウェアをより高いレベルの抽象度でも、かつゲートまたはトランジスタとしても両方で記述するように設計されており、したがって設計者が素子および回路の素子間の接続を記述することを可能にする。最近の回路は何百万個ものトランジスタを有するので、単に設計の複雑さを管理するため、特に設計の検証のために、ある種の設計ツールを使用することが不可欠である。
【0004】
設計の検証は、集積回路、基板、またはシステムレベルのアーキテクチャが、そのデバイスのアーキテクチャの仕様によって定義された要求事項を厳密に実現するかどうかを決定するプロセスである。テスト中のデバイス(DUT)の設計検証は実際のデバイスに、またはデバイスのシミュレーションモデルに実行することができる。単に説明のために、いかようにも限定する意図なく、以下の議論は、デバイスのシミュレーションモデルに対して実行されるテストを中心にしている。
【0005】
様々な型のデバイスの設計およびデバイスアーキテクチャが複雑になるにつれて、設計エラーの見込みが高まる。しかし、デバイスの設計のシミュレーションモデルも作成しかつテストすることがより複雑になっているので、設計の検証もいっそう難しく、かつ時間がかかるようになってきている。
【0006】
設計検証の問題は、多種多様のデバイスおよびデバイスアーキテクチャの検証およびテストに有用な、広く汎用化可能なツールの欠如によっていっそうひどくなる。典型的な背景技術の検証方法はしばしば特定の設計を有する特定のデバイスに限定されているので、シミュレーションモデル用のそうした検証方法を準備し実行するステップを、各々の新しいデバイスに対して実行しなければならない。
【0007】
上述した通り、デバイスのシミュレーションモデルを通して設計を検証するプロセスは、VerilogおよびVHDLなどのハードウェア記述言語の可用性によって促進される。結果として生じるデバイスのシミュレーションモデルは、回路の入力に印加される2進数字の文字列であるテストベクトルの形で、入力刺激を受けることができる。次いでシミュレーションモデルは結果を出し、それはデバイスの特定の設計に対し期待された結果に照らして検査される。しかし、これらの言語は一般的に実検証用に設計されていない。したがって、検証エンジニアは、デバイスの設計検証を実行するためにこれらのハードウェア記述言語によって記述されたモデルとインタフェースするために、追加プログラミングコードを書かなければならない。
【0008】
テスト環境の例として静的および動的テスト環境がある。静的テスト環境は、予め計算されたテストベクトルをDUTのシミュレーションモデルに印加し、かつ/またはシミュレーションモデルの作動後に結果を検査する。加えて、静的テスト環境を使用してシミュレーションモデルから出力された結果を検査する場合には、テストが終了する後までテストの誤りは検出されない。その結果、誤り箇所のデバイスの内部状態は決定できず、そうした内部状態を決定するためには、シミュレーションを再作動する必要がある。この手順はシミュレーションサイクルを浪費し、特に長いテスト中に、かなりの時間を費やすことが必要になるおそれがある。
【0009】
より有用かつ効率的な型のテストが動的テスト環境である。この型の環境の場合、DUTのモデルのシミュレーションと同時に、かつシミュレートされたデバイスの状態フィードバックにより潜在的に制御しながら、テストベクトルが生成されるように、1セットのプログラミング命令が書かれる。この手順により、有向無作為生成を実行し、かつデバイスのシミュレーションモデルの状態に対してテスト自体の間に明らかになった効果を感知することが可能になる。したがって、動的テスト生成は明らかに設計の検証に対し多くの利点を有する。
【0010】
テスト環境の領域内で、静的および動的テスト環境はどちらも、束縛ベクトルまたは事前生成入力によってのみ実現できる。しかし、より強力かつより洗練された実現は、特に機能検証の場合には、回路を指定された通りに実行させるために様々な素子が正しく定義されかつ接続し合うために、テスト生成を使用して環境を生じる。イスラエルのベリシティ社(Verisity Ltd.)によって開発され、カリフォルニア州マウンテンビューのベリシティ・デザイン社(Verisity Design, Inc.)から入手可能なSpecman Elite(登録商標)ソフトウェアは、機能検証を提供する市場の主要製品である。該ソフトウェアの特定の属性は、同一人に譲渡された1999年6月8日出願の「System and Method for Measuring Temporal Coverage Detection」と称する同時係属米国特許出願第09/327966号に記載されており、それを全部参照によってここに組み込む。有用な背景情報は、同一人に譲渡された1998年2月6日出願の「Method and Apparatus for Test Generation During Circuit Design」と称する同時係属米国特許出願第09/020792号に提示されている。
【0011】
米国特許出願第09/020792号に開示されたテストジェネレータは、VerilogおよびVHDLのようなハードウェア記述言語と対話し、それより高レベルとして位置する。テスト生成手続きは、ハードウェア指向検証特定的オブジェクト指向プログラミング言語で書かれる。この言語は様々なテストを書くために使用され、次いでそれはテストジェネレータモジュールによってデバイス検証テストを自動的に作成するために使用される。幅広い設計環境はこの言語によってテストされ、検証される。したがって、開示された手続きは汎用化可能であり、しかもエンジニアがプログラムしかつデバッグするのが簡単である。
【0012】
しかし、人間の介在に対する依存性は、特にテストのカバレージを高めるためには、依然として大きい問題である。「カバレージ」は、DUTへの特定の入力または入力のセットの全ての考えられる機能および結果を調べるために、設計の到達可能な状態空間を充分に探求する能力の機能である。これらのテストのカバレージは手動で増大することができるが、それはエンジニアによる大量の入力を必要とするので、これは明らかに不利益である。したがって、カバレージを自動的に増大しようと試みる多数の方法が当業界で知られている。
【0013】
背景技術で知られている「カバレージブースタ」は一般的に、構造解析または「ホワイトボックス」システムと知識ベースシステムとの2つの部類がある。構造解析をベースとするカバレージ増強は、DUTの構造から、最も典型的にはDUTのゲートレベルの実現からカバレージを導出する。「各ノードをトグルする」などの目標がカバレージ目標として選ばれ、テストジェネレータはDUT構造の表現に対して作動する様々な探索アルゴリズムに基づくことが最も頻繁である。これらの技術は最初、製造された回路の「縮退」故障を識別するために導入された。一例はシカゴ大学(米国シカゴ)HITECなどの生産テストジェネレータであろう(T. Niermann and J. H. Patel, “HITEC: A Test Generation Package for Sequential Circuits”, European Design Automation Conf., Amsterdam, Netherlands, pp. 214−218, Feb. 1991に記載されている)。
【0014】
より近年、より高レベル(例えばレジスタ転送ファレベル)で作動する幾つかのそのようなシステムが出てきた。本質的には、そうしたシステムは同じ技術に基づいており、構造的推論を適用することができるように、DUTをゲートに統合することが最も頻繁である。
【0015】
全てのそうした方法の欠点は次の通りである。第一に、カバレージ目標が、要求仕様またはDUTが機能すべき環境によって課せられる制約条件を考慮せず、DUTのみから選ばれるので、基準が欠如している。この種のテストは、DUTが実際に仕様通りに機能するかどうかという最も重要な疑問に答えることができない。
【0016】
第二に、容量の制限に関して、テスト生成アルゴリズムはDUTの解析を必要とするので、DUTのサイズ(あるいはより正確には、DUTを実現するために使用される状態変数によって推定される状態空間)を制限しなければならない。現在の技術は一般的に産業設計の小部分に制限される。
【0017】
知識ベースシステムは、カバレージを自動的に増加する第2型の試みである。これらの場合、システムはDUTの仕様またはDUTが属するデバイス(例えばCPU)のクラスについて幾らかの知識を有する。カバレージ目標は、期待されるアーキテクチャおよびマイクロアーキテクチャの特徴に応じて設定される。知識ベースは、様々な特徴を標的とする抽象テストを格納する。そうしたテストは、必要な場合にカバレージを高めるために適用される。そうしたシステムの最も顕著な例は、米国特許第5202889号に開示されているIBM(米国、International Business Machines)のGensysである。
【0018】
そうしたシステムの主な欠点は、そうした知識ベースを構築する必要性である。知識ベースを構築するコストは、特定のDUTをテストするために必要な手作業を超えるので、そうした手法は、機能が同様であるデバイスの多数の世代にわたって知識ベースを償却することができる場合にのみ、実行可能である。
【0019】
発明の概要
背景技術は、自動的に発見される機能カバレージ目標を標的にすることによってDUTのテストのカバレージを最大にする方法を教示あるいは示唆していない。加えて、背景技術は、DUT状態空間のサイズに影響されず、かつ、どのクラスのDUTにも適用可能な、そうした機能カバレージを増大する方法を教示あるいは示唆していない。さらに、背景技術は、ユーザが手動で実行することができるが、実行する時間または忍耐力が彼らに無い、多くの境界条件がクロスする「力ずく」型のテストを実行する方法を教示あるいは示唆していない。また、背景技術は、だんだんよくなっていく機能カバレージを自動的に得るために、機能テストを実行するそうした方法の性能を反復的かつ自動的に調整する方法も教示あるいは示唆していない。
【0020】
本発明は、カバレージの穴を識別し、これらの領域をテストするために入力プロセスを変更し、次いでプロセスを反復的に繰り返して、テストカバレージを改善し続けることによって、テストカバレージを改善する。
【0021】
本発明の方法はユーザ生成テストで始まることが好ましく、そこからカバレージ情報を、例えば環境アーキテクチャファイルから、かつ/または他の既存のカバレージおよびテスト情報源から抽出することがさらに好ましい。そうした情報は任意選択的にかつ好ましくは、カバレージグループ、項目、およびバケットを含む。次にテストを実行し、結果を解析する。次いで、これらのカバレージの穴を覆うために、テスト記述を拡張することによってカバレージの穴を自動的に標的にする。本発明の方法は任意選択的に、かつ最も好ましくは、ユーザの当初のテストを変更するのではなく、代わりにテストの別個のバージョンに制約条件を付加して、ユーザの当初の制約条件が別個に格納されるようにする。また、本発明の方法は、制約条件の特定のセットによりテストが特定の値または値の範囲に達することが妨げられることを決定することができるという利点を有し、それに応じて機能することができる。
【0022】
制約条件が付加される順序および様式は、ランダムポリシーによって支配されることが好ましい。カバレージの穴は、前出願に記載されたカバレージの等級付け方式に従って埋めることが好ましい。等級が上がるにつれて、カバレージが適切になる確率が高まるので、追加カバレージが要求される確率は低下する。したがって、これらの穴は等級の低い方から高い方に満たしていくことが好ましい。
【0023】
任意選択的に、本発明の方法は、任意のテストの構造/特徴をテストによって得られたカバレージの増加に相関させることによってカバレージを高めるように「学習する」ことができる。そうした相関は、解析法を使用してだけでなく、遺伝的アルゴリズムまたはニューラルネットワークなどの適応法でも出すことができる。
【0024】
本発明では、テスト検証プロセス中にテスト環境でテスト中のデバイス(DUT)の機能カバレージを決定するための方法であって、カバレージメトリック(coverage metric)が複数のカバレージ項目から構築されており、テスト検証プロセス中に少なくとも1つの機能カバレージ項目を含むカバレージグループを検討のために獲得し、1セットの入力値をテスト検証プロセスに提供し、該セットの入力テスト値でテスト検証プロセスを実行して各カバレージ項目の値を獲得し、各カバレージ項目から得た値に従ってカバレージグループで得たカバレージを検討し、該セットの入力テスト値を自動的に変更することを含む方法を提供する。
【0025】
本発明の別の実施形態では、テスト検証プロセス中にテスト環境でテスト中のデバイス(DUT)の機能カバレージを決定するための方法であって、機能カバレージがカバレージメトリックに従って決定され、カバレージメトリックが複数のカバレージ項目から構築され、各カバレージ項目が標本化のための変数を有しており、1セットの入力値をテスト検証プロセスに提供して生成テストを形成し、生成テストの該セットの入力テスト値でテスト検証プロセスを実行して標本化条件に従って各カバレージ項目の変数の値を獲得し、各カバレージ項目から得た値に従ってカバレージメトリックで得たカバレージを検討し、該セットの入力テスト値を自動的に変更して新しい生成テストを形成することを含む方法を提供する。
【0026】
本発明のさらに別の実施形態では、テスト検証プロセス中にテスト環境でテスト中のデバイス(DUT)の機能カバレージを決定するためのシステムであって、カバレージメトリックが複数のカバレージ項目から構築され、各カバレージ項目が変数を有しており、変数の値がテスト検証プロセスのテスト毎に決定され、(a)少なくとも1つの変数の値を制約するための少なくとも1つの制約条件を受け取り、かつDUTに従ってテストを生成するためのテストジェネレータと、(b)テストを実行し、かつ実行時にデータを収集するための実行時システムと、(c)DUTに関する情報を受け取り、テストジェネレータからテストを受け取り、かつ実行時に収集されたデータを受け取るためのマキシマイザであって、テスト、DUT、および実行時に収集されたデータに従って追加テストを生成するマキシマイザとを備えたシステムを提供する。
【0027】
図面の簡単な説明
添付の図面は発明の特定の態様を図示するが、いかなる点においても限定を意味するものではない。
図1は、ATMスイッチの代表的設計を示し、該設計に入力を提供しかつそこからの出力をモニタする、テストジェネレータと制約条件の相互作用を示す。機能カバレージの場合と同様に時間チェックが適用され、その結果がスコアボードに記入されてカバレージレポートが提供される。
図2は、適用できる一連のテストと、テスト1、2または3が評価された回数を示すヒストグラムとを示す。
図3Aは、伝統的なSpecman「e」テスト環境と、カバレージマキシマイザを追加し、Specman Eliteソフトウェアを通して対話してDUTの機能の正確さをテストするDUT(物理的またはシミュレーションまたは両方)とを示す。
図3Bは、図3Aのマキシマイザの典型であるが好適な実現をより詳細に示す。
図4は、任意選択的であるが好適な静的解析による動的制約条件評価を追加した、図3のシステムを示す。
図5は、図4の抽象生成マシンをより詳細に示す。
【0028】
好適な実施形態の詳細な説明
本発明は、カバレージの穴を識別し、入力プロセスを変更してこれらの領域をテストし、次いでプロセスを反復的に繰り返してテストカバレージを改善し続けることによって、テストカバレージを改善する。
【0029】
本発明の方法は、ユーザ生成テストで始まることが好ましく、そこからカバレージ情報を、例えば環境アーキテクチャファイルから、かつ/または他の既存のカバレージおよびテスト情報源から抽出することがさらに好ましい。そうした情報は任意選択的にかつ好ましくは、カバレージグループ、項目、およびバケットを含む。さらに、カバレージ情報をDUTの実現から抽出することが好ましい。次に、テストを実行し、結果を解析する。次いで、任意選択的に追加制約条件によりテスト記述を拡張することによって、カバレージの穴を自動的に検出して標的とする。本発明の方法は任意選択的に、かつ最も好ましくは、ユーザの当初のテストを変更せず、代わりにテストの別個のバージョンに制約条件を付加して、ユーザの当初の制約条件が別個に格納されるようにする。また、本発明の方法は、特定のセットの制約条件によりテストが特定の値または値の範囲に達することが妨げられることを決定することができるという利点を有し、それに応じて機能することができる(例えば、妨げている制約条件を取り除いたテストのコピーを作成するか、あるいは到達できないカバレージ目標についてユーザに通知する)。
【0030】
特に、本発明は、ある意味で「優良」であることが知られている(またはそれらの「優良」度が知られている)1セットのテスト記述(またはテストインスタンス)が提供された場合に、「より優良」である(またはそうである確率が高い)別のセットが構築かつ/または識別されるように、改善されたカバレージのテストを構築する問題を解決するのに有用である。
【0031】
(テストインスタンスの)「優良さ」は一般的に何らかのカバレージ尺度に関連付けられるので、「優良さ」およびカバレージの言及は相互に置き換えることができる。したがって、より優れたカバレージを得ることが本発明の方法の目標であることは明らかである。「優良さ」は(任意のテストセットの)セット特性または各テストの個別特性とみなすことができる。
【0032】
そのカバレージを得る方法は任意選択的に3通りある。外的方法すなわち純粋にユーザ定義によるもの、自動的方法すなわち純粋にテストおよびDUTから導出されるもの、ならびに推論方法すなわちユーザ定義カバレージから得られ、そこからいっそう興味深いカバレージポイントおよび尺度が計算(導出)されるものである。遷移独立結果のみならず、可到達性情報および一次入力遷移関係をも得るためにステートマシン解析技術を適用するなど、DUTから推論カバレージを導出するための多数の可能性が生じる(これはテストケースの組合せを助長し指示することができるかもしれない、以下参照)。
【0033】
本発明の方法は任意選択的に、かつ好ましくは、2つの主要な構成要素、すなわち(a)カバレージ目標発見メカニズム、および(b)テスト生成メカニズムを有する。目標は一般的に、何らかの最大化または最適化プロセスの候補として明示的にまたは暗黙に指定することのできる何かとして記述することができる。目標は任意選択的に、かつ好ましくは2つのカテゴリに分類される。第1のカテゴリは直接制御可能な目標であり、それは基本的に、時相式と制約条件の組合せを用いてSpecmanによって課せられ(かつ解かれ)るDUTへの導入刺激に関する述語である。第2のカテゴリは他の全ての型の目標を含み、それは複雑さからジェネレータによって解くことのできない刺激だけの述語として(例えばcrcエラーのあるパケット)、またはDUT内部状態およびトレースに基づくかまたは(例えばクロスカバレージを通して)それらを他の「目標」に関連付ける述語として、さらに記述することができる。
【0034】
どのテストでもユーザが明示的に定義する全てのカバレージポイントは「目標」となるかもしれないが、多くの理由から目標は「カバレージポイント」と同一ではないことに注意されたい。第一に、テストの定義の解析から新しい目標が発生するかもしれない。第二に、テストランの解析から新しい目標が発生するかもしれない。第三に、DUTの解析から新しい目標が発生するかもしれない。
【0035】
本発明の方法は任意選択に、かつ好ましくは、次のカバレージ目標発見メカニズムを採用することができる。第一に、カバレージ目標は任意選択的に、先行技術と同様に、例えばDUT内に埋め込まれたステートマシンの全ての状態を網羅してDUT構造を解析することによって、得ることができる。これらの目標は任意選択的に、ユーザが例えばeアーキテクチャファイルで定義するカバレージポイントとして明示的に定義することもできる。これらの目標はまた任意選択的に、例えばそれらの境界値がカバレージ目標となる有界データ型など、使用されるデータ型に基づいて暗黙に抽出することもできる。加えて、これらの目標は、重要性の値を識別することによって、テスト環境の定義または特定のテストファイルで暗黙に定義することができる。例えば、1つのユーザテストで使用される特定の値割当は、割り当てられたフィールドの範囲の区分を定義する。この区分は、フィールドの新しい目標(バケット)を定義するのに使用される。
【0036】
任意選択的に、かつより好ましくは、これらの目標は、2つの明示的なカバレージ目標間のクロス、または明示的なカバレージ目標とDUT構造に基づくカバレージ目標との間のクロス、または暗黙の目標と明示的目標との間のクロス、または暗黙の目標間のクロスとして、上記目標をクロスさせることによって定義することができる。クロスはカバレージ目標のカルテシアン積であるので、目標1がN個の値またはバケットを持つことができ、目標2がM個の値を持つ場合、クロス乗積はM×N個の値の行列である。
【0037】
テスト生成メカニズムに関しては、本発明の方法は、一意の制約条件に基づくテストジェネレータを使用することが好ましい。テストは、次の方法の組合せ、すなわち様々なテストからのユーザ提供制約条件のスーパインポーズ、ユーザ定義制約条件と特定のカバレージ目標をめざして計算された制約条件とのスーパインポーズ、および上記のいずれかと生成確率をスキューさせるランダムポリシーとの組合せを使用することによって生成することがより好ましい。
【0038】
ランダムポリシーはスカラの生成の確率を制御する。一般的にジェネレータは、範囲内の各数が生成される確率と同じ確率を持つ正規分布を使用する。テストに有利な別のポリシーの例として、境界の確率は範囲の真ん中の数より高くなるように範囲境界を強調するポリシーがある。生成テストの異なるスカラ場に、異なるランダムポリシーを一緒に適用することができる。
【0039】
本発明の好適な実施形態では、これらのテストによって得られる尺度のクロスカバレージを高めるためにテストが組み合わされる。DUTに関して、テストインスタンスは、その対応する(DUT)導入時間に導入される刺激を表わす一連の時間/刺激対にすぎない。しかし、より抽象的なSpecman(登録商標)ソフトウェアによる本発明の方法の好適な実現では、テストインスタンスは、時相述語が真になった(点火した)ときに存在する制約条件に従って生成されるデータを表わす、一連の時相式/生成動作対にすぎない。テストは任意選択的にこれらの表現の両方と組み合わせることができる。そのような組合せは任意選択的に、いずれかのテストで生成されたものを全て生成し、可能ならば全てが第1テストの場合と同様に生成されるが、同じデータが第2テストで生成される場合には、可能ならば第2テストの制約条件が適用される単純結合;時相「ガード」の非決定的選択とある瞬間に複数のテストを生成すべき場合にテストの非決定的選択を含むことができるが、それらに限定されない。また、これらの組合せはそれ自体任意選択的に組み合わせることができる。そうした組合せは任意選択的に、かつ好ましくは、各テストの暗黙の特徴を組み合わされたテストの目標に関連付ける適応アルゴリズムによって制御される。そうした適応アルゴリズムは、遺伝的アルゴリズム、ニューラルネットワーク、線形プログラミング、および様々な有界探索アルゴリズムを含むが、それらに限定されない。
【0040】
そうした組合せの効果、およびそれらの成功の確率は、理論的に予測することが非常に難しいが、DUTのステートマシン特性に密接に関連付けられる。
【0041】
今、図面を参照すると、図3Aは、本発明に係るテスト生成のための例示的システムを示す略ブロック図である。図示したシステムは、本発明の説明に必要なテスト生成手続きに一般的機能のみを含むことに注意されない。テスト生成手続き全体のより完全な説明は、前に参照によって組み込んだ米国特許出願第09/020792号に見ることができる。また、本発明はシミュレーションモデルの文脈で説明するが、本発明は物理的デバイスの検証にも有用であることにも注意されたい。物理的デバイスおよびシミュレーションモデルはどちらも、テスト環境にあるDUT(試験中のデバイス)と記述することができる。
【0042】
本発明に係るテスト生成システム10は、VerilogまたはVHDLなどのハードウェア記述言語で書かれた、テスト中のデバイス(DUT)の設計14を受け入れることのできるシミュレータ12を特徴とする。加えて、シミュレータ12は、実行時にテスト生成手続きを実行するためのテストエンジン16と対話する。シミュレータ12とテストエンジン16との間の対話は、テストエンジン16がシミュレータ12に入力を提供し、次にさらなる操作のための入力としてシミュレータ12から結果を受け取るので、二方向として示される。
【0043】
テストエンジン16は、DUT14を実行時にテストするための実行時システム21に接続されたテストジェネレータ18を特徴とする。テストジェネレータ18は1組の制約条件20およびI/Oデータモデル22を受け取り、次いでDUT14のテストおよび検証を実行する。本発明では、制約条件20は少なくとも1組の複数の動的制約条件を含み、それらは次いで、以下でさらに詳しく述べる通り、本発明の方法に従って解かれる。実行時システム21は、実行時テスト手続き中にシミュレータ12の駆動および標本化の両方を実行する。
【0044】
テストおよび検証のプロセス中に、データコレクタ24は実行時システム21から1つまたはそれ以上の変数の値を要求する。これらの要求は任意選択的に、実行時システム21によって発行されるトリガイベントに従って実行される。例えば、時相カバレージに関連するデータを収集する場合、そうしたトリガイベントは任意選択的に、固定され予め定められた標本化時間、および/または例えば時相言語で与えられた時相式によって定義された状態遷移の時相パターンの発生である。データコレクタ24はテストジェネレータ18と交信し、テストジェネレータ18用のAPI(アプリケーションプログラミングインタフェース)を通して要求されたデータにアクセスすることができる。そうしたAPIは、所望のデータを収集するために要求されるソフトウェア機能呼出しを指定する。この収集データは次いで、データアナライザ26によって解析される。
【0045】
本発明では、データアナライザ26は、テストカバレージを最大にするためのマキシマイザ300を特徴する。図3Bに関連してより詳しく説明する通り、マキシマイザ300は、任意選択的解析モジュール305からDUT14に関する情報を受け取り、かつテストジェネレータ18から様々なテストに関する情報を受け取ることが好ましい。この情報は次いで、新しいテストを作成するため、かつ/または1つまたはそれ以上の制約条件を制約条件20で調整するために使用される。
【0046】
本発明の好適な実施形態では、制約条件20およびI/Oデータモデル22は、Specman(登録商標)機能プログラミング環境(米国カリフォルニア州マウンテンビュー、ベリシティ・デザイン社)によって提供され米国特許出願第09/020792号に開示されたコード言語であるeコードで構築することが好ましい。そうした実施形態は、eコードによるプログラミングの容易さおよび柔軟性のため、好ましい。
【0047】
eコード言語は、ハードウェア指向検証特定的オブジェクト指向プログラミング言語である。この言語のオブジェクトは「ストラクト(structs)」のインスタンスであり、それはフィールド、1つまたはそれ以上の機能、または方法を含み、それはフィールド内に格納されたデータに働き、他のオブジェクトと対話する。任意選択的に、制約条件はフィールドに作用することができ、それによって例えばデータの可能な値の範囲を制約することによって、フィールドに格納されたデータを変更することができる。フィールドは、他のストラクト、およびスカラまたはストラクトのリストをはじめ、より複雑な構造を格納するために使用することもできる。
【0048】
テスト生成のプロセスは、ストラクトおよびフィールドをはじめとするデータ要素にランダム値を埋め込む。各要素の可能なデータ値は、有向テスト生成の方向を提示する制約条件によって任意選択的に制限することができる。動的制約条件の場合、下で図4および5に関してさらに詳しく述べるように、テスト生成の各インスタンスに対し、選択された特定の解が本発明に従って提供される。この解は、次いで生成データ値の制限を提供するために使用される。
【0049】
図3Bはマキシマイザ300の例示的実現をより詳細に示す。マキシマイザ300は、入力テストセット(図3Aのテストジェネレータ18への入力用)および任意選択的に指定目標を受け取るグレーダ(grader)310を特徴とする。次いでグレーダ310は好ましくは、特徴検出、特徴格付け、および目標検出などの機能を実行するために、知識ベース320に相談し、それを更新する。特徴検出は、既存のテストセットから、入力目標として指定されない新しい特徴を抽出することによって実行することが好ましい。例えば、一般的刺激におけるカバレージの穴を見つけるためのメカニズムは、そうした動作の一例である。目標検出に関し、これらの新しい目標は任意選択的に次のように所定の組の目標から検出される。第一に、目標は論理的推理によって任意選択的に次の通り抽出することができる。
AまたはBを達成する場合、Aを達成するか、またはBを達成することを希望するであろう
AおよびBを達成する場合、Aを達成し、かつBを達成することを希望するであろう
A=>Bであることが知られている場合、Aを達成するために、(ある確率で)Aを達成することを希望するであろう
A=>〜Bであることが知られている場合、Bを達成するために〜Aを達成することを希望するであろう
【0050】
加えて、新しい目標を発見するために、時相論理的推理を任意選択に次の通り使用することができる。
Aが最終的にBを導く場合、Bを達成することを希望するであろう(目標がBであるとき)
AおよびB(任意の順序で)がCを導く場合、AおよびB(どの順序でもよい)を達成しようとするであろう
【0051】
言うまでもなく、目標をサブ目標に関連付ける特に統計的な過去の経験に関する情報を例えば知識ベース320から得るために、過去の経験を使用することもできる。そうした過去の経験は、統計関数として明示的に、あるいは暗黙にミューテーション確率またはニューラルネットワークのシナプス加重として表わすことができる。
【0052】
次に、コンポーザ330は、グレーダ310から結果を受け取り、テスト定義を構成および/または変更することが好ましい。コンポーザ330はテスト定義を構成および/または変更する前に、知識ベース320を任意で調べることもできる。これらのテスト定義は次いで任意選択的に、かつ好ましくはランナ340に送られ、それは実際の構成されたテストを格付けし、知識ベース320を更新する。
【0053】
全ての検出された特徴および出現した目標が与えられると仮定して、知識ベース320を用いることによって特徴を格付けして、任意の特徴の加重成功を測定し、特定の目標を決定することが好ましい。したがってこの格付けプロセスの内部表現はコンポーザ330に送ることが好ましい。
【0054】
知識ベース320自体は、「特徴ビルディングブロック」から目標へのマッピングを含むことが好ましい。これらの特徴ビルディングブロックは、レシピに従って決定することがより好ましい。レシピはテストの一部の内部表現として定義することが好ましい。それは単一情報作用(の等価物)、そうしたものの連続、生成および導入タイミングプロセス(時間消費法)、またはフルブラウンテストとすることができる。
【0055】
レシピは任意選択的に、いつそれが(特定の目標へ)適用可能であるかを指定する事前条件を持つことができる。それは、複素時相式およびトレース述語(生成トレースおよびDUTトレースの両方)のみならず、単純ブール式とすることもできる。レシピはまた、任意選択的に、かつ、より好ましくは、「これはセルフレジスタNないし零(Nはパラメータ)用のレシピである」または「これは整数バッファJをオーバフローさせるためのレシピである」(Jはパラメータ)などのようにパラメータ化される。
【0056】
レシピは、(それらがおそらく達成されるように)それらを目標に関連付ける統計的尺度を持つことが好ましい(例えば「このレシピはおそらく(80%)衝突を導く(言うまでも無く適正な事前条件により)」のように)。
【0057】
レシピは任意選択的に、構成ルールを用いて他の(サブ)レシピから再帰的に構成することができる。新しいレシピを形成し、かつレシピを組み合わせて新しいレシピを形成する両方のために、同じ構成ルールをレシピに「内部」かつ「外部」から適用することが好ましい。
【0058】
図3Aおよび3Bは、「入力専用」マキシマイザと記述することのできる、基本セットの機能を有するマキシマイザ300の任意選択的実施形態を示す。この実現では、全ての指定目標は特徴である。すなわち、全ての目標は「入力言語」で記述され、したがって「可解生成刺激述語」である。また、特徴検出および目標検出はある程度一致する(相互に退化する)。
【0059】
レシピはロール制約条件およびロール生成トレース述語であることが好ましい。ストラクト型が様々な文脈で生成され、それおよびその派生物に様々な制約条件が適用可能である状況を簡素化するために、ロールを使用することが好ましい。生成ロールは、ストラクト型がストラクトの定義とストラクトが生成される文脈との両方に従って正しく生成されるように、「文脈におけるストラクト型」または文脈に従ってストラクトを定義できることに対するこの要求の概念化である。
【0060】
任意選択的に、メタランダムポリシーを使用してマキシマイザ300の実現を拡張することがより好ましい。メタランダムテスト方式は、一般的ヒューリスティックおよび状態定義を用いてロールのフィールドの生成履歴に影響を及ぼすことが可能である。各ロールに対して、そのロールにおける生成の統計的分布を支配するランダムポリシーが割り当てられる。ランダムポリシーの割当はランダムに、または解析を通して行なうことができる。ランダム割当ポリシーを使用する場合、新しいポリシーが選ばれるまで、このポリシーを用いて何回生成が行なわれるかを示すカウントが割り当てられる。この方式は任意選択的に、かつ好ましくは、Specman(登録商標)など制約条件に基づくテスト生成システムと共に実現される。
【0061】
シードドメイン、範囲リストRL、およびおそらくシードドメインの生成履歴(の一部)が与えられることを前提として、ランダムポリシーはそのシードドメインに新しい値が生成される方法を決定する。例えば次のポリシーを任意選択的に実現することができる。
min−RL内の最小項目がより高い確率を持つ
max−RL内の最大項目がより高い確率を持つ
メジアン−RLの「真ん中」の項目がより高い確率を持つ
alt_min_max−最小から始めて、最小を変更すると最大がより高い確率を持つ
alt_max_min−最大から始めて、最小を変更すると最大がより高い確率を持つ
min_or_max−最大または最小が無作為により高い確率を持つ
edge−RLにおけるエッジである値
random−ランダム
diff_then_prev−可能ならば、前の値と異なる値がより高い確率を持つ
eq_to_prev−可能ならば、前の値に等しい値がより高い確率を持つ
uniq−可能ならば、全ての前の値と異なる値がより高い確率を持つ
【0062】
ポリシーはまた任意選択的に、かつ好ましくは、生成履歴を考慮する能力に関連する多数の特徴を有する。例えば0−look−backはポリシーが生成履歴を見ることを暗示しないい場合である。1−look−backはポリシーが最後に生成された値だけを見ることを暗示する場合である。unbound−look−backはポリシーが全部の生成ポリシーを見ることを暗示する場合である。
【0063】
これらのポリシーの決定的例を次に挙げる。
0−look−back:
min==>min(RL)
max==>max(RL)
median==>rl[ceiling(size(RL)/2)
1−look−back:
alt_min_max==>prev was min? max(RL):min(RL)
alt_max_min==>prev was min? max(RL):min(RL)
【0064】
非決定的ポリシーの場合、0−look−backは次のように定義される。
min_or_max==>rnd([min(RL),max(RL)]
edges==>rnd(edges(RL))
random==>rnd(RL)
1−look−back:
diff_then_prev==>rnd(RL[prev]) if possible
eq_to_prev==>[prev] if possible
unbound−look−back:
uniq==>rnd(RL−[all_prev])is possible
【0065】
図4は、動的制約条件を解くためのAGM(アブストラクト生成マシン)モジュール26を追加した、図3のシステム10を示す。AGMモジュール26は一連の命令を「ジェネレータミニ言語」(GML)で作成する。これらの命令は次いで、任意のセットの動的制約条件に正しいランダム解を提供するために実行される。簡単に言うと、静的解析モジュール29は、テストジェネレータ18と協力して、実行前に動的制約条件の初期解析を実行することが好ましい。この初期解析は、正しいランダム解を生成するための1セットの命令を生成することが好ましい。次に、実行時インタプリタモジュール31は、これらの命令を受け取り、それらを実行時システム21と共に実行することが好ましい。AGMモジュール26のより詳細な説明を、以下で図5に関連して提供する。
【0066】
今、図5を見ると、この略ブロック図は、図1からのAGMモジュール26の例示的であるが好適な実現を示す。図示する通り、AGMモジュール26は、静的解析モジュール29および実行時インタプリタ31に加えて、制約条件解決エンジン27を特徴とすることが好ましい。制約解決エンジン27は、制約条件を解決するプロセスを少なくとも部分的に実行時前に静的解析段階で実行することを可能にし、それによって制約条件解決のプロセスをより効果的かつより効率的にする。次いで、実行時中の制約条件解決エンジン27による実行のための1セットの命令が作成される。したがって、実行時中に制約条件解決が行なわれることを必要とした背景技術とは異なり、本発明は制約条件解決のプロセスを、その後に1セットの命令が作成される静的解析中(実行時前)とこれらの命令が実行される実行時中との2段階に分割することができる。
【0067】
本発明の好適な実施形態では、制約条件解決エンジン27は任意選択的に、かつ好ましくは、順序マネージャ28および依存性グラフマネージャ30を特徴とすることができる。簡単に言うと、静的解析モジュール29は、ランダム解を作成するために実行のための命令セットを作成するために制約条件の初期解析を実行する一方、実行時インタプリタ31はこれらの命令を実行する。
【0068】
順序マネージャ28は、双方向および単方向エッジのある動的グラフ32を維持することが好ましい。動的グラフ32を使用して各制約条件を表わす命令の組込みの順序を決定することがより好ましく、その順序に従って各制約条件は動的グラフ32のノード間に暗黙に示される。この順序は次に、提供される制約条件のセットに従って決定されることがより好ましい。各ノードは実行される命令を表わす。次に各命令が、従属性グラフマネージャ30によって決定される制約条件間の関係にしたがって作成される。
【0069】
次に従属性グラフマネージャ30は任意選択的に、かつ好ましくは、ノードと制約条件を関連付ける動的2部関係グラフ34を維持する。各ノードは、特定の変数のフィールド範囲を表わし、それに対してテスト生成プロセスの一部として特定の値を生成することができる。従属性グラフマネージャ30は、プロセスで関係グラフ34を使用し、それによって、提供された制約条件のセットの適正値の範囲の一貫性が維持され、それは縮小メカニズム(reducing mechanism)の一部である。任意選択的に、かつより好適には、従属性グラフマネージャ30は、一貫性を維持するために検討しなければならない関係の数を低減することができる。
【0070】
順序マネージャ28および従属性グラフマネージャ30は一緒に、静的解析モジュール29からのコマンドに従って静的な一連の命令を作成することが好ましく、それは実行時インタプリタ31によって実行されるときに、制約条件のセットの解を提供する。この解は変数の1セットの値として提供されることがより好ましい。前述の通り、e言語を使用してテスト生成のための制約条件およびデータモデルを記述する場合には、これらの値は任意選択的にスカラ、ストラクト、およびフィールドなどのデータ要素を含むことができる。
【0071】
図4および5に示す通り、システム10は、図3Aおよび3Bのシステムの実現に勝る幾つかの追加的利点を有する。特に、マキシマイザ300およびAGM26は任意選択的に、その後のプロセスによって協力すると記述することができ、そこでマキシマイザ300によって実行される自動カバレージ抽出が内部データ表現およびAGM26からのアルゴリズムを使用してその後のプロセスを実行する。
【0072】
第一に、生成ロールはカバレージグループに変換される。次に、各ロールにおけるストラクトの生成に対応するイベントを出すための新しいeコードが生成される。次いで、各生成可能なフィールドがカバレージ項目に変換される。統計解析によって推定される生成可能なフィールドの初期範囲の値は、対応するカバレージ項目の正当な値であると定義される。
【0073】
次に、他のアルゴリズムに加えて、統計解析によって推定されるロール内のそのフィールドに対する適用可能な制約条件のセットを使用して、そうした項目のバケットが定義および補充される。こうして、マキシマイザ300の抽出フェーズは任意選択的に、かつより好ましくは、統計解析から導出される次の情報、すなわち生成ロール、ロール内の生成可能なフィールド、ロール内の生成可能なフィールドの初期範囲、およびロールにおける生成可能なフィールドに対して適用可能な制約条件を使用する。
【図面の簡単な説明】
【図1】 ATMスイッチの代表的設計を示し、該設計に入力を提供しかつそこからの出力をモニタする、テストジェネレータと制約条件の相互作用を示す。
【図2】 適用できる一連のテストと、テスト1、2または3が評価された回数を示すヒストグラムとを示す。
【図3】 図3Aは伝統的なSpecman「e」テスト環境と、カバレージマキシマイザを追加し、Specman Eliteソフトウェアを通して対話してDUTの機能の正確さをテストするDUT(物理的またはシミュレーションまたは両方)とを示す。図3Bは図3Aのマキシマイザの典型であるが好適な実現をより詳細に示す。
【図4】 任意選択的であるが好適な静的解析による動的制約条件評価を追加した、図3のシステムを示す。
【図5】 図4の抽象生成マシンをより詳細に示す。
Claims (27)
- テスト中のデバイス(DUT)のシミュレーションモデルで実行される設計テスト検証プロセス中にテスト環境で前記テスト中のデバイス(DUT)のための設計の機能カバレージをカバレージメトリックに従って決定するための方法であって、カバレージメトリックが複数のカバレージ項目から構築されており、方法が、
カバレージグループを前記設計から獲得し、ただし、前記カバレージグループは、所定の入力についての設計の到達可能な空間ステートを含み、前記カバレージグループは、設計テスト検証プロセス中の検討のためのものであり、前記カバレージグループは、少なくとも一つの機能結果を含む、
前記所定の入力を提供するために、1セットの入力テスト値を設計テスト検証プロセスに提供し、
前記セットの入力テスト値で設計テスト検証プロセスを実行して各機能結果についての値をそれぞれ獲得し、
前記カバレージメトリックを使用して、得られたカバレージ目標を前記値と比較することによって、各機能結果から得た前記それぞれの値に従って前記カバレージグループで得られたカバレージを検討し、そして
テストカバレージを適応するように改善するために、前記比較に従って前記セットの入力テスト値を自動的に変更すること、ただし、前記変更することは、異なるテストからのユーザに与えられた制約条件を重ね合わせること、及び前記得られたカバレージ目標で前記メトリックを最大化するために計算された制約条件と、ユーザ定義制約条件とを重ね合わせることからなる群から選択される少なくとも一つの作業を使用することを含み、前記作業は、生成確率をゆがめるための少なくとも一つのランダム化ポリシーと組み合わせられる
を含む方法。 - 前記カバレージグループが手動で提供される記述から得られることを特徴とする請求項1に記載の方法。
- 前記カバレージグループがDUT回路設計仕様から得られることを特徴とする請求項1に記載の方法。
- 前記カバレージグループがテスト環境により定義されるテストから得られることを特徴とする請求項1に記載の方法。
- 各機能カバレージ結果がDUT回路設計およびテスト環境の少なくとも1つの値保持要素および前記値を標本化するための標本化条件を定義する式であり、前記標本化条件が標本化された値を形成するよう満たされる場合、設計テスト検証プロセスが前記値を標本化することによって実行され、かつカバレージが前記標本化された値に従って測定されることを特徴とする請求項1に記載の方法。
- テスト中のデバイス(DUT)のシミュレーションモデルで実行される設計テスト検証プロセス中にテスト環境で前記テスト中のデバイス(DUT)のための設計の機能カバレージを決定するためのシステムであって、システムはカバレージメトリックを利用し、カバレージメトリックが、前記設計から獲得された複数の機能カバレージ結果から構築され、各機能カバレージ結果が変数を有しており、変数の値が設計テスト検証プロセスのテスト毎に決定され、システムが、
(a)前記結果変数のうちの少なくとも1つの値を制約するための少なくとも1つの制約条件を受け取り、かつDUT回路設計仕様に従ってテストを生成するためのテストジェネレータと、
(b)生成されたテストを実行し、かつ実行時にテストからデータを収集するための実行時システムと、
(c)前記テストジェネレータからテストを受け取り、かつ実行時に収集された前記データを受け取るためのマキシマイザであって、テスト、前記カバレージメトリック、および実行時に収集された前記データに従って、テストカバレージを適応するように改善するための追加テストを生成するマキシマイザ、ただし、前記追加テストを生成することは、異なるテストからのユーザに与えられた制約条件を重ね合わせること、及び前記得られたカバレージ目標で前記メトリックを最大化するために計算された制約条件と、ユーザ定義制約条件とを重ね合わせることからなる群から選択される少なくとも一つの作業を使用することを含み、前記作業は、生成確率をゆがめるための少なくとも一つのランダム化ポリシーと組み合わせられる
を備えたシステム。 - (d)DUT回路設計仕様に関する情報を受け取り、かつ前記情報を解析する解析モジュールであって、前記解析された情報が前記追加テストを生成するために前記マキシマイザに渡される解析モジュール、
をさらに含む請求項6に記載のシステム。 - 前記解析モジュールが前のテストから手動で決定された情報を受け取り、前記追加テストを生成するために前記マキシマイザに前記情報を渡すために前記情報を解析するように構成されていることを特徴とする請求項7に記載のシステム。
- テスト中のデバイス(DUT)のシミュレーションモデルで実行される設計テスト検証プロセス中にテスト環境で前記テスト中のデバイス(DUT)のための設計の機能カバレージをカバレージメトリックに従って決定するための方法であって、機能カバレージがカバレージメトリックに従って決定され、カバレージメトリックが、前記設計から獲得された複数のカバレージ結果から構築されており、各カバレージ結果が標本化されるための変数を有し、方法が
1セットの入力値を設計テスト検証プロセスに提供して生成テストを形成し、
前記生成テストの前記セットの入力テスト値で設計テスト検証プロセスを実行して標本化条件に従って各カバレージ結果の変数の値を獲得し、
各カバレージ結果から得た前記値をカバレージ目標と比較することによって、得られたカバレージを検討し、そして
前記検討に従って前記セットの入力テスト値を自動的に変更して、テストカバレージを適応するように改善するための新しい生成テストを形成すること、ただし、前記変更することは、異なるテストからのユーザに与えられた制約条件を重ね合わせること、及び前記得られたカバレージ目標で前記メトリックを最大化するために計算された制約条件と、ユーザ定義制約条件とを重ね合わせることからなる群から選択される少なくとも一つの作業を使用することを含み、前記作業は、生成確率をゆがめるための少なくとも一つのランダム化ポリシーと組み合わせられる
を含む方法。 - 少なくとも1つのカバレージ結果が機能カバレージ項目であって、前記機能カバレージ項目の変数が変数の前記値を標本化するために標本化条件に従って標本化されることを特徴とする請求項9に記載の方法。
- 前記新しい生成テストが少なくとも1つのカバレージ目標に従って形成され、前記少なくとも1つのカバレージ目標がDUT回路設計およびテスト環境の少なくとも1つの解析に従って自動的に決定されることを特徴とする請求項10に記載の方法。
- 前記解析はDUT構造から前記少なくとも1つのカバレージ目標を抽出するためにDUT回路設計仕様に実行されることを特徴とする請求項11に記載の方法。
- 前記少なくとも1つのカバレージ目標がテスト環境から手動で定義されることを特徴とする請求項11に記載の方法。
- 複数のカバレージ目標がテスト環境から手動で定義され、追加カバレージ目標が前記手動で定義されたカバレージ目標の少なくとも2つの組合せから自動的に決定されることを特徴とする請求項13に記載の方法。
- 前記少なくとも1つのカバレージ目標が少なくとも1つのカバレージ項目の各変数のデータ型の自動解析に従って定義されることを特徴とする請求項11に記載の方法。
- 前記自動解析が少なくとも1つのカバレージ項目の各変数の可能な値の少なくとも1つの境界を決定し、前記少なくとも1つのカバレージ目標が前記少なくとも1つの境界に従って決定されることを特徴とする請求項15に記載の方法。
- 前記自動解析が、少なくとも1つの変数の値を決定するためにテスト環境を解析し、前記値に従って前記少なくとも1つのカバレージ目標を定義することによって実行されることを特徴とする請求項15に記載の方法。
- 前記値が前記少なくとも1つの変数の可能な値の境界を定義することを特徴とする請求項17に記載の方法。
- 前記可能な値が前記少なくとも1つの変数の値の範囲内に含まれ、前記境界が前記範囲を分割することを特徴とする請求項18に記載の方法。
- 複数のカバレージ目標が前記自動解析に従って定義され、追加カバレージ目標が前記自動的に定義されたカバレージ目標の少なくとも2つの組合せから自動的に決定されることを特徴とする請求項15に記載の方法。
- 少なくとも1つのカバレージ目標がテスト環境から手動で定義され、追加カバレージ目標が自動的に定義されたカバレージ目標と前記手動で定義されたカバレージ目標の組合せから自動的に決定されることを特徴とする請求項15に記載の方法。
- 前記組合せが前記自動的に定義されたカバレージ目標と前記手動で定義されたカバレージ目標のカルテシアン積から決定され、前記自動で定義されたカバレージ目標がN個の可能な値を持ち、前記手動で定義されたカバレージ目標がM個の可能な値を持つ場合、前記組合せはM×N個の値の行列であることを特徴とする請求項21に記載の方法。
- 前記新しい生成テストが少なくとも1つの変数の値を制約するための少なくとも1つの制約条件を含むことを特徴とする請求項11に記載の方法。
- 前記少なくとも1つの制約条件が前の生成テストから手動で決定された制約条件から引き出されることを特徴とする請求項23に記載の方法。
- 少なくとも1つの追加制約条件が前記少なくとも1つのカバレージ目標に従って作成されることを特徴とする請求項23に記載の方法。
- 少なくとも1つの制約条件が前の生成テストおよび特定のカバレージ目標から手動で決定された制約条件の組合せに従って作成されることを特徴とする請求項23に記載の方法。
- 前記少なくとも1つの制約条件の前記新しい生成テストの生成への効果が生成確率に影響を及ぼすためのランダム化ポリシーに従って少なくとも部分的に決定されることを特徴とする請求項23に記載の方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20882200P | 2000-06-02 | 2000-06-02 | |
US60/208,822 | 2000-06-02 | ||
US09/799,065 | 2001-03-06 | ||
US09/799,065 US7114111B2 (en) | 1999-06-08 | 2001-03-06 | Method and apparatus for maximizing test coverage |
PCT/IL2001/000508 WO2001092903A2 (en) | 2000-06-02 | 2001-06-03 | Method and apparatus for maximizing test coverage |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003535343A JP2003535343A (ja) | 2003-11-25 |
JP2003535343A5 JP2003535343A5 (ja) | 2008-06-26 |
JP5063850B2 true JP5063850B2 (ja) | 2012-10-31 |
Family
ID=26903535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002501058A Expired - Fee Related JP5063850B2 (ja) | 2000-06-02 | 2001-06-03 | テストカバレージを最大にするための方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7114111B2 (ja) |
EP (1) | EP1290459A2 (ja) |
JP (1) | JP5063850B2 (ja) |
AU (1) | AU2001274440A1 (ja) |
HK (1) | HK1049700A1 (ja) |
IL (1) | IL153050A0 (ja) |
WO (1) | WO2001092903A2 (ja) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3732708B2 (ja) * | 2000-03-27 | 2006-01-11 | 株式会社東芝 | テストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体 |
US6625785B2 (en) * | 2000-04-19 | 2003-09-23 | Georgia Tech Research Corporation | Method for diagnosing process parameter variations from measurements in analog circuits |
JP2002282540A (ja) * | 2001-03-26 | 2002-10-02 | Square Co Ltd | ビデオゲームプログラム、ビデオゲームプログラムを記録した記録媒体、ビデオゲームにおける制御値設定方法及びゲーム装置 |
US6912700B1 (en) * | 2001-06-06 | 2005-06-28 | The United States Of America As Represented By The National Security Agency | Method and system for non-linear state based satisfiability |
US7007039B2 (en) * | 2001-06-14 | 2006-02-28 | Microsoft Corporation | Method of building multidimensional workload-aware histograms |
US7143019B2 (en) * | 2001-10-30 | 2006-11-28 | International Business Machines Corporation | Maintaining data integrity within a distributed simulation environment |
US7092868B2 (en) * | 2001-10-30 | 2006-08-15 | International Business Machines Corporation | Annealing harvest event testcase collection within a batch simulation farm |
US7143018B2 (en) * | 2001-11-30 | 2006-11-28 | International Business Machines Corporation | Non-redundant collection of harvest events within a batch simulation farm network |
US7359847B2 (en) * | 2001-11-30 | 2008-04-15 | International Business Machines Corporation | Tracking converage results in a batch simulation farm network |
US6782518B2 (en) * | 2002-03-28 | 2004-08-24 | International Business Machines Corporation | System and method for facilitating coverage feedback testcase generation reproducibility |
US6918099B2 (en) * | 2003-02-19 | 2005-07-12 | Sun Microsystems, Inc. | Method and system for entropy driven verification |
US7921333B2 (en) * | 2003-03-19 | 2011-04-05 | Jds Uniphase Corporation | Method and systems for providing data replay, reprocess and retrigger functions in an analyzer |
US6968285B1 (en) * | 2003-04-09 | 2005-11-22 | Hamid Adnan A | Method and apparatus for scenario search based random generation of functional test suites |
US7373619B2 (en) * | 2003-05-10 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Post-silicon test coverage verification |
US7257786B1 (en) * | 2003-08-18 | 2007-08-14 | Synopsys, Inc. | Method and apparatus for solving constraints |
US8225284B2 (en) * | 2003-11-06 | 2012-07-17 | First Data Corporation | Methods and systems for testing software development |
US7444271B2 (en) * | 2004-12-03 | 2008-10-28 | Arm Limited | Scoring mechanism for automatically generated test programs |
US7373626B2 (en) * | 2004-12-06 | 2008-05-13 | Lsi Logic Corporation | Method and timing harness for system level static timing analysis |
US7516430B2 (en) * | 2004-12-23 | 2009-04-07 | International Business Machines Corporation | Generating testcases based on numbers of testcases previously generated |
US7979845B2 (en) * | 2005-04-05 | 2011-07-12 | Cisco Technology, Inc. | Test effort optimization for UI intensive workflows |
US7389215B2 (en) * | 2005-04-07 | 2008-06-17 | International Business Machines Corporation | Efficient presentation of functional coverage results |
US7970594B2 (en) * | 2005-06-30 | 2011-06-28 | The Mathworks, Inc. | System and method for using model analysis to generate directed test vectors |
US7434184B2 (en) * | 2005-08-08 | 2008-10-07 | Zhe Li | Method for detecting flaws in a functional verification plan |
US7428715B2 (en) * | 2005-10-27 | 2008-09-23 | International Business Machines Corporation | Hole query for functional coverage analysis |
US7483824B1 (en) | 2006-03-03 | 2009-01-27 | Azul Systems, Inc. | Self-checking test generator for partially-modeled processors by propagating fuzzy states |
US7926039B2 (en) * | 2006-03-28 | 2011-04-12 | Nec Laboratories America, Inc. | Reachability analysis for program verification |
US8516445B2 (en) * | 2006-08-23 | 2013-08-20 | International Business Machines Corporation | Multi-dimension code coverage |
CN100428252C (zh) * | 2006-09-14 | 2008-10-22 | 华为技术有限公司 | 一种功能覆盖率测试度量系统和方法 |
US7779374B1 (en) | 2006-09-29 | 2010-08-17 | Breker Verification Systems, Inc. | Generating self-checking test cases from reduced case analysis graphs |
US8296697B2 (en) * | 2007-03-19 | 2012-10-23 | Cadence Design Systems, Inc. | Method and apparatus for performing static analysis optimization in a design verification system |
US7617468B2 (en) * | 2007-07-31 | 2009-11-10 | Synopsys, Inc. | Method for automatic maximization of coverage in constrained stimulus driven simulation |
US7904846B2 (en) * | 2007-07-31 | 2011-03-08 | Synopsys, Inc. | Method for automatically extracting a functional coverage model from a constraint specification |
US7831879B2 (en) * | 2008-02-19 | 2010-11-09 | International Business Machines Corporation | Generating test coverage bin based on simulation result |
US8209647B1 (en) | 2008-02-20 | 2012-06-26 | Cadence Design Systems, Inc. | Extensible verification system |
US8549486B2 (en) * | 2008-04-21 | 2013-10-01 | Microsoft Corporation | Active property checking |
US7844929B2 (en) * | 2008-05-08 | 2010-11-30 | Lsi Corporation | Optimizing test code generation for verification environment |
JP2010002370A (ja) * | 2008-06-23 | 2010-01-07 | Fujitsu Ltd | パターン抽出プログラム、方法及び装置 |
US20110271253A1 (en) | 2010-04-28 | 2011-11-03 | International Business Machines Corporation | Enhancing functional tests coverage using traceability and static analysis |
US20110271252A1 (en) * | 2010-04-28 | 2011-11-03 | International Business Machines Corporation | Determining functional design/requirements coverage of a computer code |
US8397200B2 (en) * | 2010-06-29 | 2013-03-12 | Advanced Micro Devices, Inc. | Efficient continuous grading flow for test coverage analysis |
US8667255B2 (en) * | 2010-09-30 | 2014-03-04 | International Business Machines Corporation | Measuring runtime coverage of architectural events of a microprocessor |
JP5767471B2 (ja) * | 2010-12-24 | 2015-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | テストの網羅性を評価する装置及び方法 |
US20130054218A1 (en) * | 2011-08-24 | 2013-02-28 | Ameen Ashraf | Method and Software Tool for Automatically Testing a Circuit Design |
US8510692B2 (en) * | 2011-09-29 | 2013-08-13 | Lexmark International, Inc. | Verification system and method using constrained random test parameter selection |
US9057764B2 (en) | 2011-10-27 | 2015-06-16 | International Business Machines Corporation | Detection of unchecked signals in circuit design verification |
US9244819B2 (en) | 2011-10-31 | 2016-01-26 | International Business Machines Corporation | Attribute value properties for test selection with cartesian product models |
US9217772B2 (en) * | 2012-07-31 | 2015-12-22 | Infineon Technologies Ag | Systems and methods for characterizing devices |
US11468218B2 (en) | 2012-08-28 | 2022-10-11 | Synopsys, Inc. | Information theoretic subgraph caching |
US9720792B2 (en) | 2012-08-28 | 2017-08-01 | Synopsys, Inc. | Information theoretic caching for dynamic problem generation in constraint solving |
US8904320B2 (en) | 2013-03-13 | 2014-12-02 | Synopsys, Inc. | Solving multiplication constraints by factorization |
US10223486B2 (en) | 2013-11-13 | 2019-03-05 | Nxp Usa, Inc. | Static modelling of an electronic device |
US9104826B2 (en) * | 2013-11-13 | 2015-08-11 | Freescale Semiconductor, Inc. | Monitoring coverage for static modelling of an electronic device |
US9665454B2 (en) * | 2014-05-14 | 2017-05-30 | International Business Machines Corporation | Extracting test model from textual test suite |
US9495489B2 (en) * | 2014-06-02 | 2016-11-15 | Freescale Semiconductor, Inc. | Correlation of test results and test coverage for an electronic device design |
US9891281B1 (en) * | 2015-11-30 | 2018-02-13 | Cadence Design Systems, Inc. | Method and system for automatically identifying test runs contributing to coverage events of interest in verification test data |
US9857422B2 (en) | 2016-03-08 | 2018-01-02 | International Business Machines Corporation | Methods and systems for generating functional test patterns for manufacture test |
US10571519B2 (en) | 2016-03-08 | 2020-02-25 | International Business Machines Corporation | Performing system functional test on a chip having partial-good portions |
US10598526B2 (en) | 2016-03-08 | 2020-03-24 | International Business Machines Corporation | Methods and systems for performing test and calibration of integrated sensors |
US11227090B2 (en) * | 2017-02-15 | 2022-01-18 | Michael Alexander Green | System and method for achieving functional coverage closure for electronic system verification |
US10699046B2 (en) * | 2017-02-15 | 2020-06-30 | Michael Alexander Green | System and method for achieving functional coverage closure for electronic system verification |
CN107704384A (zh) * | 2017-09-14 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种加速芯片功能验证收敛的方法及系统 |
US10831961B2 (en) * | 2018-07-14 | 2020-11-10 | Synopsys, Inc. | Automated coverage convergence by correlating random variables with coverage variables sampled from simulation result data |
CN109299530B (zh) * | 2018-09-12 | 2023-07-25 | 成都奥卡思微电科技有限公司 | 一种仿真测试案例生成方法、系统、存储介质和终端 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4937765A (en) * | 1988-07-29 | 1990-06-26 | Mentor Graphics Corporation | Method and apparatus for estimating fault coverage |
JPH0362172A (ja) * | 1989-07-31 | 1991-03-18 | Hitachi Ltd | 論理検証充分性評価方法 |
IL94115A (en) * | 1990-04-18 | 1996-06-18 | Ibm Israel | Dynamic process for creating pseudo-random test templates for pompous hardware design violence |
US5633812A (en) * | 1992-09-29 | 1997-05-27 | International Business Machines Corporation | Fault simulation of testing for board circuit failures |
US5450414A (en) * | 1993-05-17 | 1995-09-12 | At&T Corp. | Partial-scan built-in self-testing circuit having improved testability |
US5748497A (en) * | 1994-10-31 | 1998-05-05 | Texas Instruments Incorporated | System and method for improving fault coverage of an electric circuit |
US5844909A (en) * | 1997-03-27 | 1998-12-01 | Nec Corporation | Test pattern selection method for testing of integrated circuit |
JP3088331B2 (ja) * | 1997-04-10 | 2000-09-18 | 北陸日本電気ソフトウェア株式会社 | 故障シミュレーション方法 |
US6052809A (en) * | 1997-10-16 | 2000-04-18 | Teradyne, Inc. | Method for generating test patterns |
US6675138B1 (en) * | 1999-06-08 | 2004-01-06 | Verisity Ltd. | System and method for measuring temporal coverage detection |
US6647513B1 (en) * | 2000-05-25 | 2003-11-11 | International Business Machines Corporation | Coverage-based test generation for microprocessor verification |
-
2001
- 2001-03-06 US US09/799,065 patent/US7114111B2/en not_active Expired - Lifetime
- 2001-06-03 WO PCT/IL2001/000508 patent/WO2001092903A2/en active Application Filing
- 2001-06-03 IL IL15305001A patent/IL153050A0/xx not_active IP Right Cessation
- 2001-06-03 EP EP01940954A patent/EP1290459A2/en not_active Ceased
- 2001-06-03 AU AU2001274440A patent/AU2001274440A1/en not_active Abandoned
- 2001-06-03 JP JP2002501058A patent/JP5063850B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-13 HK HK03101805.0A patent/HK1049700A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2001092903A3 (en) | 2002-05-30 |
HK1049700A1 (zh) | 2003-05-23 |
JP2003535343A (ja) | 2003-11-25 |
WO2001092903A2 (en) | 2001-12-06 |
IL153050A0 (en) | 2003-06-24 |
AU2001274440A1 (en) | 2001-12-11 |
US7114111B2 (en) | 2006-09-26 |
EP1290459A2 (en) | 2003-03-12 |
US20010010091A1 (en) | 2001-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5063850B2 (ja) | テストカバレージを最大にするための方法および装置 | |
US7281185B2 (en) | Method and apparatus for maximizing and managing test coverage | |
US6321186B1 (en) | Method and apparatus for integrated circuit design verification | |
US11341304B2 (en) | Machine learning based methods and apparatus for integrated circuit design delay calculation and verification | |
EP1374103A2 (en) | System and method for test generation with dynamic constraints using static analysis | |
US20070100784A1 (en) | System and method for automatic design of component libraries | |
US6810372B1 (en) | Multimodal optimization technique in test generation | |
Sun et al. | Test point insertion using artificial neural networks | |
US6990438B1 (en) | Method and apparatus for observability-based code coverage | |
GB2390919A (en) | Generating random circuit design tests using a genetic algorithm | |
Fine et al. | Harnessing machine learning to improve the success rate of stimuli generation | |
Mishra et al. | Analysis of test case prioritization in regression testing using genetic algorithm | |
Habibi et al. | Efficient assertion based verification using TLM | |
Braun et al. | Comparison of Bayesian networks and data mining for coverage directed verification category simulation-based verification | |
Puri et al. | Fast stimuli generation for design validation of rtl circuits using binary particle swarm optimization | |
Cantoro et al. | Automated test program reordering for efficient SBST | |
Esirci et al. | Delay based hardware trojan detection exploiting spatial correlations to suppress variations | |
Romero et al. | Manipulation of training sets for improving data mining coverage-driven verification | |
Aichernig et al. | Towards integrating statistical model checking into property-based testing | |
Varambally et al. | Optimising design verification using machine learning: An open source solution | |
Drechsler et al. | Genetic Alogrithms in Computer Aided Design of Integrated Circuits | |
Tian et al. | A supervised machine learning application in volume diagnosis | |
CN117313650B (zh) | 一种芯片测试验证方法及其应用装置 | |
Alippi et al. | Neural methodology for prediction and identification of non-linear dynamic systems | |
Shen et al. | Priority directed test generation for functional verification using neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080508 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080508 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120315 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120727 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120808 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150817 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |