JP2007026362A - 論理回路の機能検証システム - Google Patents
論理回路の機能検証システム Download PDFInfo
- Publication number
- JP2007026362A JP2007026362A JP2005211409A JP2005211409A JP2007026362A JP 2007026362 A JP2007026362 A JP 2007026362A JP 2005211409 A JP2005211409 A JP 2005211409A JP 2005211409 A JP2005211409 A JP 2005211409A JP 2007026362 A JP2007026362 A JP 2007026362A
- Authority
- JP
- Japan
- Prior art keywords
- coverage
- test vector
- storage unit
- test
- execution time
- 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.)
- Withdrawn
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
【課題】 有限期間内に最適なテストベクトルで最も効果的な検証を行う。
【解決手段】 リファレンスモデル検証手段と、テストベクトル毎のDUTに対するリファレンスモデルの活性化状態(ソースコードカバレッジ/ファンクショナルカバレッジ)を解析する手段と、テスト実行時間を解析する手段と、所定の活性化状態を満足する最短実行時間のテストベクトルセットを選択する手段と、当該最短実行時間のテストベクトルセットでDUTを検証する手段とから構成される論理検証装置。
【選択図】 図1
【解決手段】 リファレンスモデル検証手段と、テストベクトル毎のDUTに対するリファレンスモデルの活性化状態(ソースコードカバレッジ/ファンクショナルカバレッジ)を解析する手段と、テスト実行時間を解析する手段と、所定の活性化状態を満足する最短実行時間のテストベクトルセットを選択する手段と、当該最短実行時間のテストベクトルセットでDUTを検証する手段とから構成される論理検証装置。
【選択図】 図1
Description
本発明は、論理回路の機能検証システムおよび方法に関し、限られた検証期間内に所定の機能検証確度を得ることが可能な効率的なシステムおよび方法に関するものである。
近年、LSIの集積度が飛躍的に向上し、1チップに搭載できる論理回路がますます大規模化、複雑化してきている。これに伴い、論理回路の機能検証に要する期間が非常に長期化しており、LSIの開発期間を短縮する観点から、検証期間を短縮しつつ、かつ検証の信頼性を確保することへの要求が高まっている。
LSIの論理検証に関して、どれだけ検証できているかの検証十分性を測る尺度として機能カバレッジや、RTL(Register Transfer Level)のソースコードカバレッジが知られている。
機能カバレッジは、検証者によって定義されたテストプランの着目するテストアイテム(機能検証項目)が検証されたかを判定する指標になる。機能カバレッジ項目は、検証対象の論理回路、即ち、DUT(Design Under Test)(以下、DUTと呼ぶ)の仕様書からテストすべき項目として抽出された、テストアイテム毎に、当該テストアイテムを十分に検証するのに必要となるパラメータ等をどれだけ網羅すべきかという形で明確化される。具体的には、DUTへの入力信号の種類、DUTの出力信号の種類、DUTの内部信号の状態等、着目すべきパラメータ及びその網羅すべき値がピックアップされる。そして、当該テストアイテムを検証するために作成されたテストのテストベクトルを替えて論理シミュレータ上で実行していき、各テスト即ち各論理シミュレーションにおける当該機能カバレッジを測定し、測定した機能カバレッジの累積が着目するパラメータの予めピックアップされた全ての値を網羅した段階で、当該テストアイテムに関する検証はカバレッジの観点から十分であると判断することができる。但し、各論理シミュレーションにおいて、当該テストアイテムの機能検証を行う上で、必要に応じて、機能カバレッジとは別に、当該機能が正常に動作しているかをチェックすることも必要になる。
一方、RTLのソースコードカバレッジは、論理シミュレーションによりソースコードの各ラインが活性化されたか否かを解析するものである。解析の結果、活性化されない箇所(ライン)があった場合には、それは、テストアイテムの洗い出しの抜け、或いは、作成したテスト上でのテストアイテム検証部の実装抜け、或いは、対応するテストアイテム検証部の実装済みテストの流し忘れ、或いは、DUTが機能仕様書に記載されていない機能を実装していること、或いは、DUTのソースコードに冗長な箇所があることを意味する。前3者の場合は、当該DUTの機能検証として不十分であることが確認でき、後2者の場合は、DUTのソースコードの品質を確認することができる。前者の場合は、抜けたテストアイテムを追加、或いは、テスト内容を追加、或いは、テスト実行を追加して、検証の十分性を確保しなければならない。
一般に、機能検証を効率的に行い検証期間を短縮するための技術としては、シミュレーション実行後に前記機能カバレッジ或いはソースコードカバレッジを検証十分性の指標として用いて、テスト或いはテストベクタをランク付けする、冗長なテストやテストベクトルを特定する検証ツールが知られている。
又、従来例としては、例えば特許文献1をあげることが出来る。
特開2002−41596号公報
しかしながら、上記従来例では、着目するテストアイテムに対して効率的なテスト或いはテストベクトル群を選択するものも出てきてはいるものの、まだ、テストやテストベクトルに冗長なものが含まれており、検証期間に目標以上に時間がかかるという問題点があった。この結果、当該DUTを含むLSIの開発期間が増大し、当該LSIを搭載する製品の市場への投入時期が遅れ、目標とする利益を確保できない等の不利益を被る状況に陥っていた。
本発明は、上述の課題に鑑みてなされたもので、その目的とするところは、限られた検証期間内に所定のテストアイテムに対して所定の確度で検証を行うのに必要なテスト或いはテストベクトルを選択し、限られた時間内に所定の確度を満足しつつ、最も効率的な機能検証システムおよび方法を提供することである。
上記の目的を達成するために本発明による機能検証システムは、以下の構成を備える。即ち、論理回路の機能検証システムであって、複数の条件で実行された検証対象のDUTのリファレンスモデルを用いた複数のシミュレーションに対して、各シミュレーションの実行時間・条件およびシミュレーション結果の所定の検証確度を示す指標の値を対応付けて記憶すると共に当該指標の所定の目標を記憶する記憶手段と、当該記憶した複数のシミュレーション結果の所定の検証確度を示す指標の値とシミュレーション実行時間の値を解析し、当該指標の値の和が所定の目標を満足し、かつ、当該シミュレーション実行時間の値が所定の設定値を満足するシミュレーション条件群を抽出する抽出手段とを有することを特徴とする機能検証システム。
以上説明したように、本発明において、DUTの機能検証に関わり、限られた検証期間内に、所定のテストアイテムに対して所定の確度で検証を行うのに最適なテスト群或いはテストベクトル群を選択することにより、限られた検証期間内に、所定のテストアイテムに対して所定の確度を満足しつつ、最も効率的に機能検証を実行することができるという大きな効果がある。
本発明の実施の形態について図面を参照して説明する。
本発明の実施の形態においては、DUTとDUT検証用のテストベンチおよびテストを論理シミュレータ上で動作させるシミュレーションを、実行することにより動的検証を行うことを想定している。また、テストで用いる各シミュレータの条件となる、DUTおよびその他テストベンチへの入力信号の値、パラメータの値など、設定値の集合をテストベクトルと呼ぶこととする。そして、当該テストベクトルを様々な値を用いることにより、様々なシミュレーションの条件を実現することができる。着目するテストアイテムに関する効率的かつ要求される所定の検証確度を満足する機能検証を行うためには、適切なシミュレーション条件、即ち、テストベクトルを選択してシミュレーションを実行する必要がある。実DUTに対して、様々なテストベクトルを用いてシミュレーションを実行すると、DUTおよびテスト内容によっては非常に時間を要するため、本実施形態においては、先ず、DUTと同等の機能をより抽象度高く実現するリファレンスモデルを用いて、リファレンスモデル用シミュレータおよびリファレンスモデル用テストにより、最適なテストベクトルを選択する。そして、その後、当該テストベクトルを用いて、実DUTに対してシミュレーションを実行し、限られた検証期間内に効率的かつ所定の検証確度を満足する機能検証を行う。尚、本実施形態においては、DUT用とリファレンスモデル用とでテストおよびテストベクトルは同一のものが適用できるものとする。また、本実施形態においては、各テストベクトルを用いたシミュレーションの実行時間を検出し、当該実行時間の値が実行可能時間の設定値以下であれば、シミュレーション実行時間は満足されているとみなす。各テストベクトルを用いたシミュレーションの機能検証確度を測る尺度として、ソースコードカバレッジを用いることを想定している。即ち、着目するテストアイテムに対して所定の部分のソースコードが対応し、シミュレーションにおいて当該部分のソースコードが活性化され、カバレッジが取れていれば、所定の機能検証確度を満足されているとみなす。但し、実際に着目するテストアイテムに関わる機能が所定の仕様を満足するかは別途チェッカ等でチェックする必要があり、チェックするものとする。また、DUTと対応するリファレンスモデルのソースコード及びソースコードカバレッジは一対一に対応するものとする。以下両者を特に区別しない。また、ソースコードカバレッジに関する部分は、以下単にカバレッジと呼ぶこととする。
図1に、本発明の機能検証システムの1実施例を示す。図1において、機能検証システム(1)は、検証対象のDUT(10)、当該DUT(10)の機能検証のためのDUT用テスト(11)、不図示のサーバ上で当該DUT(10)およびDUT用テスト(11)に対する論理シミュレーションを実行するための論理シミュレータ(12)、当該論理シミュレーションにおける当該DUT(10)のソースコードの活性化状態を判定し結果を収集するDUT用カバレッジ収集部(13)、当該DUT(10)と同等の機能を実現する、より高い抽象度でモデル化されたリファレンスモデル(20)、当該リファレンスモデル(20)の機能検証のためのリファレンスモデル用テスト(21)、不図示のサーバ上で当該リファレンスモデル(20)及びリファレンスモデル用テスト(21)に対するシミュレーションを実行するためのリファレンスモデルシミュレータ(22)、当該リファレンスモデルのシミュレーションにおける当該リファレンスモデル(20)のソースコードの活性化状態を判定し結果を収集するリファレンスモデル用カバレッジ収集部(23)、当該リファレンスモデル(20)のシミュレーション時にリファレンスモデル用テスト(21)の入力データとして与えるテストベクトルの集合であるテストベクトル群(31)、当該テストベクトル群(31)を生成するテストベクトル生成部(30)、そして、本発明の機能検証システム(1)の主要部であるテストベクトル抽出部(50)とから構成される。当該テストベクトル抽出部(50)は、記憶部(51)とテストベクトル解析部(52)とから構成される。
記憶部(51)は、以下の各記憶部から構成される。主要な要素は、後述するリファレンスモデル用カバレッジ収集部(23)から得られる各テストベクトルを記憶するテストベクトル記憶部(100)、当該テストベクトルを用いた場合のカバレッジを記憶するカバレッジ記憶部(101)、当該テストベクトルを用いた場合のシミュレーション実行時間を記憶する実行時間記憶部(102)、シミュレーション実行時間に対するカバレッジの取得率を記憶するカバレッジ取得率記憶部(103)、着目するテストアイテムに関する検証確度が十分であることを示す、機能検証の目標となる目標カバレッジを記憶する目標カバレッジ記憶部(104)、シミュレーション実行時間の上限を示す目標実行時間を記憶する目標実行時間記憶部(105)、後述するテストベクトル解析部(52)における複数のカバレッジの加算結果を複数分一時記憶するカバレッジ群候補記憶部(113)、複数の実行時間の加算結果を一時記憶する実行時間積算記憶部(114)、テストベクトル解析部(52)で最終的に抽出された最適なテストベクトル群を記憶するテストベクトル群記憶部(116)、テストベクトル解析部(52)での最終的なテストベクトル群の抽出ができたか否かを示す抽出可否判定を記憶する抽出可否判定記憶部(115)である。判定が否の場合は“0”、可の場合は“1”を格納するものとする。他に、テストベクトル候補を抽出過程で、未達成の中間的な目標カバレッジを達成するための候補となるテストベクトル群を記憶する未達テストベクトル群記憶部(106)、中間的な目標カバレッジを達成するために用いたテストベクトル群を記憶する達成テストベクトル群記憶部(107)、未達テストベクトル群の中で、中間的な目標カバレッジに最も一致するカバレッジを有するテストベクトルを一時記憶するテストベクトル一時記憶部(108)、前記未達カバレッジを記憶する未達カバレッジ記憶部(110)、前記達成カバレッジを記憶する達成カバレッジ記憶部(111)、前記テストベクトル一時記憶部(108)に記憶したテストベクトルのカバレッジを記憶するカバレッジ一時記憶部(112)、テストベクトル解析繰り返し処理毎に当該中間的な目標カバレッジに最も一致するテストベクトルを記憶する初期テストベクトル記憶部(109)がある。尚、カバッレジ群候補記憶部(113)、初期テストベクトル記憶部(109)は、テストベクトル解析繰り返し処理の繰り返し回数分の記憶領域を有するものとする。その数はテストベクトルの数nと一致する。
テストベクトル解析部(52)は、演算制御部(120)、比較部(121)、加算部(122)、削除部(123)とから構成される。比較部(121)は前記カバレッジ記憶部(101)に記憶した各テストベクトルを用いた場合のカバレッジ、或いは、カバレッジ群候補記憶部(113)に記憶した複数のカバレッジを加算した結果のカバレッジ加算結果と未達カバレッジ記憶部(110)に記憶したテストベクトル抽出過程での中間的な目標カバレッジを比較する。また、実行時間、或いは、実行時間積算記憶部(114)に記憶した複数の実行時間を加算した結果の実行時間加算結果と目標実行時間記憶部(105)に記憶した目標実行時間を比較する。加算部(122)は、カバレッジ記憶部(101)に記憶した複数のテストベクトルに対するカバレッジ同士、或いは、カバレッジ記憶部(101)に記憶したテストベクトルに対するカバレッジとカバレッジ群候補記憶部(113)に記憶したカバレッジ加算結果とを加算し、加算結果を記憶部(51)のカバレッジ群候補記憶部(113)に格納する。また、実行時間記憶部(102)に記憶した複数のテストベクトルに対する実行時間同士、或いは、実行時間記憶部(102)に記憶したテストベクトルに対する実行時間と実行時間積算記憶部(114)に記憶した実行時間加算結果とを加算し、加算結果を記憶部(51)の実行時間積算記憶部(114)に格納する。そして、カバレッジの加算結果が目標カバレッジと一致、或いは、目標カバレッジのカバレッジ要素を全て含み、かつ、実行時間の加算結果が目標実行時間と一致、或いは目標実行時間よりも短い場合は、当該加算結果を構成するテストベクトルを最適なテストベクトルとして記憶部(51)のテストベクトル群記憶部(116)に記憶する。削除部(123)はテストベクトル抽出過程での中間的な目標カバレッジが満足された場合、或いは、当該中間的な目標カバレッジを満足するテストベクトル候補が存在しない場合、記憶部(51)の中間バッファ的な各記憶部を削除すると共に、前記加算結果が既に加算されたテストベクトルのカバレッジ以外の目標カバレッジに至っていない場合は、記憶部(51)の前記カバレッジ群候補記憶部(113)に記憶されているカバレッジ加算結果と、前記実行時間積算記憶部(114)に記憶されている実行時間加算結果を削除する。演算制御部(120)は、比較部(121)、加算部(122)、削除部(123)を制御し、記憶部(51)の各記憶部に格納されたデータを処理して、テストベクトル群の抽出工程の制御を司る。また、演算制御部(121)は、後述するテストベクトル群(31)、及び、リファレンスモデル用カバレッジ収集部(23)からのカバレッジデータを記憶部(51)に格納する制御を司る。また、記憶部(51)に記憶している全てのテストベクトルを用いても、所定の目標カバレッジを達成できないことが分かった場合は、後述するテストベクトル生成部(30)を制御して、新たにテストベクトルを生成させる制御を司る。また、リファレンスモデルシミュレータ(22)及びリファレンスモデル用カバレッジ収集部(23)を制御して、前記生成させたテストベクトル群を用いて、リファレンスモデル(20)に対するシミュレーションを実行させ、当該テストベクトルを用いたシミュレーションに対するカバレッジデータを取得し、記憶部(51)に格納する。また、テストベクトルを抽出できた場合、当該論理シミュレータ(12)、DUT用カバレッジ収集部(13)を制御して、当該テストベクトルを用いて、DUT(10)に対するシミュレーションを実行させ、当該テストベクトル群を用いたシミュレーションに対するカバレッジデータを取得し、記憶部(51)に格納する。
尚、本実施例においては、テストベクトルはテストベクトル識別番号を付して記憶し、当該テストベクトルによるカバレッジや実行時間、状態活性化率にもカバレッジ識別番号や実行時間識別番号、状態活性化率識別番号を付して記憶し、テストベクトルとカバレッジ、実行時間、状態活性化率とを対応に合わせて、当該テストベクトル識別番号とカバレッジ識別番号、実行時間識別番号、状態活性化率識別番号とを対応させて記憶するようにする。また、未達テストベクトル群記憶部(106)、達成テストベクトル群記憶部(107)、テストベクトル一時記憶部(108)、初期テストベクトル記憶部(109)、テストベクトル群記憶部(116)には、前記テストベクトル識別番号の組み合わせを記憶するものとする。
また、本実施形態においては、カバレッジに関しては、各カバレッジアイテムを識別番号を付して記憶すると共に、各カバレッジのデータとしては、当該カバレッジアイテム毎に当該カバレッジアイテムの係数、即ち、当該カバレッジアイテムをカバーした回数を記憶するものとする。前記カバレッジアイテムは、ソースコードカバレッジの対象となる、1ライン或いは所定の区分された複数ライン群のことを意味する。
尚、本実施形態の上記各構成要素は、ワークステーション或いはPC上において、主記憶あるいは補助記憶装置に保存され、中央演算処理装置の制御に基づき機能するものとする。
図2は、図1に示した本実施形態の動作を説明する動作フローチャートである。以下、図2の動作フローチャートに基づいて、本実施形態の機能検証システム(1)の主要部分であるテストベクトル抽出部(50)の動作を説明する。尚、演算制御部(120)の制御により、予め、記憶部(51)のテストベクトル記憶部(100)にはテストベクトル生成部(30)で生成されたテストベクトル群(31)の一部のテストベクトル郡のデータが格納されているものとする。
先ず、演算制御部(120)は、S200で、着目するテスト項目に対する目標カバレッジ、目標実行時間を設定し、目標カバレッジを目標カバレッジ記憶部(104)に、目標実行時間を目標実行時間記憶部(105)に格納する。そして、抽出可否判定記憶部(115)に初期値として抽出が出来なかったことを示す“0”を、カバレッジ判定記憶部(116)に初期値として目標カバレッジの達成・未達成を重視しないことを示す“0”を格納する。次に、S201で、前記目標カバレッジ記憶部(104)の目標カバレッジを未達カバレッジ記憶部(110)にコピーする。そして、S202で、テストベクトル記憶部(100)内の各テストベクトルに識別番号i(1、…、n)を付与し、未達テストベクトル群記憶部(106)にコピーする。続いて、S203で、リファレンスモデルシミュレータ(22)を制御して、各テストベクトルiを用いてリファレンスモデル(20)に対するシミュレーションを実行し、リファレンスモデル用カバレッジ収集部(23)より各々のカバレッジデータを取得し、カバレッジ記憶部(101)に、各テストベクトル対応に格納する。次に、S204で、未達テストベクトル記憶部(106)内のテストベクトルで、対応するカバレッジが前記未達カバレッジ記憶部(110)の内容(中間的な目標カバレッジ)と最も一致するテストベクトルを、カバレッジ記憶部(101)のカバレッジと当該未達カバレッジ記憶部(110)の内容(中間的な目標カバレッジ)とを比較部(121)を動作させて抽出し、抽出した当該カバレッジに対応するテストベクトルを、テストベクトル一時記憶部(108)、および、達成テストベクトル群記憶部(107)に格納し、当該カバレッジをカバレッジ一時記憶部(112)、および、カバレッジ群候補記憶部(113)に格納し、当該カバレッジと目標カバレッジの一致部分を達成カバレッジ記憶部(111)に格納する。続いて、S205で、削除部(123)を制御して、テストベクトル一時記憶部(108)内のテストベクトルを未達テストベクトル群記憶部(108)から削除し、前記当該カバレッジと目標カバレッジの一致部分を未達カバレッジ記憶部(110)から削除する。続いて、S206で、達成テストベクトル群記憶部(107)の内容をテストベクトル群記憶部(116)にコピーし、実行時間積算記憶部(114)の値に実行時間を加算する。
次に、S207で、実行時間積算記憶部(114)の内容と目標実行時間記憶部(105)に格納された目標実行時間の内容との大小を、制御部(121)を制御して比較する。S207で、実行時間積算記憶部(114)の内容が、目標実行時間記憶部(105)に格納された目標実行時間の内容よりも大きい場合(Yesの場合)は、S212へ進み、未達カバレッジ記憶部(110)、未達テストベクトル群記憶部(106)、達成カバレッジ記憶部(111)、達成テストベクトル群記憶部(107)、カバレッジ群候補記憶部(113)、テストベクトル群記憶部(116)、実行時間積算記憶部(114)の内容を1つ前の状態に戻す。S207で、Noの場合はS208に進み、達成カバレッジ記憶部(111)の内容が、目標カバッレジ記憶部(104)に格納された目標カバレッジの内容と一致するか、比較部(121)を制御して比較する。S208でYesの場合は、S213で、抽出可否判定記憶部(115)に抽出可を示す“1”を格納し、論理シミュレータ(12)を制御して、前記テストベクトル群を用いてDUT(10)に対するシミュレーションを実行し、DUT用カバレッジ収集部(13)よりカバレッジを取得して、カバッレジ記憶部(101)に格納する。S208でNoの場合、S209に進む。S209で、未達テストベクトル群記憶部(106)内にテストベクトルが存在しないか調べ、存在しない場合はS214に進む。存在する場合はS210に進む。S210で、未達テストベクトル群記憶部(106)内に未達カバレッジ記憶部(110)内のカバレッジを満たすテストベクトルが存在しないか、カバレッジ記憶部(101)内の対応するカバレッジと未達カバレッジ記憶部(110)内の内容とを、比較部(121)を制御して比較する。S210で存在しない場合、S214に進む。S210で存在する場合、S211で、未達テストベクトル群記憶部(106)内のテストベクトルで、対応するカバレッジが前記未達カバレッジ記憶部(110)の内容(中間的な目標カバレッジ)と最も一致するテストベクトルを、カバレッジ記憶部(101)のカバレッジと当該中間的な目標カバレッジとを、比較部(121)を動作させて抽出し、抽出した当該カバレッジに対応するテストベクトルを、テストベクトル一時記憶部(108)、および、達成テストベクトル群記憶部(107)に格納し、当該カバレッジをカバレッジ一時記憶部(112)に格納、及び、カバレッジ群候補記憶部(113)に追加格納し、当該カバレッジと目標カバレッジの一致部分を達成カバレッジ記憶部(111)に追加格納し、S205に戻り、前記工程を繰り返す。S214では、テストベクトルの抽出が行えなかったことを出力・表示する。
図3はテストベクトル群のカバッレジ例を示したものであり、A、B、C,…はソースコードの所定の区分されたライン群に対応するカバレッジを示すものであり、アルファベットを記載した場合に、当該区分に対するカバレッジが取れたことを示すものとする。本例においては、目標カバレッジは、「A、B、C、D、E、F」に対応するカバレッジを取得し、シミュレーション実行時間を4時間としており、これに対して、テストベクトル1では「C、D、E、F、G」と目標カバレッジのうち、「C、D、E、F」はカバーされ、実行時間は2時間となっている。(目標カバレッジには含まれていない、「G」が余計にカバーされている。)
図4は、前記図3に示したテストベクトル群およびカバレッジ、実行時間が与えられた場合に、図2に記載した本発明のテストベクトル解析工程を適用した際の、テストベクトル抽出部(50)の各記憶部の内容の変化を、各ステップとの対応を示しながら、例示したものである。以下、図4を参照して、本発明のテストベクトル解析工程を説明する。
図4は、前記図3に示したテストベクトル群およびカバレッジ、実行時間が与えられた場合に、図2に記載した本発明のテストベクトル解析工程を適用した際の、テストベクトル抽出部(50)の各記憶部の内容の変化を、各ステップとの対応を示しながら、例示したものである。以下、図4を参照して、本発明のテストベクトル解析工程を説明する。
先ず、S200で、目標カバレッジ記憶部(104)に目標カバレッジ「A B C D E F」を、目標実行時間記憶部(105)に目標時間「4 h」を格納し、S201で、未達カバレッジ記憶部(110)に当該目標カバッレジの内容をコピーする。S202で、テストベクトル記憶部(100)に格納されているテストベクトル群の識別番号「1、2、3、4、5」を未達テストベクトル群記憶部(106)に格納する。次に、S204で、未達カバレッジ記憶部(110)の内容(中間的な目標カバレッジ)「A B C D E F」と最も一致する要素の多いテストベクトル1を選択し、識別番号「1」をテストベクトル一時記憶部(108)、達成テストベクトル群記憶部(107)、および、実行時間積算記憶部(114)に格納する。そのカバレッジ「C D E F G」をカバレッジ一時記憶部(112)、および、カバレッジ群候補記憶部(113)に格納する。また、当該カバレッジと中間的な目標カバレッジとの一致部分「C D E F」を達成カバレッジ記憶部(111)に格納する。次に、S205で、テストベクトル一時記憶部(108)内のテストベクトル「1」を未達テストベクトル群記憶部(106)から削除し、「2、3、4、5」を格納する。また、前記当該テストベクトル「1」のカバレッジと中間的な目標カバレッジとの一致部分を未達カバレッジ記憶部(110)から削除し、「A B」を格納する。続いて、S206で、達成テストベクトル群記憶部(107)の内容「1」をテストベクトル群記憶部(116)に格納し、実行時間積算記憶部(114)の値に実行時間「2 h」を加算し、実行時間積算記憶部(114)に格納する。この後、S207で、実行時間積算記憶部(114)の内容が目標実行時間を超えていないか調べ、この場合はまだ超えていないため、S208に進む。その後、S208で、達成カバレッジ記憶部(111)の内容が目標カバレッジを満たすか調べ、この場合はまだ満たしていないため、S211に進む。
次に、S211で、未達カバレッジ記憶部(110)の内容「A B」と最も一致する要素の多いテストベクトル5を選択し、識別番号「5」をテストベクトル一時記憶部(108)に格納すると共に、達成テストベクトル群記憶部(107)に追加し、「1、5」を格納する。そのカバレッジ「A B C」をカバレッジ一時記憶部(112)に格納すると共に、カバレッジ群候補記憶部(113)に追加し、「A B 2C D E F G」を格納、実行時間積算記憶部(114)に「5 h(2 h + 3 h)」を格納する。また、当該カバレッジと中間的な目標カバレッジとの一致部分「A B」を達成カバレッジ記憶部(111)に追加し、「A B C D E F」を格納する。次に、S205で、テストベクトル一時記憶部(108)内のテストベクトル識別番号「5」を未達テストベクトル群記憶部(106)から削除し、「2、3、4」を格納する。また、当該テストベクトル5のカバレッジと中間的な目標カバレッジとの一致部分「A B」を未達カバレッジ記憶部(110)から削除し、「 」(空)を格納する。続いて、S206で、達成テストベクトル群記憶部(107)の内容「1、5」をテストベクトル群記憶部(116)に格納し、実行時間積算記憶部(114)の値に実行時間「3 h」を加算し、実行時間積算記憶部(114)に格納する。この後、S207で、実行時間積算記憶部(114)の内容が目標実行時間を超えていないか調べ、この場合は超えているため、S212に進み、S212で、未達カバレッジ記憶部(110)、未達テストベクトル群記憶部(106)、達成カバレッジ記憶部(111)、達成テストベクトル群記憶部(107)、カバレッジ群候補記憶部(113)、テストベクトル群記憶部(116)、実行時間積算記憶部(114)の内容を1つ前の状態に戻す。次に、S208で、達成カバレッジ記憶部(111)の内容が目標カバレッジを満たすか調べ、この場合はまだ満たしていないため、S211に進む。
次に、S211で、未達カバレッジ記憶部(110)の内容「A B」と最も一致する要素の多いテストベクトル2を選択し、識別番号「2」をテストベクトル一時記憶部(108)に格納すると共に、達成テストベクトル群記憶部(107)に追加し、「1、2」を格納する。そのカバレッジ「A C」をカバレッジ一時記憶部(112)に格納すると共に、カバレッジ群候補記憶部(113)に追加し、「A 2C D E F G」を格納、実行時間積算記憶部(114)に「3 h(2 h + 1 h)」を格納する。また、当該カバレッジと中間的な目標カバレッジとの一致部分「A」を達成カバレッジ記憶部(111)に追加し、「A C D E F」を格納する。次に、S205で、テストベクトル一時記憶部(108)内のテストベクトル識別番号「2」を未達テストベクトル群記憶部(106)から削除し、「3、4」を格納する。また、当該テストベクトル2のカバレッジと中間的な目標カバレッジとの一致部分「A」を未達カバレッジ記憶部(110)から削除し、「B」を格納する。続いて、S206で、達成テストベクトル群記憶部(107)の内容「1、2」をテストベクトル群記憶部(116)に格納し、実行時間積算記憶部(114)の値に実行時間「1 h」を加算し、実行時間積算記憶部(114)に格納する。この後、S207で、実行時間積算記憶部(114)の内容が目標実行時間を超えていないか調べ、この場合はまだ超えていないため、S208に進む。その後、S208で、達成カバレッジ記憶部(111)の内容が目標カバレッジを満たすか調べ、この場合はまだ満たしていないため、S211に進む。
次に、S211で、未達カバレッジ記憶部(110)の内容「B」と最も一致する要素の多いテストベクトル3を選択し、識別番号「3」をテストベクトル一時記憶部(108)に格納すると共に、達成テストベクトル群記憶部(107)に追加し、「1、2、3」を格納する。そのカバレッジ「B D G」をカバレッジ一時記憶部(112)に格納すると共に、カバレッジ群候補記憶部(113)に追加し、「A B 2C 2D E F 2G」を格納、実行時間積算記憶部(114)に「4 h(3 h + 1 h)」を格納する。また、当該カバレッジと中間的な目標カバレッジとの一致部分「B」を達成カバレッジ記憶部(111)に追加し、「A B C D E F」を格納する。次に、S205で、テストベクトル一時記憶部(108)内のテストベクトル識別番号「3」を未達テストベクトル群記憶部(106)から削除し、「4」を格納する。また、当該テストベクトル3のカバレッジと中間的な目標カバレッジとの一致部分「B」を未達カバレッジ記憶部(110)から削除し、「 」(空)を格納する。続いて、S206で、達成テストベクトル群記憶部(107)の内容「1、2、3」をテストベクトル群記憶部(116)に格納し、実行時間積算記憶部(114)の値に実行時間「4 h」を加算し、実行時間積算記憶部(114)に格納する。この後、S207で、実行時間積算記憶部(114)の内容が目標実行時間を超えていないか調べ、この場合はまだ超えていないため、S208に進む。その後、S208で、達成カバレッジ記憶部(111)の内容が目標カバレッジを満たすか調べ、この場合は満たしているため、S213に進む。
上記のようにして、本実施形態により、限られた検証期間内に所定のテストアイテムに対して所定の確度で検証を行うのに最適なテストベクトル群を選択し、限られた期間内に所定の確度を満足しつつ、最も効率的な機能検証システムおよび方法を提供することができる。
また、本実施形態においては、ソースコードカバレッジを、着目するテストアイテムに関わる各テストベクトルを用いたシミュレーションの機能検証確度を測る尺度として用いるため、本発明により抽出されたテストベクトル群を用いて、当該テストアイテムに関わるDUTの活性化の十分性を保証した上で、機能検証を効率的に実行することができるという大きな効果がある。
尚、本実施形態においては、テストベクトル群抽出過程で、中間的な目標カバレッジを満足する複数のテストベクトルがあった場合に、識別番号の若いテストベクトルをまず選択するものとしたが、複数のテストベクトル候補が挙がった場合に、どちらを選択するかは、老い番等他の順番でも良いことは言うまでもない。
また、本実施形態においては、図3に示したように、A、B、C,…の如く、ソースコードの所定の区分されたライン群に対応するカバレッジをまとめて考えたが、ソースコードカバレッジは実際にはライン毎に当該ラインが何回活性化されたかを表すヒット数で通常カバレッジ結果が示されるので、カバレッジが取れたか否かは、ライン毎に考えても良いことは言うまでもない。また、カバレッジの加算結果を比較する場合も、カバレッジをライン毎に考える場合は、ライン毎にヒット数を加算するのでも良いことは言うまでもない。
また、本実施形態においては、DUT用とリファレンスモデル用とで、テスト、テストベクトル、及び、カバレッジが同一となるものとしたが、両者で同一とならない場合でも、両者でその対応を取ることにより、リファレンスモデルから抽出したテストベクトル群に対応した、DUT用のテストベクトル群を抽出することができることは明らかである。具体的には、リファレンスモデル用と、DUT用とで、各々、テスト、テストベクトル、カバレッジに関して、両者で異なる部分をピックアップして、双方で相違する部分を対応が取れるように当該対応情報を記憶手段に格納すれば良い。
また、本実施形態においては、まず、DUTと同等の機能をより抽象度高く実現するリファレンスモデルを用いて、リファレンスモデル用シミュレータおよびリファレンスモデル用テストにより、最適なテストベクトルを選択し、その後、DUTに対して最適なテストベクトルでシミュレーションを実行するものとしたが、最初から実DUTに対して様々なテストベクトルでシミュレーションを実行し、その中からリグレッションテスト用に効率的かつ所定の検証確度を満足するための最適なテストベクトルを選択するような場合にも、本発明のテストベクトル解析の方法は適用できることは言うまでもない。
また、本実施形態においては、初めにある程度のテストベクトル群を生成して、それに対してカバレッジを取得して、テストベクトルを評価し、所定の目標カバレッジを満足しない場合は新たにテストベクトルを生成し、追加するようにしたが、テストベクトルを生成する毎に、カバレッジを取得して、カバレッジへの貢献度を評価し、順次、テストベクトル群を探索して行くようにしても良いことは言うまでもない。
また、本実施形態においては、1つのテストアイテムに関わる同一のテストに対して、様々なテストベクトルを与えて、様々なシミュレーション条件を実現することを想定したが、テストベクトルとテストを一体化して捉えて、様々なテストベクトルを含む様々なテストを実行することにより、様々なシミュレーション条件を実現することを想定しても良いことは言うまでもない。また、複数のテストアイテムに対して複数(テストアイテム数と異なっても良い)のテストを想定しても良いことも言うまでもない。
また、本実施形態においては、テストベクトルを抽出する方法として、まず目標カバレッジに最も一致するテストベクトルを選択して、当該テストベクトルのカバレッジでもまだカバーされていない部分を中間的な目標カバレッジとして、更に、カバレッジが当該中間的な目標カバレッジに最も一致する他のテストベクトルを選択するものとしたが、テストベクトルの抽出方法としては、本実施形態の方法に限らず、例えば、目標カバレッジの或る要素を用意されたテストベクトルの中で唯一カバーするようなテストベクトル群を先ず、選択し、残りの要素をカバーするテストベクトルを本実施形態の如く一致度の高いテストベクトルから抽出して行くという方法でも良い。例えば、テストベクトル群が図5の場合、目標カバレッジ内の要素Bをカバーするテストベクトルはテストベクトル5のみのため、先ず、テストベクトル5が候補として抽出され、次に、目標カバレッジから、テストベクトル5のカバレッジと、目標カバレッジの一致部分「A B C」を除く、「D E F」をカバーするテストベクトルを抽出して行く。また、他に効率的な抽出方法があれば、別の方法でも良い。
また、本実施形態においては、テストベクトルを抽出する方法として、目標カバレッジに最も一致するテストベクトルを選択するものとしたが、実行時間の短いテストベクトルから選択する方法でも良い。また、カバレッジ取得率の高いテストベクトルから選択する方法でも良い。
また、本実施形態においては、テストベクトル群抽出過程において、候補となるテストベクトル及びカバレッジを一時記憶する各々テストベクトル一時記憶部及びカバレッジ一時記憶部を設ける例を示したが、当該一時記憶部を設けずに、テストベクトル及びカバレッジの元データを記憶するテストベクトル記憶部及びカバレッジ記憶部から各々データを直接参照して演算するようにしても良いことは言うまでも無い。
また、本実施形態においては、実行時間が目標実行時間を超過した場合は再度テストベクトルを抽出するものとしたが、目標実行時間を超過した時点でエラー終了するようにしても良い。
また、本実施形態においては、未達テストベクトルが存在しない場合と、未達テストベクトル内に未達カバレッジのカバレッジを満たすテストベクトルが存在しない場合は、テストベクトル抽出不可能として終了するものとしたが、新たにテストベクトルを生成し、カバレッジを取得して、カバレッジへの貢献度を評価し、順次、テストベクトル群を探索して行くようにしても良いことは言うまでもない。ここで、テストベクトルを生成する回数に上限を設けるようにしても良い。
1 機能検証システム
10 DUT
11 DUT用テスト
12 論理シミュレータ
13 DUT用カバレッジ収集部
20 リファレンスモデル
21 リファレンスモデル用テスト
22 リファレンスモデルシミュレータ
23 リファレンスモデル用カバレッジ収集部
30 テストベクトル生成部
31 テストベクトル群
50 テストベクトル抽出部
51 記憶部
52 テストベクトル解析部
100 テストベクトル記憶部
101 カバレッジ記憶部
102 実行時間記憶部
103 カバレッジ取得率群記憶部
104 目標カバレッジ記憶部
105 目標実行時間記憶部
106 未達テストベクトル群記憶部
107 達成テストベクトル群記憶部
108 テストベクトル一時記憶部
109 初期テストベクトル群記憶部
110 未達カバレッジ記憶部
111 達成カバレッジ群記憶部
112 カバレッジ一時記憶部
113 カバレッジ群候補記憶部
114 実行時間積算記憶部
115 抽出可否判定記憶部
116 テストベクトル群記憶部
120 演算制御部
121 比較部
122 加算部
123 削除部
10 DUT
11 DUT用テスト
12 論理シミュレータ
13 DUT用カバレッジ収集部
20 リファレンスモデル
21 リファレンスモデル用テスト
22 リファレンスモデルシミュレータ
23 リファレンスモデル用カバレッジ収集部
30 テストベクトル生成部
31 テストベクトル群
50 テストベクトル抽出部
51 記憶部
52 テストベクトル解析部
100 テストベクトル記憶部
101 カバレッジ記憶部
102 実行時間記憶部
103 カバレッジ取得率群記憶部
104 目標カバレッジ記憶部
105 目標実行時間記憶部
106 未達テストベクトル群記憶部
107 達成テストベクトル群記憶部
108 テストベクトル一時記憶部
109 初期テストベクトル群記憶部
110 未達カバレッジ記憶部
111 達成カバレッジ群記憶部
112 カバレッジ一時記憶部
113 カバレッジ群候補記憶部
114 実行時間積算記憶部
115 抽出可否判定記憶部
116 テストベクトル群記憶部
120 演算制御部
121 比較部
122 加算部
123 削除部
Claims (5)
- 論理回路を論理シミュレーションにより機能検証するシステムであって、
記憶手段と、
テストベクトル解析手段と、
から構成され、
前記テストベクトル解析手段は、
シミュレーション実行を制御すると共に、
当該テストベクトルと、
当該シミュレーションにおける着目するテストアイテムに関わるカバレッジと、
前記テストアイテムに関わる前記カバレッジが十分であることを示す目標カバレッジと、
当該シミュレーションの実行時間と、
当該シミュレーションの実行可能時間を示す目標実行時間と、
を前記記憶手段に対応付けて記憶し、
前記カバレッジの値を加算する手段と、
当該カバレッジ加算結果と前記目標カバレッジとを比較する手段と、
前記実行時間の値を加算する手段と、
当該実行時間加算結果と前記目標実行時間とを比較する手段、
により、当該カバレッジ加算結果が、前記目標カバレッジを満足し、かつ、当該実行時間加算結果が、前記目標実行時間を超過しないこと、を判断し、
当該判断に誤りがある場合は、当該テストベクトルを削除する手段、
により、当該テストベクトルを削除し、当該判断に誤りがない場合は、当該テストベクトルを抽出すること、
を特徴とする機能検証システム。 - 前記指標として当該テストアイテムに関わる部分の当該論理回路のソースコードカバレッジを用いること、
を特徴とする請求項1記載の機能検証システム。 - 前記指標として当該テストアイテムに関わり定義された機能カバレッジアイテムに関する機能カバレッジを用いること、
を特徴とする請求項1記載の機能検証システム。 - 前記指標として論理回路の端子或いは内部信号の活性化状態の有無を用いること、
を特徴とする請求項1記載の機能検証システム。 - 前記指標として当該テストアイテムに関わる部分の論理回路のソースコードカバレッジ及び当該テストアイテムに関わり定義された機能カバレッジアイテムに関する機能カバレッジの双方を用いること、
を特徴とする請求項1記載の機能検証システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005211409A JP2007026362A (ja) | 2005-07-21 | 2005-07-21 | 論理回路の機能検証システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005211409A JP2007026362A (ja) | 2005-07-21 | 2005-07-21 | 論理回路の機能検証システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007026362A true JP2007026362A (ja) | 2007-02-01 |
Family
ID=37786998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005211409A Withdrawn JP2007026362A (ja) | 2005-07-21 | 2005-07-21 | 論理回路の機能検証システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007026362A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104977483A (zh) * | 2014-04-14 | 2015-10-14 | 吕俊毅 | 测试装置、测试系统以及测试方法 |
US11669773B2 (en) | 2019-10-21 | 2023-06-06 | Samsung Electronics Co., Ltd. | Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same |
-
2005
- 2005-07-21 JP JP2005211409A patent/JP2007026362A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104977483A (zh) * | 2014-04-14 | 2015-10-14 | 吕俊毅 | 测试装置、测试系统以及测试方法 |
US11669773B2 (en) | 2019-10-21 | 2023-06-06 | Samsung Electronics Co., Ltd. | Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707268B2 (en) | Testing operations of software | |
US8601416B2 (en) | Method of circuit design yield analysis | |
JP4955559B2 (ja) | 集積回路の歩留り及び品質の分析の方法及びシステム | |
JP3833982B2 (ja) | テストパターン選択装置、テストパターン選択方法、及びテストパターン選択プログラム | |
US8209650B2 (en) | Method and system for entry and verification of parasitic design constraints for analog integrated circuits | |
Liou et al. | Modeling, testing, and analysis for delay defects and noise effects in deep submicron devices | |
JP2001273160A (ja) | テストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体 | |
US6993470B2 (en) | Method of evaluating test cases in a simulation environment by harvesting | |
CN101014955A (zh) | 特征故障相关 | |
Dworak et al. | Defect-oriented testing and defective-part-level prediction | |
US11301608B2 (en) | Layout-based side-channel emission analysis | |
TW200842570A (en) | Method for enhancing the diagnostic accuracy of a VLSI chip | |
US20190018917A1 (en) | Hybrid timing analysis method and associated system and non-transitory computer readable medium | |
Pomeranz et al. | A measure of quality for n-detection test sets | |
Hashempour et al. | Test time reduction in analogue/mixed-signal devices by defect oriented testing: An industrial example | |
Chen et al. | Fast node merging with don't cares using logic implications | |
US6725187B1 (en) | Latch inference using dataflow analysis | |
US7559042B2 (en) | Layout evaluating apparatus | |
US7698666B2 (en) | Method and system for model-based design and layout of an integrated circuit | |
JP2007026362A (ja) | 論理回路の機能検証システム | |
Tam et al. | SLIDER: Simulation of layout-injected defects for electrical responses | |
US7653519B1 (en) | Method and mechanism for modeling interconnect structures for integrated circuits | |
JP4080464B2 (ja) | 検証ベクタ生成方法およびこれを用いた電子回路の検証方法 | |
US6763507B2 (en) | System and method for testing abstracted timing models | |
JP3955301B2 (ja) | デジタル回路を検証するための方法、装置、プログラムおよびプログラムを格納したデジタル記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081007 |