JP2010203937A - テスト装置、テスト方法、およびプログラム - Google Patents
テスト装置、テスト方法、およびプログラム Download PDFInfo
- Publication number
- JP2010203937A JP2010203937A JP2009050278A JP2009050278A JP2010203937A JP 2010203937 A JP2010203937 A JP 2010203937A JP 2009050278 A JP2009050278 A JP 2009050278A JP 2009050278 A JP2009050278 A JP 2009050278A JP 2010203937 A JP2010203937 A JP 2010203937A
- Authority
- JP
- Japan
- Prior art keywords
- test vector
- vector data
- data
- input signal
- error
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56004—Pattern generation
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】ハードウェアの機能検証の効率を上げて検証期間を短縮すること。
【解決手段】テスト装置1は、オリジナルテストベクタデータを記憶するベクタ記憶部4と、ベクタ記憶部4に記憶されているオリジナルテストベクタデータから、オリジナルテストベクタデータとは異なる生成テストベクタデータを生成するベクタ生成部13と、テストベクタデータを出力する出力部14と、入力信号の誤り発生率を記憶する誤り発生率記憶部4と、乱数データを発生する乱数発生部11と、入力信号の誤り発生率と乱数データとを比較する比較部12とを有する。そして、ベクタ出力部14は、入力信号の誤り発生率より乱数データが小さい場合、生成テストベクタデータを出力し、入力信号の誤り発生率より乱数データが大きい場合、オリジナルテストベクタデータを出力する。
【選択図】図1
【解決手段】テスト装置1は、オリジナルテストベクタデータを記憶するベクタ記憶部4と、ベクタ記憶部4に記憶されているオリジナルテストベクタデータから、オリジナルテストベクタデータとは異なる生成テストベクタデータを生成するベクタ生成部13と、テストベクタデータを出力する出力部14と、入力信号の誤り発生率を記憶する誤り発生率記憶部4と、乱数データを発生する乱数発生部11と、入力信号の誤り発生率と乱数データとを比較する比較部12とを有する。そして、ベクタ出力部14は、入力信号の誤り発生率より乱数データが小さい場合、生成テストベクタデータを出力し、入力信号の誤り発生率より乱数データが大きい場合、オリジナルテストベクタデータを出力する。
【選択図】図1
Description
本発明は、検査対象の回路に入力される入力信号を記述したテストベクタデータを用いて、検査対象の回路をテストするテスト装置、テスト方法、およびプログラムに関する。
近年、電子回路を用いたシステムの高機能化・複雑化が進んでいる。それに伴い、システムに搭載されるハードウェアの回路規模が大きくなり、複雑さも増している。システムの設計において、ハードウェア・ソフトウェアの検証は、システムが仕様通りに動作することを保証する上でとても重要である。
ハードウェア設計では、機能検証が設計期間の大部分を占める。回路規模の増大・複雑化に伴い、機能検証にかかる工数も増加している。このような背景のもと、機能検証を短縮するための方策が考えられている。検証期間を短縮するための方法としては、ハードウェアシミュレーションの速度を上げることにより検証期間を短縮する方法や、テストベクタデータをランダムで生成させる方法などが考えられている。
テストベクタの作成手法と、テストベクタに関連する検証手法は、特許文献1から3に開示されている。
特許文献1は、故障シミュレータを開示する。この故障シミュレータは、動作モードに応じて活性化する構成部分が異なる集積回路の故障シミュレーションを実行するものであり、回路の設計データに基づいてテストベクタを分類する。そして、分類したテストベクタを用いて集積回路の故障シミュレーションを動作モード毎に行う。
特許文献2は、テストパターン生成プログラムを開示する。このテストパターン生成プログラムでは、ネットリストに基づいて回路の端子情報を生成し、生成された端子情報の端子を活性化する活性化テストシーケンスを選択し、この活性化テストシーケンスを用いてテストシーケンスを生成する。
特許文献3は、信号情報など試験用テストデータに含まれる情報を種類ごとに分類して中間データを作成し、中間データにフェイル情報を追加し、故障解析用テストデータを作成する。
このように、これら特許文献1から3では、回路情報や故障情報などを用いてテストベクタを作成し、または、回路情報や故障情報などを用いて適切なテストベクタを選択している。
ところで、現実の生産現場では、ハードウェア機能検証は、テストベクタデータによる検証と、ランダムベクタデータによる検証とを組み合わせて検証する場合が多い。
そして、テストベクタデータによる検証では、設計者がベクタを作成する。そのため、ハードウェアの不具合を検出する可能性の高い、検証対象の回路に適した良質のテストベクタデータを作成し、検証することができる。
しかしながら、人手によってテストベクタデータを作成する場合、テストベクタデータの作成に時間と手間がかかる。その結果、短い設計期間において十分なテストベクタデータを作成することが極めて困難である。また、作成したテストベクタデータ以外のベクタデータでの検証はできない。
しかしながら、人手によってテストベクタデータを作成する場合、テストベクタデータの作成に時間と手間がかかる。その結果、短い設計期間において十分なテストベクタデータを作成することが極めて困難である。また、作成したテストベクタデータ以外のベクタデータでの検証はできない。
その一方で、ランダムベクタデータによる検証では、ランダムベクタデータが人手によらずに生成されるので、ベクタデータの作成に時間がかからない。
しかしながら、ランダムベクタデータには、人手によるテストベクタデータとしては作成され得ないベクタデータが含まれる。そのため、ランダムベクタデータによる検証では、検証するベクタデータの数が増大し、テストベクタデータによる検証に比べてシミュレーション期間が延びてしまう。
しかしながら、ランダムベクタデータには、人手によるテストベクタデータとしては作成され得ないベクタデータが含まれる。そのため、ランダムベクタデータによる検証では、検証するベクタデータの数が増大し、テストベクタデータによる検証に比べてシミュレーション期間が延びてしまう。
その結果、現実の生産現場では、テストベクタデータによる検証と、ランダムベクタデータによる検証とを組み合わせてハードウェア機能を検証したとしても、短期間で十分なハードウェア機能の検証を終えることが困難である。
本発明は、ハードウェアの機能検証の効率を上げて検証期間を短縮することができるテスト装置、テスト方法、およびプログラムを提供することを目的とする。
本発明の第一の観点のテスト装置は、検査対象の回路に入力される入力信号を記述したオリジナルテストベクタデータを記憶するベクタ記憶部と、ベクタ記憶部に記憶されているオリジナルテストベクタデータから、オリジナルテストベクタデータとは異なる生成テストベクタデータを生成するベクタ生成部と、検査対象の回路へ入力するテストベクタデータを出力する出力部と、オリジナルテストベクタデータに記述された入力信号の誤り発生率を記憶する誤り発生率記憶部と、乱数データを発生する乱数発生部と、誤り発生率記憶部に記憶された入力信号の誤り発生率と乱数データとを比較する比較部とを有し、ベクタ出力部は、入力信号の誤り発生率より乱数データが小さい場合、生成テストベクタデータを出力し、入力信号の誤り発生率より乱数データが大きい場合、オリジナルテストベクタデータを出力する。
好適には、テスト装置は、さらに、検査対象の回路に入力される標準的な入力信号を記述した標準テストベクタデータから、検査対象の回路へ入力され得る標準的な入力信号とは異なる入力信号を記述した検証テストベクタデータを生成するための変換ルールが記述された変換プログラムを記憶するプログラム記憶部を有し、ベクタ生成部は、変換プログラムを実行して、オリジナルテストベクタデータから生成テストベクタデータを生成してもよい。
本発明の第二の観点のテスト方法は、検査対象の回路に入力される入力信号を記述したオリジナルテストベクタデータを記憶する記憶部から、オリジナルテストベクタデータを読み込むステップと、乱数データを発生するステップと、オリジナルテストベクタデータに記述された入力信号の誤り発生率を記憶する記憶部から、読み込まれたオリジナルテストベクタデータに対応する入力信号の誤り発生率を読み込むステップと、発生した乱数データと読み込んだ入力信号の誤り発生率とを比較する比較ステップと、読み込んだオリジナルテストベクタデータから、オリジナルテストベクタデータとは異なる生成テストベクタデータを生成する生成ステップと、検査対象の回路に入力させるテストベクタデータを出力する出力ステップとを有し、比較ステップにおいて入力信号の誤り発生率より乱数データが小さい場合、生成ステップにより生成テストベクタデータを生成し、出力ステップにおいて、生成ステップで生成された生成テストベクタデータを出力し、比較ステップにおいて入力信号の誤り発生率より乱数データが大きい場合、出力ステップにおいて、オリジナルテストベクタデータを出力する。
本発明の第三の観点のプログラムは、記憶部および処理回路を有し、検査対象の回路をテストするテスト装置として機能するコンピュータに、記憶部に記憶され、検査対象の回路に入力される入力信号を記述したオリジナルテストベクタデータを記憶部から読み込む手順と、乱数データを発生する手順と、記憶部に記憶され、オリジナルテストベクタデータに記述された入力信号の誤り発生率を記憶部から読み込むステップと、発生した乱数データと、読み込んだ入力信号の誤り発生率とを比較する比較手順と、読み込んだオリジナルテストベクタデータから、オリジナルテストベクタデータとは異なる生成テストベクタデータを生成する生成手順と、検査対象の回路に入力させるテストベクタデータを出力する出力手順とを実行させ、比較手順において入力信号の誤り発生率より乱数データが小さい場合には、生成手順により生成テストベクタデータを生成させ、出力手順において、生成手順で生成された生成テストベクタデータを出力させ、比較手順において入力信号の誤り発生率より乱数データが大きい場合には、出力手順において、オリジナルテストベクタデータを出力させる。
第一から第三の観点では、オリジナルテストベクタデータからテストベクタデータを生成する。したがって、ユーザは、検証に用いるすべてのテストベクタデータを生成する必要が無い。そして、ユーザによるテストベクタデータの生成期間を短縮できる。
しかも、第一から第三の観点では、各オリジナルテストベクタデータは、それぞれが対応する入力信号の信号誤りの発生確率において生成テストベクタデータへ変換される。すなわち、第一から第三の観点では、オリジナルテストベクタデータに記述された入力信号に、その信号の誤り発生確率で誤りが発生している状況をテストすることができる。
また、第一から第三の観点では、生成テストベクタデータは、オリジナルテストベクタデータを変換して生成している。すなわち、生成するベクタデータのランダム性が制限されている。したがって、ランダムベクタデータによる検証の場合のように、自動生成するベクタデータの増大が抑制される。
しかも、第一から第三の観点では、各オリジナルテストベクタデータは、それぞれが対応する入力信号の信号誤りの発生確率において生成テストベクタデータへ変換される。すなわち、第一から第三の観点では、オリジナルテストベクタデータに記述された入力信号に、その信号の誤り発生確率で誤りが発生している状況をテストすることができる。
また、第一から第三の観点では、生成テストベクタデータは、オリジナルテストベクタデータを変換して生成している。すなわち、生成するベクタデータのランダム性が制限されている。したがって、ランダムベクタデータによる検証の場合のように、自動生成するベクタデータの増大が抑制される。
本発明では、ハードウェアの機能検証の効率を上げて検証期間を短縮することができる。
以下、本発明の実施形態を図面に関連付けて説明する。なお、説明は、以下の順番で行う。
1.第1実施形態(入力信号毎の誤り発生確率によりオリジナルテストベクタを変換してテストベクタデータを生成し、検証する例。)
2.第2実施形態(他の入力信号の誤り発生に応じて入力信号の誤り発生確率を変化させる例。)
1.第1実施形態(入力信号毎の誤り発生確率によりオリジナルテストベクタを変換してテストベクタデータを生成し、検証する例。)
2.第2実施形態(他の入力信号の誤り発生に応じて入力信号の誤り発生確率を変化させる例。)
<第1実施形態>
[テスト装置の構成]
本発明の第1実施形態に係るテスト装置は、検査対象の回路(DUT:Design Under Test)を記述した回路記述プログラムをシミュレーションして、その回路の機能を検査するものである。また、テスト装置は、回路記述プログラムのシミュレーションにおいて、ユーザが作成したテストベクタデータを信号の誤り発生確率により変換してシミュレーションを実行できる。
[テスト装置の構成]
本発明の第1実施形態に係るテスト装置は、検査対象の回路(DUT:Design Under Test)を記述した回路記述プログラムをシミュレーションして、その回路の機能を検査するものである。また、テスト装置は、回路記述プログラムのシミュレーションにおいて、ユーザが作成したテストベクタデータを信号の誤り発生確率により変換してシミュレーションを実行できる。
回路記述プログラムは、検査対象の回路を記述したプログラムであればよい。
このような回路記述プログラムとしては、たとえばRTL(Register Transfer Level)で記述されたハードウェアモデルプログラムがある。
この他にも、回路記述プログラムは、RTLより抽象度が低いゲートレベルで記述されたハードウェアモデルプログラム、またはRTLより抽象度が高い動作レベルで記述されたプログラムでもよい。
また、回路を記述するプログラム言語は、たとえば、SystemCなどの回路を動作レベルで記述できる言語、Verilog、VHDLなどの記述言語であればよい。
このような回路記述プログラムとしては、たとえばRTL(Register Transfer Level)で記述されたハードウェアモデルプログラムがある。
この他にも、回路記述プログラムは、RTLより抽象度が低いゲートレベルで記述されたハードウェアモデルプログラム、またはRTLより抽象度が高い動作レベルで記述されたプログラムでもよい。
また、回路を記述するプログラム言語は、たとえば、SystemCなどの回路を動作レベルで記述できる言語、Verilog、VHDLなどの記述言語であればよい。
テストベクタデータは、検査対象の回路に入力される入力信号を記述したデータである。テストベクタデータは、後述する図5に例示するように、入力信号の波形を0(ローレベル)と1(ハイレベル)のデータ列で記述したデータである。
図1は、第1実施形態に係るテスト装置1を示す概略構成図である。図2は、図1のテスト装置1の詳細な構成図である。
なお、図1のテスト装置1は、記憶部と、入力部と、出力部と、これらに接続された処理回路とを有するコンピュータにおいて、処理回路が、記憶部に記憶されているプログラムを実行することで実現できる。この場合、処理回路は、図1および図2に示す各種の機能のための処理を実行する。また、コンピュータにテスト装置1を実現するためのプログラムは、CD−ROM(Compact Disc Read-Only Memory)などのコンピュータ読取可能な記録媒体に記録されたものをコンピュータにインストールしたものであればよい。また、プログラムは、ネットワークなどの伝送媒体を通じてサーバからダウンロードしたものをコンピュータにインストールしたものであってもよい。
図1のテスト装置1は、EDA(Electronic Design Automation)部2と、シミュレーション部3とを有する。EDA部2は、さらに、記憶部4と、ベクタテスト部6と、誤り生成部(フォールトジェネレータ)7とを有する。EDA部2は、シミュレーション部3へテストベクタを出力する。
シミュレーション部3は、テストベクタデータを回路記述プログラムの入力データとして用いて、回路記述プログラムを実行する。なお、回路記述プログラムは、たとえば記憶部4に記憶されていればよい。
このテストベクタデータを用いたシミュレーションにより、シミュレーション部3は、仮想的に、検査対象の回路に入力信号を与えた場合の回路動作をシミュレーションする。そして、このシミュレーションにより、シミュレーション部3は、回路記述プログラムの実行結果の出力データを得る。出力データは、検査対象の回路の出力信号を記述したデータに相当する。シミュレーション部3は、シミュレーションの出力データを、EDA部2のベクタテスト部6へ出力する。
このテストベクタデータを用いたシミュレーションにより、シミュレーション部3は、仮想的に、検査対象の回路に入力信号を与えた場合の回路動作をシミュレーションする。そして、このシミュレーションにより、シミュレーション部3は、回路記述プログラムの実行結果の出力データを得る。出力データは、検査対象の回路の出力信号を記述したデータに相当する。シミュレーション部3は、シミュレーションの出力データを、EDA部2のベクタテスト部6へ出力する。
EDA部2の記憶部4は、テストベクタファイル5を記憶する。テストベクタファイル5には、ユーザが、検証する回路に応じて作成したテストベクタデータが格納される。以下、テストベクタファイル5に含まれるテストベクタデータを、後述する生成テストベクタデータと特に区別する場合、オリジナルテストベクタデータという。
図5に、テストベクタファイル5のデータ構造の一例を示す。テストベクタファイル5には、検査対象の回路に入力される入力信号を記述したテストベクタデータが含まれる。また、テストベクタデータには、それに記述された入力信号の信号名が対応付けられている。
そして、図5のテストベクタファイル5には、テレビジョン信号に含まれる垂直同期信号vsyncのテストベクタデータと、水平同期信号hsyncのテストベクタデータとが含まれる。垂直同期信号vsyncのテストベクタデータは、「001000000・・・0000」というデータ列を含む。3番目のビットデータ「1」が、垂直同期信号の垂直同期パルスを表している。水平同期信号hsyncのテストベクタデータは、「001000.00001000」というデータ列を含む。3番目のビットデータ「1」と、12番目のビットデータ「1」とが、水平同期信号の水平同期パルスを表している。
そして、図5のテストベクタファイル5には、テレビジョン信号に含まれる垂直同期信号vsyncのテストベクタデータと、水平同期信号hsyncのテストベクタデータとが含まれる。垂直同期信号vsyncのテストベクタデータは、「001000000・・・0000」というデータ列を含む。3番目のビットデータ「1」が、垂直同期信号の垂直同期パルスを表している。水平同期信号hsyncのテストベクタデータは、「001000.00001000」というデータ列を含む。3番目のビットデータ「1」と、12番目のビットデータ「1」とが、水平同期信号の水平同期パルスを表している。
なお、テストベクタファイル5に含まれるテストベクタデータは、ユーザが作成した標準テストベクタデータであればよい。標準テストベクタデータとは、検査対象の回路に入力される入力信号の標準的な波形を0および1で記述したデータ列からなるテストベクタデータをいう。
ベクタテスト部6は、テストベクタファイル5から、テストベクタデータを読み込む。また、ベクタテスト部6は、読み込んだテストベクタデータを、誤り生成部7へ出力する。したがって、テストベクタファイル5に含まれるテストベクタデータは、誤り生成部7を経由して、シミュレーション部3へ出力されることになる。
なお、誤り生成部7を持たない一般的なEDA部2では、ベクタテスト部6は、シミュレーション部3へ直接にテストベクタデータを出力する。このように、テストベクタファイル5に含まれるテストベクタデータは、シミュレーション部3でのシミュレーションに直接利用できるデータである。
なお、誤り生成部7を持たない一般的なEDA部2では、ベクタテスト部6は、シミュレーション部3へ直接にテストベクタデータを出力する。このように、テストベクタファイル5に含まれるテストベクタデータは、シミュレーション部3でのシミュレーションに直接利用できるデータである。
誤り生成部7は、図2に示すように、乱数発生部11、誤り判定部12、ベクタ生成部13、出力部14、および活性化データ保存部15を有する。また、誤り生成部7は、シーケンス定義ファイル群16、動作モードファイル17、および活性化ログファイル18を使用する。これらのファイルは、記憶部4に記憶されている。
図3にシーケンス定義ファイル群16の一例を示す。シーケンス定義ファイル群16は、図3(A)の誤り発生率テーブル16−1と、図3(B)の入力信号毎の複数の変換プログラム16−2とを含む。
誤り発生率テーブル16−1は、図3(A)に示すように、検査対象の回路に入力される複数の入力信号の誤り発生率(%)の値を有する。各入力信号の誤り発生率の値には、その入力信号の信号名が対応付けられている。
なお、入力信号の誤り発生率(%)は、通信環境などに応じて実際に発生し得る入力信号のエラーの割合を示すものであればよい。たとえばテレビジョン電波を受信する回路の場合、垂直同期信号に発生する誤り発生率(%)や、水平同期信号に発生する誤り発生率(%)であればよい。そして、図3(A)の例は、垂直同期信号vsyncが0.00001%の確率でハイレベルにならない場合の例である。また、水平同期信号hsyncが0.00001%の確率でハイレベルにならない場合の例である。
図3(B)に示す入力信号毎の変換プログラム16−2は、オリジナルテストベクタデータを変換して、オリジナルテストベクタデータとは異なるテストベクタデータを生成するためのプログラムである。
具体的にはたとえば、変換プログラム16−2は、標準的な入力信号を記述した標準テストベクタデータを、標準テストベクタデータとは異なる検証テストベクタデータへ変換するためのプログラムであればよい。この検証テストベクタデータを用いることで、たとえば通信データなどが入力する回路において、通信が失敗したときの動作を検証することができる。
なお、変換プログラム16−2は、C言語、C+言語、SystemC、VHDL、Verilogなどで記述されたものであればよい。また、変換プログラム16−2は、専用のハードウェアで実現されてもよい。
具体的にはたとえば、変換プログラム16−2は、標準的な入力信号を記述した標準テストベクタデータを、標準テストベクタデータとは異なる検証テストベクタデータへ変換するためのプログラムであればよい。この検証テストベクタデータを用いることで、たとえば通信データなどが入力する回路において、通信が失敗したときの動作を検証することができる。
なお、変換プログラム16−2は、C言語、C+言語、SystemC、VHDL、Verilogなどで記述されたものであればよい。また、変換プログラム16−2は、専用のハードウェアで実現されてもよい。
ここで、検証テストベクタデータとは、現実検査対象の回路へ現実に入力される可能性がある入力信号の波形を記述したテストベクタデータであり、且つ標準的な波形を記述した標準テストベクタデータとは異なるテストベクタデータをいう。
検査対象の回路へ実際に入力される可能性がある入力信号の波形としては、標準的な波形の他にもたとえば、標準的な波形に含まれるパルスのパルス幅、位置、大きさが変化した波形がある。この他にもたとえば、入力信号が入力されない場合の波形などもある。
そして、たとえば検証対象の回路に入力信号が入力されない場合を検証する場合、変換プログラム16−2は、テストベクタデータの値をすべて0へ変換するプログラムであればよい。
この他にもたとえば、入力信号に含まれるパルスの位置がずれる場合を検証する場合、変換プログラム16−2は、テストベクタデータ中のビットデータ1の位置をデータ列中で前後に移動させるプログラムであればよい。
そして、たとえば検証対象の回路に入力信号が入力されない場合を検証する場合、変換プログラム16−2は、テストベクタデータの値をすべて0へ変換するプログラムであればよい。
この他にもたとえば、入力信号に含まれるパルスの位置がずれる場合を検証する場合、変換プログラム16−2は、テストベクタデータ中のビットデータ1の位置をデータ列中で前後に移動させるプログラムであればよい。
動作モードファイル17は、誤り生成部7の動作モードを示すデータを含む。誤り生成部7の動作モードには、ノーマルモードと、再現モードとがある。
ノーマルモードは、ベクタテスト部6から入力されたオリジナルテストベクタデータを変換して、新たなテストベクタデータを生成するモードである。
再現モードは、後述するように、乱数発生結果、誤り判定結果にかかわらず、オリジナルテストベクタデータを活性化データを用いて変換することで、以前に生成したテストベクタデータを再現するモードである。これにより、以前に生成したテストベクタデータの時刻・変化の内容を再現して、以前に行ったシミュレーションを再現できる。
なお、動作モードファイル17の値などの記憶部4に記憶されるデータは、図示外の入力部が、ユーザの操作に応じて変更できる。
ノーマルモードは、ベクタテスト部6から入力されたオリジナルテストベクタデータを変換して、新たなテストベクタデータを生成するモードである。
再現モードは、後述するように、乱数発生結果、誤り判定結果にかかわらず、オリジナルテストベクタデータを活性化データを用いて変換することで、以前に生成したテストベクタデータを再現するモードである。これにより、以前に生成したテストベクタデータの時刻・変化の内容を再現して、以前に行ったシミュレーションを再現できる。
なお、動作モードファイル17の値などの記憶部4に記憶されるデータは、図示外の入力部が、ユーザの操作に応じて変更できる。
乱数発生部11は、0から1の範囲内の実数値(有限値)の乱数データを発生する。
乱数データは、たとえばメルセンヌ・ツイスタ(Mersenne twister)法により発生されても、線形合同法のランダム関数「rand()」により発生されてもよい。
この他にもたとえば、乱数データは、「/dev/random」などのオペレーティングシステムが用意する乱数生成部を使用し、0から1の範囲内の実数値(有限値)を取得してもよい。
なお、線形合同法のランダム関数「rand()」は、シード(seed)が決まれば必ずその後の複数の乱数の値が一致する乱数列を発生する。これに対して、「/dev/random」は、入力デバイスなどの入力値を抽出して乱数値を生成するため、完全に無作為な乱数を発生する。
乱数発生部11は、発生した乱数データを誤り判定部12へ出力する。
乱数データは、たとえばメルセンヌ・ツイスタ(Mersenne twister)法により発生されても、線形合同法のランダム関数「rand()」により発生されてもよい。
この他にもたとえば、乱数データは、「/dev/random」などのオペレーティングシステムが用意する乱数生成部を使用し、0から1の範囲内の実数値(有限値)を取得してもよい。
なお、線形合同法のランダム関数「rand()」は、シード(seed)が決まれば必ずその後の複数の乱数の値が一致する乱数列を発生する。これに対して、「/dev/random」は、入力デバイスなどの入力値を抽出して乱数値を生成するため、完全に無作為な乱数を発生する。
乱数発生部11は、発生した乱数データを誤り判定部12へ出力する。
誤り判定部12は、乱数発生部11が発生した乱数データと、誤り発生率テーブル16−1に記憶された誤り発生率とを比較する。そして、誤り判定部12は、乱数データが誤り発生率より小さい場合には誤りが発生したと判断し、乱数データが誤り発生率以上である場合には誤りが発生していないと判断する。誤り判定部12は、誤り発生の有無の判断結果を示すデータをベクタ生成部13へ出力する。
ベクタ生成部13は、動作モードおよび誤り発生の有無の判断結果に応じて、出力するテストベクタデータを選択する。
また、ベクタ生成部13は、誤り生成部7に入力されたテストベクタデータから、テストベクタデータを生成する。生成されたテストベクタデータのデータ列は、誤り生成部7に入力されたオリジナルテストベクタデータのデータ列と異なる。以下、ベクタ生成部13が生成したテストベクタデータを、生成テストベクタデータという。
具体的には、ベクタ生成部13は、ノーマルモードである場合、図4(B)の入力信号毎の変換プログラム16−2を実行し、入力されたオリジナルテストベクタデータから、生成テストベクタデータを生成する。
ベクタ生成部13は、たとえば図5に示すオリジナルの標準テストベクタデータから、図6の検証テストベクタデータを生成する。図6の検証テストベクタデータでは、垂直同期信号vsyncの3番目のデータが「0」から「1」ヘ変更されている。また、水平同期信号hsyncの12番目のデータが「0」から「1」ヘ変更されている。
ベクタ生成部13は、たとえば図5に示すオリジナルの標準テストベクタデータから、図6の検証テストベクタデータを生成する。図6の検証テストベクタデータでは、垂直同期信号vsyncの3番目のデータが「0」から「1」ヘ変更されている。また、水平同期信号hsyncの12番目のデータが「0」から「1」ヘ変更されている。
また、再現モードである場合、ベクタ生成部13は、後述する図5の活性化ログファイル18の差分データを用いて、入力されたオリジナルテストベクタデータから、生成テストベクタデータを生成する。
そして、ベクタ生成部13は、選択したテストベクタデータを出力部14へ出力する。また、テストベクタデータを生成した場合、ベクタ生成部13は、生成テストベクタデータおよびオリジナルテストベクタデータを活性化データ保存部15へ出力する。
出力部14は、ベクタ生成部13が選択したテストベクタデータをシミュレーション部3へ出力する。
活性化データ保存部15は、ベクタ生成部13が生成したテストベクタデータを再現するための活性化データを、活性化ログファイル18に蓄積する。
図5に活性化ログファイル18の一例を示す。活性化ログファイル18には、ベクタ生成部13が生成した生成テストベクタデータを再現するための活性化データ(再現データ)が蓄積される。図5の例では、活性化ログファイル18には、ベクタ生成部13に入力されたオリジナルテストベクタデータと、ベクタ生成部13が生成した生成テストベクタデータとの差分データが蓄積される。具体的には、垂直同期信号vsyncの3番目のデータを変更したことを示す差分データと、水平同期信号hsyncの12番目のデータを変更したことを示す差分データとが蓄積されている。
[テスト装置の動作]
図4は、図1のテスト装置1において、シミュレーション部3へテストベクタデータを出力するまでの動作の流れを示すフローチャートである。図5に、テストベクタファイル5に記憶される標準テストベクタデータの一例を示す。図6に、図5の標準テストベクタデータに基づいてベクタ生成部13が生成する検証テストベクタデータの一例を示す。図7に、図5の標準テストベクタデータに基づいて図6の検証テストベクタデータを生成した場合に活性化ログファイル18に記憶される活性化データの一例を示す。
図4は、図1のテスト装置1において、シミュレーション部3へテストベクタデータを出力するまでの動作の流れを示すフローチャートである。図5に、テストベクタファイル5に記憶される標準テストベクタデータの一例を示す。図6に、図5の標準テストベクタデータに基づいてベクタ生成部13が生成する検証テストベクタデータの一例を示す。図7に、図5の標準テストベクタデータに基づいて図6の検証テストベクタデータを生成した場合に活性化ログファイル18に記憶される活性化データの一例を示す。
図1のテストベクタファイル5に、ユーザが作成した図5の標準テストベクタデータが記憶された状態で、ベクタテスト部6は、テストベクタファイル5から各信号名の標準テストベクタデータを読み込んで出力する。図5の場合、ベクタテスト部6は、まず、垂直同期信号vsyncの標準テストベクタデータを読み込んで出力する。これにより、誤り生成部7は、図4のフローチャートを実行する。
誤り生成部7にテストベクタが入力される(ステップST1)と、ベクタ生成部13は、動作モードファイル17から、現在設定されている動作モードを読み込む(ステップST2)。
読み込まれた動作モードがノーマルモードである場合、誤り判定部12は、乱数発生部11から、乱数データを取得する。乱数発生部11は、0〜1の範囲内の値を有する乱数データを発生する(ステップST3)。
乱数データが入力されると、誤り判定部12は、誤りを判断するために、シーケンス定義ファイル群16の図3(A)の誤り発生率テーブル16−1から、入力されたテストベクタデータに対応する入力信号の誤り発生率の値を読み込む。垂直同期信号vsyncの標準テストベクタデータが入力された場合、誤り判定部12は、信号名vsyncに対応付けられた誤り発生率0.00001%を読み込む(ステップST4)。
次に、誤り判定部12は、乱数データの値と誤り発生率とを比較する。そして、乱数データの値が誤り発生率の値より小さい場合、誤り判定部12は、誤り発生有りと判断する。逆に、乱数データの値が誤り発生率の値以上である場合、誤り判定部12は、誤り発生無しと判断する。誤り判定部12は、誤り発生の有無の判断結果をベクタ生成部13へ出力する。
誤り発生の有無の判断結果が入力されると、ベクタ生成部13は、入力された誤り発生の有無の判断結果に基づいて、処理内容を判断する(ステップST5)。
たとえば、誤り判定部12が誤り発生無しと判定した場合(ステップST5でNoと判断した場合)、ベクタ生成部13は、ベクタテスタ部から入力されたテストベクタデータを、そのまま出力部14へ出力する(ステップST6)。その結果、出力部14は、記憶部4に記憶されているテストベクタデータをシミュレーション部3へ出力する。図5の場合、出力部14は、垂直同期信号vsyncの標準テストベクタデータをシミュレーション部3へ出力する。
また、図5のテストベクタファイル5には、垂直同期信号vsyncの標準テストベクタデータの他にも、水平同期信号hsyncの標準テストベクタデータが含まれている。そのため、次に、ベクタテスト部6は、水平同期信号hsyncの標準テストベクタデータを読み込んで誤り生成部7へ出力する。誤り生成部7は上述した図4の処理を実行する。そして、誤り判定部12が誤り発生無しと再び判定した場合(ステップST5でNoと判断した場合)、誤り生成部7の出力部14は、記憶部4に記憶される水平同期信号hsyncの標準テストベクタデータをシミュレーション部3へ出力する(ステップST5)。
シミュレーション部3は、所定のテストベクタデータが入力されると、その入力されたテストベクタデータを入力として、回路記述プログラムを実行する。また、シミュレーション部3は、シミュレーションの結果として生成される出力データを、ベクタテスト部6へ出力する。ベクタテスト部6は、たとえば出力データを記憶部4に保存する。また、ベクタテスト部6は、出力データと図示外の所定の期待値データとを比較してその比較結果(一致または不一致)を記憶部4に保存する。
この記憶部4に記憶された出力データまたは比較結果に基づいて、ユーザは、検証した回路記述プログラムの回路が、標準的な入力信号を入力した場合に所望の機能を実現できているか否かを判断できる。また、所望の機能を実現できていない場合には、ユーザは、回路記述プログラムを修正し、検証を繰り返すことができる。
この他にもたとえば、図4のステップST5において、誤り判定部12が誤り発生が有り(Yes)と判定した場合、ベクタ生成部13は、テストベクタデータの生成処理を開始する(ステップST7)。
ノーマルモードでのテストベクタデータの生成処理では、ベクタ生成部13は、まず、シーケンス定義ファイル群16の図3(B)の変換プログラム16−2を読み込む。次に、ベクタ生成部13は、読み込んだ変換プログラム16−2を実行して、ベクタテスタ部から入力されたテストベクタデータを変換し、テストベクタデータを生成する。たとえば変換プログラム16−2が、入力信号が入力されない状態を検証するプログラムである場合、ベクタ生成部13は、標準テストベクタデータに含まれるすべてのデータ1をデータ0に置き換えた検証テストベクタデータを生成する。
次に、ベクタ生成部13は、入力された標準テストベクタデータおよび生成した検証テストベクタデータを、活性化データ保存部15へ出力する(ステップST8)。活性化データ保存部15は、まず、たとえば標準テストベクタデータから検証テストベクタデータを減算し、差分テストベクタデータを生成する。そして、活性化データ保存部15は、差分テストベクタデータに現れた相違ビットデータの、ベクトルデータ中の位置を示す差分データを生成し、活性化ログファイル18に保存する。図5および図6の垂直同期信号vsyncの場合、図7に示すように(3,vsync)という差分データが活性化ログファイル18に保存される。
また、ベクタ生成部13は、生成したテストベクタデータを出力部14へ出力する(ステップST9)。また、出力部14は、ベクタ生成部13から入力されたテストベクタデータをシミュレーション部3へ出力する。
引き続き、ベクタテスト部6は、水平同期信号hsyncの標準テストベクタデータを読み込んで誤り生成部7へ出力する。これにより、誤り生成部7は、上述した図4の処理を繰り返し実行する。
そして、誤り判定部12がステップST5で誤り発生有り(Yes)と再び判定した場合、誤り生成部7のベクタ生成部13は、検証テストベクタデータおよび標準テストベクタデータを、活性化データ保存部15へ出力する(ステップST8)。そして、活性化データ保存部15は、差分テストベクタデータに表れた相違ビットデータの、ベクトルデータ中の位置を示す差分データを生成し、活性化ログファイル18に保存する。図5および図6の水平同期信号hsyncの場合、図7に示すように(12,vsync)という差分データが活性化ログファイル18に保存される。
また、ベクタ生成部13は、シーケンス定義ファイル群16から読み込んだ変換プログラム16−2を用いて、入力された水平同期信号hsyncの標準テストベクタデータを変換する(ステップST9)。また、ベクタ生成部13は、新たに生成した検証テストベクタデータを、活性化データ保存部15およびシミュレーション部3へ出力する。
以上の処理により、この例では、シミュレーション部3には、図6に示す垂直同期信号vsyncの検証テストベクタデータと、水平同期信号hsyncの検証テストベクタデータとが入力される。シミュレーション部3は、入力された複数の検証テストベクタデータを入力信号のデータとして、回路記述プログラムを実行する。シミュレーション部3は、実行の結果生成される出力データを、ベクタテスト部6へ出力する。ベクタテスト部6は、出力データを記憶部4に保存する。また、ベクタテスト部6は、出力データと図示外の期待値データとを比較し、その比較結果(一致または不一致)を記憶部4に保存する。
ユーザは、この記憶部4に記憶された出力データまたは比較結果に基づいて、検証した回路記述プログラムの回路が、標準的な入力信号とは異なる信号を入力した場合に所望の機能を実現しているか否かを判断することができる。また、所望の機能を実現できていない場合には、ユーザは回路記述プログラムを修正することができる。
さらに他にもたとえば、図4のステップST2において動作モードが再現モードであると判断した場合、ベクタ生成部13は、再現モードでのテストベクタデータ生成処理を開始する。ベクタ生成部13は、過去に生成した検証テストベクタデータと同じテストベクタデータを再現する処理を開始する(ステップST10)。
再現モードでのテストベクタデータの生成処理では、ベクタ生成部13は、まず、活性化ログファイル18から、差分データを読み込む。次に、ベクタ生成部13は、読み込んだ差分データを用いて、ベクタテスタ部から入力されている標準テストベクタデータを変更し、再現した検証テストベクタデータを生成する。たとえば図7の活性化ログファイル18の場合、ベクタ生成部13は、垂直同期信号のテストベクタデータの3番目のビットデータを1へ変更し、水平同期信号のテストベクタデータの12番目のビットデータを1へ変更する。これにより、図6の検証テストベクタデータが再現される。
ベクタ生成部13は、再現した検証テストベクタデータを出力部14へ出力する。また、出力部14は、ベクタ生成部13から入力されたテストベクタデータをシミュレーション部3へ出力する(ステップST11)。
以上の再現処理を入力信号のテストベクタデータについて繰り返し実行することで、シミュレーション部3には、たとえば図6の垂直同期信号vsyncの再現された検証テストベクタデータと、水平同期信号hsyncの再現された検証テストベクタデータとが入力される。シミュレーション部3は、再現された複数の検証テストベクタデータを入力信号のデータとして、回路記述プログラムを実行する。
また、シミュレーション部3は、実行の結果生成される出力データを、ベクタテスト部6へ出力する。ベクタテスト部6は、出力データを記憶部4に保存する。また、ベクタテスト部6は、出力データと図示外の期待値データとを比較し、その比較結果(一致または不一致)を記憶部4に保存する。
ユーザは、この記憶部4に記憶された出力データまたは比較結果に基づいて、たとえば、修正前には所望の機能を実現できていなかった回路記述プログラムの回路が、修正により所望の機能を実現できるようになったことを確認することができる。
以上のように、第1実施形態では、乱数データを発生させて、入力信号の誤り発生率より乱数データが小さい場合、生成した検証テストベクタデータを検査対象の回路へ出力する。また、入力信号の誤り発生率より乱数データが大きい場合、標準テストベクタデータを検査対象の回路へ出力する。
したがって、第1実施形態では、検証対象の回路に対して、実際に入力信号に発生する誤り発生率により誤りが発生したテストベクタデータを入力させることができる。
したがって、第1実施形態では、検証対象の回路に対して、実際に入力信号に発生する誤り発生率により誤りが発生したテストベクタデータを入力させることができる。
また、第1実施形態では、ベクタ生成部13は、検査対象の回路に入力される標準的な入力信号を記述した標準テストベクタデータから、標準テストベクタデータとは異なる検証テストベクタデータを生成する。
特に、第1実施形態では、標準的な入力信号を記述した標準テストベクタデータから検証テストベクタデータを生成するための変換ルールを記述した変換プログラム16−2を用いて、検証テストベクタデータを生成している。
したがって、生成された検証テストベクタデータは、標準テストベクタデータにより制限された範囲で誤りを含むテストベクタデータになる。生成された検証テストベクタデータは、標準テストベクタデータに近似したテストベクタデータになる。しかも、生成された検証テストベクタデータに含まれるデータ誤りは、実際に入力信号に発生する信号誤りに制限される。すなわち、生成された検証テストベクタデータは、回路の検証に適したテストベクタデータになる。
それ故、第1実施形態においてベクタ生成部13が生成する検証テストベクタデータは、ランダムに発生させたベクタデータのように、検査対象の回路に入力され得ないベクタデータにならない。
特に、第1実施形態では、標準的な入力信号を記述した標準テストベクタデータから検証テストベクタデータを生成するための変換ルールを記述した変換プログラム16−2を用いて、検証テストベクタデータを生成している。
したがって、生成された検証テストベクタデータは、標準テストベクタデータにより制限された範囲で誤りを含むテストベクタデータになる。生成された検証テストベクタデータは、標準テストベクタデータに近似したテストベクタデータになる。しかも、生成された検証テストベクタデータに含まれるデータ誤りは、実際に入力信号に発生する信号誤りに制限される。すなわち、生成された検証テストベクタデータは、回路の検証に適したテストベクタデータになる。
それ故、第1実施形態においてベクタ生成部13が生成する検証テストベクタデータは、ランダムに発生させたベクタデータのように、検査対象の回路に入力され得ないベクタデータにならない。
また、第1実施形態では、変換プログラム16−2を用いて標準テストベクタデータから検証テストベクタデータを生成している。したがって、第1実施形態では、検証テストベクタデータを一定のルールに基づいて生成することができる。
そのため、第1実施形態では、たとえば標準テストベクタデータとしてクロック信号を記述したテストベクタデータを用意し、クロック信号の変換プログラム16−2として、クロックパルスの位置をずらす変換ルールを記述したプログラムを用いることができる。
このようにクロックパルスの位置をずらすことにより、第1実施形態では、検査対象の回路のうち「クロックの乗り換え」を行っている部分についての検証ができる。
なお、「クロックの乗り換え」は、たとえば、転送レートが異なる2個の回路を1つの半導体装置に実装する場合に、その2個の回路の間で発生する。具体的には、イーサネット(登録商標)での通信パケットを扱う半導体装置、デジタル放送信号を扱う半導体装置などにおいて、「クロックの乗り換え」が生じることがある。
そのため、第1実施形態では、たとえば標準テストベクタデータとしてクロック信号を記述したテストベクタデータを用意し、クロック信号の変換プログラム16−2として、クロックパルスの位置をずらす変換ルールを記述したプログラムを用いることができる。
このようにクロックパルスの位置をずらすことにより、第1実施形態では、検査対象の回路のうち「クロックの乗り換え」を行っている部分についての検証ができる。
なお、「クロックの乗り換え」は、たとえば、転送レートが異なる2個の回路を1つの半導体装置に実装する場合に、その2個の回路の間で発生する。具体的には、イーサネット(登録商標)での通信パケットを扱う半導体装置、デジタル放送信号を扱う半導体装置などにおいて、「クロックの乗り換え」が生じることがある。
また、第1実施形態では、データ信号の変化の位置についても、上述したクロック信号のパルス位置と同様にずらすことができる。
この場合、第1実施形態では、データ信号を記述したテストベクタデータを標準テストベクタデータとして用意し、データ信号の変換プログラム16−2として、データ信号の変化の位置をずらす変換ルールを記述したプログラムを用いればよい。
この場合、第1実施形態では、データ信号を記述したテストベクタデータを標準テストベクタデータとして用意し、データ信号の変換プログラム16−2として、データ信号の変化の位置をずらす変換ルールを記述したプログラムを用いればよい。
<第2実施形態>
[テスト装置の構成]
図8に、本発明の第2実施形態に係る検査対象の回路のテスト装置1の構成を示す。第2実施形態に係るテスト装置1は、記憶部4、ベクタテスト部6および誤り生成部7を含むEDA部2並びにシミュレーション部3を有する点で、第1実施形態に係るテスト装置1と共通する。
[テスト装置の構成]
図8に、本発明の第2実施形態に係る検査対象の回路のテスト装置1の構成を示す。第2実施形態に係るテスト装置1は、記憶部4、ベクタテスト部6および誤り生成部7を含むEDA部2並びにシミュレーション部3を有する点で、第1実施形態に係るテスト装置1と共通する。
ただし、第2実施形態の誤り生成部7のシーケンス定義ファイル群16Aには、他の入力信号の誤り発生に応じて異なる複数の誤り発生確率を記憶する誤り発生率テーブル16−1Aが含まれている点で、第1実施形態に係るテスト装置1と異なる。
図9に、図8のシーケンス定義ファイル群16Aの一例を示す。シーケンス定義ファイル群16Aの誤り発生率テーブル16−1Aは、図9(A)に示すように、水平同期信号hsyncについては、2個の誤り発生率を有する。この2個の誤り発生率のうち、左側の誤り発生率1は、水平同期信号hsyncに誤りが発生していない場合の誤り発生率である。右側の誤り発生率2は、水平同期信号hsyncに誤りが発生している場合の誤り発生率である。そして、右側の誤り発生率は、左側の誤り発生率より高い値(この例では100%)になっている。
このように、第2実施形態の誤り発生率テーブル16−1Aでは、回路に入力される複数の入力信号の間での相関を記述することができる。
[テスト装置の動作]
ベクタテスト部6がテストベクタファイル5から各信号名の標準テストベクタデータを読み込んで誤り生成部7へ出力すると(ステップST1)、誤り生成部7は、図4のフローチャートを実行する。
ベクタテスト部6がテストベクタファイル5から各信号名の標準テストベクタデータを読み込んで誤り生成部7へ出力すると(ステップST1)、誤り生成部7は、図4のフローチャートを実行する。
ベクタ生成部13は、動作モードファイル17から、現在設定されている動作モードを読み込む(ステップST2)。
読み込んだ動作モードがノーマルモードである場合、誤り判定部12は、乱数発生部11から、乱数データを取得する。乱数発生部11は、乱数データを発生して誤り判定部12へ出力する(ステップST3)。
読み込んだ動作モードがノーマルモードである場合、誤り判定部12は、乱数発生部11から、乱数データを取得する。乱数発生部11は、乱数データを発生して誤り判定部12へ出力する(ステップST3)。
乱数データが入力されると、誤り判定部12は、シーケンス定義ファイル群16Aの図9(A)の誤り発生率テーブル16−1Aから、入力されたテストベクタデータに対応する入力信号の誤り発生率の値を読み込む。また、誤り判定部12は、活性化ログファイル18から、他の信号の誤り発生の有無を読み込む(ステップST4)。
そして、誤り判定部12は、たとえば水平同期信号hsyncについて処理をする場合、垂直同期信号vsyncに誤りが発生していない場合には、図9(A)の左側の誤り発生率の値を読み込む。また、垂直同期信号vsyncに誤りが発生している場合には、図9(A)の右側の誤り発生率の値を読み込む。
次に、誤り判定部12は、乱数データの値と誤り発生率とを比較し、誤り発生の有無の判断結果をベクタ生成部13へ出力する。
そして、ノーマルモードにおけるステップST5以降のベクタ生成部13およびそれ以降の動作は、第1実施形態での動作と同じである。
すなわち、たとえば、ノーマルモードにおいて誤りが発生していない場合(ステップST5でNoの場合)、ベクタ生成部13は、テストベクタファイル5から読み込まれたオリジナルの標準テストベクタデータを選択する(ステップST6)。出力部14は、この標準テストベクタデータをシミュレーション部3へ出力する。シミュレーション部3は、標準テストベクタデータを用いて検査対象の回路のシミュレーションを実行する。
また、ノーマルモードにおいて誤りが発生している場合(ステップST5でYesの場合)、ベクタ生成部13は、変換プログラム16−2を実行して、オリジナルの標準テストベクタデータを変換し、検証テストベクタデータを生成する(ステップST7)。出力部14は、この検証テストベクタデータをシミュレーション部3へ出力する(ステップST9)。シミュレーション部3は、検証テストベクタデータを用いて検査対象の回路のシミュレーションを実行する。
また、ステップST2において再現モードであると判断した場合、ベクタ生成部13は、オリジナルの標準テストベクタデータに対して活性化ログファイル18の差分データを適用し、検証テストベクタデータを生成する(ステップST10)。出力部14は、この検証テストベクタデータをシミュレーション部3へ出力する(ステップST11)。シミュレーション部3は、検証テストベクタデータを用いて検査対象の回路のシミュレーションを実行する。
以上の実施形態は、本発明の好適な実施の形態の例であるが、本発明は、これに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形または変更が可能である。
たとえば、図3のシーケンス定義ファイル群16または図9のシーケンス定義ファイル群16Aは、オリジナルテストベクタデータを変換して生成テストベクタプログラムを生成する変換プログラム16−2を含む。この他にもたとえば、シーケンス定義ファイル群16,16Aは、変換プログラム16−2と、この変換プログラム16−2により読み込まれる複数の変換定義データを含んでもよい。そして、たとえば、変換プログラム16−2が読み込む変換定義データを、乱数データの値に応じて異ならせることで、1つのオリジナルテストベクタデータから、複数の入力誤りに対応する複数の検証テストベクタデータを生成することができる。
また、変換プログラム16−2は、標準テストベクタデータ以外のテストベクタデータを変換するプログラムであってもよい。
また、変換プログラム16−2は、標準テストベクタデータ以外のテストベクタデータを変換するプログラムであってもよい。
また、上記各実施形態では、説明の都合上、記憶部4に、設計者が作成した1個のテストベクタファイル5と、1組のシーケンス定義ファイル群16とを記憶させている。
この他にもたとえば、実際の利用においては、記憶部4に、設計者が作成した複数個のテストベクタファイル5と、複数組のシーケンス定義ファイル群16とを記憶させてもよい。
このように複数個のテストベクタファイル5を記憶部4に記憶させる場合であっても、その複数個のテストベクタファイル5に含まれる複数のテストベクタデータから、それらとは異なる複数のテストベクタデータを生成できるので、設計者が作成すべきテストベクタデータの個数を削減することができる。
この他にもたとえば、実際の利用においては、記憶部4に、設計者が作成した複数個のテストベクタファイル5と、複数組のシーケンス定義ファイル群16とを記憶させてもよい。
このように複数個のテストベクタファイル5を記憶部4に記憶させる場合であっても、その複数個のテストベクタファイル5に含まれる複数のテストベクタデータから、それらとは異なる複数のテストベクタデータを生成できるので、設計者が作成すべきテストベクタデータの個数を削減することができる。
上記各実施形態は、図1に示すように、検査対象の回路がシミュレーション部3で実行される回路記述プログラムである場合の例である。この他にもたとえば、検査対象の回路は、製造された回路、たとえば半導体装置などであってもよい。
図10は、本発明の変形例に係るテスト装置を示す概略構成図である。テスト装置1は、製造された半導体装置23を検査するものであり、図1のEDA部2と同じ機能を有するEDA部21と、半導体装置23が接続されるテストI/F22とを有する。
テストI/F22は、EDA部21が出力したテストベクタデータに基づく出力信号を半導体装置23へ出力する。また、テストI/F22は、半導体装置23が出力した入力信号をサンプリングし、出力データを生成する。テストI/F22は、生成した出力データをベクタテスト部6へ出力する。
これにより、図10のテスト装置1は、製造された半導体装置23について、上記各実施形態と同様の検証を実行するができる。
なお、テスト装置1において、テストI/F22は、半導体装置23のテスト専用に設けられたインタフェースであっても、もしくは,テスト装置1の汎用的なデータ入出力部であってもよい。
テストI/F22は、EDA部21が出力したテストベクタデータに基づく出力信号を半導体装置23へ出力する。また、テストI/F22は、半導体装置23が出力した入力信号をサンプリングし、出力データを生成する。テストI/F22は、生成した出力データをベクタテスト部6へ出力する。
これにより、図10のテスト装置1は、製造された半導体装置23について、上記各実施形態と同様の検証を実行するができる。
なお、テスト装置1において、テストI/F22は、半導体装置23のテスト専用に設けられたインタフェースであっても、もしくは,テスト装置1の汎用的なデータ入出力部であってもよい。
1・・・テスト装置、3・・・シミュレーション部、4・・・記憶部(ベクタ記憶部、誤り発生率記憶部、プログラム記憶部、再現データ記憶部)、6・・・ベクタテスト部(ベクタ読出部)、11・・・乱数発生部、12・・・誤り判定部(比較部)、13・・・ベクタ生成部、14・・・出力部、16−2・・・変換プログラム
Claims (10)
- 検査対象の回路に入力される入力信号を記述したオリジナルテストベクタデータを記憶するベクタ記憶部と、
前記ベクタ記憶部に記憶されている前記オリジナルテストベクタデータから、前記オリジナルテストベクタデータとは異なる生成テストベクタデータを生成するベクタ生成部と、
前記検査対象の回路へ入力するテストベクタデータを出力する出力部と、
前記オリジナルテストベクタデータに記述された前記入力信号の誤り発生率を記憶する誤り発生率記憶部と、
乱数データを発生する乱数発生部と、
前記誤り発生率記憶部に記憶された前記入力信号の誤り発生率と前記乱数データとを比較する比較部と
を有し、
前記ベクタ出力部は、
前記入力信号の誤り発生率より前記乱数データが小さい場合、前記生成テストベクタデータを出力し、
前記入力信号の誤り発生率より前記乱数データが大きい場合、前記オリジナルテストベクタデータを出力する
テスト装置。 - 前記ベクタ記憶部は、前記検査対象の回路に入力される標準的な入力信号を記述した標準テストベクタデータを、前記オリジナルテストベクタデータとして記憶する
請求項1記載のテスト装置。 - 前記検査対象の回路に入力される標準的な入力信号を記述した標準テストベクタデータから、前記検査対象の回路へ入力され得る前記標準的な入力信号とは異なる入力信号を記述した検証テストベクタデータを生成するための変換ルールが記述された変換プログラムを記憶するプログラム記憶部を有し、
前記ベクタ生成部は、前記変換プログラムを実行して、前記オリジナルテストベクタデータから前記生成テストベクタデータを生成する
請求項1または2記載のテスト装置。 - 前記ベクタ記憶部は、前記検査対象の回路に入力される複数の入力信号を記述した複数の前記オリジナルテストベクタデータを記憶し、
前記誤り発生率記憶部は、前記複数のオリジナルテストベクタデータの内の1つのオリジナルテストベクタデータに記述された前記入力信号の誤り発生率として、他のオリジナルテストベクタデータで誤りが発生していない場合の低い誤り発生率と、前記他のオリジナルテストベクタデータで誤りが発生している場合の高い誤り発生率とを記憶し、
前記比較部は、
前記他のオリジナルテストベクタデータで誤りが発生していない場合、前記低い誤り発生率を前記乱数データと比較し、
前記他のオリジナルテストベクタデータで誤りが発生している場合、前記高い誤り発生率を前記乱数データと比較する
請求項3記載のテスト装置。 - 前記ベクタ記憶部は、前記検査対象の回路に入力される複数の入力信号を記述した複数の前記オリジナルテストベクタデータを記憶し、
前記誤り発生率記憶部は、前記ベクタ記憶部に記憶される前記複数のオリジナルテストベクタデータのそれぞれに対応させて、各前記オリジナルテストベクタデータに記述された入力信号毎の複数の誤り発生率を記憶し、
前記比較部は、前記オリジナルテストベクタデータ毎に、それに記述された入力信号の前記誤り発生率と前記乱数データとを比較する
請求項1記載のテスト装置。 - 前記ベクタ生成部が生成した前記生成テストベクタデータを再現するための再現データを蓄積して記憶する再現データ記憶部を有し、
前記ベクタ生成部は、前記再現データ記憶部に記憶された前記再現データを用いて、前記オリジナルテストベクタデータから、前記生成テストベクタデータを再現する
請求項1記載のテスト装置。 - 前記再現データ記憶部は、前記再現データとして、前記生成テストベクタデータについての、前記オリジナルテストベクタデータからの変更箇所を示す差分データを記憶し、
前記ベクタ生成部は、前記オリジナルテストベクタデータに対して、前記再現データ記憶部に記憶された前記再現データを適用して、前記生成テストベクタデータを再現する
請求項6記載のテスト装置。 - 前記検査対象の回路は回路記述プログラムで記述されており、
前記出力部から出力されたテストベクタデータを入力データに用いて、前記回路記述プログラムのシミュレーションを実行するシミュレーション部を有する
請求項1記載のテスト装置。 - 検査対象の回路に入力される入力信号を記述したオリジナルテストベクタデータを記憶する記憶部から、前記オリジナルテストベクタデータを読み込むステップと、
乱数データを発生するステップと、
前記オリジナルテストベクタデータに記述された入力信号の誤り発生率を記憶する記憶部から、読み込まれた前記オリジナルテストベクタデータに対応する前記入力信号の誤り発生率を読み込むステップと、
発生した前記乱数データと読み込んだ前記入力信号の誤り発生率とを比較する比較ステップと、
読み込んだ前記オリジナルテストベクタデータから、前記オリジナルテストベクタデータとは異なる生成テストベクタデータを生成する生成ステップと、
前記検査対象の回路に入力させるテストベクタデータを出力する出力ステップと
を有し、
前記比較ステップにおいて前記入力信号の誤り発生率より前記乱数データが小さい場合、
前記生成ステップにより前記生成テストベクタデータを生成し、
前記出力ステップにおいて、前記生成ステップで生成された前記生成テストベクタデータを出力し、
前記比較ステップにおいて前記入力信号の誤り発生率より前記乱数データが大きい場合、
前記出力ステップにおいて、前記オリジナルテストベクタデータを出力する
テスト方法。 - 記憶部および処理回路を有し、検査対象の回路をテストするテスト装置として機能するコンピュータに、
前記記憶部に記憶され、前記検査対象の回路に入力される入力信号を記述したオリジナルテストベクタデータを前記記憶部から読み込む手順と、
乱数データを発生する手順と、
前記記憶部に記憶され、前記オリジナルテストベクタデータに記述された入力信号の誤り発生率を前記記憶部から読み込むステップと、
発生した前記乱数データと、読み込んだ前記入力信号の誤り発生率とを比較する比較手順と、
読み込んだ前記オリジナルテストベクタデータから、前記オリジナルテストベクタデータとは異なる生成テストベクタデータを生成する生成手順と、
前記検査対象の回路に入力させるテストベクタデータを出力する出力手順と
を実行させ、
前記比較手順において前記入力信号の誤り発生率より前記乱数データが小さい場合には、
前記生成手順により前記生成テストベクタデータを生成させ、
前記出力手順において、前記生成手順で生成された前記生成テストベクタデータを出力させ、
前記比較手順において前記入力信号の誤り発生率より前記乱数データが大きい場合には、
前記出力手順において、前記オリジナルテストベクタデータを出力させる
プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009050278A JP2010203937A (ja) | 2009-03-04 | 2009-03-04 | テスト装置、テスト方法、およびプログラム |
US12/710,581 US8365133B2 (en) | 2009-03-04 | 2010-02-23 | Testing apparatus, testing method, and program |
CN201010129575A CN101853706A (zh) | 2009-03-04 | 2010-03-04 | 测试装置、测试方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009050278A JP2010203937A (ja) | 2009-03-04 | 2009-03-04 | テスト装置、テスト方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010203937A true JP2010203937A (ja) | 2010-09-16 |
Family
ID=42679311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009050278A Pending JP2010203937A (ja) | 2009-03-04 | 2009-03-04 | テスト装置、テスト方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8365133B2 (ja) |
JP (1) | JP2010203937A (ja) |
CN (1) | CN101853706A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235127A (ja) * | 2013-06-04 | 2014-12-15 | 株式会社アドバンテスト | 試験システム、制御プログラム、コンフィギュレーションデータの書込方法 |
US9140752B2 (en) | 2012-06-04 | 2015-09-22 | Advantest Corporation | Tester hardware |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7970594B2 (en) * | 2005-06-30 | 2011-06-28 | The Mathworks, Inc. | System and method for using model analysis to generate directed test vectors |
US8683282B2 (en) * | 2011-03-01 | 2014-03-25 | International Business Machines Corporation | Automatic identification of information useful for generation-based functional verification |
CN103439646A (zh) * | 2013-08-28 | 2013-12-11 | 深圳华越天芯电子有限公司 | 一种模拟电路测试矢量生成方法 |
US10036783B1 (en) * | 2014-06-13 | 2018-07-31 | Western Digital Technologies, Inc. | Device testing systems and methods |
KR20160005988A (ko) * | 2014-07-08 | 2016-01-18 | 에스케이하이닉스 주식회사 | 반도체 장치의 어레이 퓨즈 테스트 방법 |
JP2017207963A (ja) * | 2016-05-19 | 2017-11-24 | ソニー株式会社 | データ伝送回路、データ伝送システムおよびデータ伝送回路の制御方法 |
KR102589004B1 (ko) * | 2018-06-18 | 2023-10-16 | 삼성전자주식회사 | 반도체 불량 분석 장치 및 그것의 불량 분석 방법 |
KR20210047127A (ko) | 2019-10-21 | 2021-04-29 | 삼성전자주식회사 | 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01309446A (ja) * | 1988-06-07 | 1989-12-13 | Yamatake Honeywell Co Ltd | 回線シミュレータ |
JP2008193516A (ja) * | 2007-02-06 | 2008-08-21 | Anritsu Corp | ランダムエラー信号発生装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619512A (en) * | 1993-11-08 | 1997-04-08 | Nippondenso Co., Ltd. | Integrated circuit having self-testing function |
JPH10283388A (ja) | 1997-04-08 | 1998-10-23 | Mitsubishi Electric Corp | 論理検証装置 |
US5982681A (en) * | 1997-10-10 | 1999-11-09 | Lsi Logic Corporation | Reconfigurable built-in self test circuit |
JP2001167141A (ja) | 1999-12-08 | 2001-06-22 | Toshiba Corp | 故障シミュレータおよび故障シミュレーション方法 |
JP4488595B2 (ja) | 2000-06-08 | 2010-06-23 | 株式会社アドバンテスト | テストパターン生成方法 |
JP2005165747A (ja) | 2003-12-03 | 2005-06-23 | Canon Inc | 検証システム |
CN100368818C (zh) * | 2003-12-10 | 2008-02-13 | 上海华虹Nec电子有限公司 | 一种芯片内建电可擦除存储器的测试模块及其测试方法 |
JP2006058172A (ja) | 2004-08-20 | 2006-03-02 | Fujitsu Ltd | テストパターン生成システム、テストパターン解析システム、テストパターン生成方法、テストパターン解析方法、テストパターン生成プログラム、テストパターン解析プログラム、および記録媒体 |
JP4559930B2 (ja) | 2005-08-12 | 2010-10-13 | 東芝マイクロエレクトロニクス株式会社 | 故障解析システム、故障解析情報処理装置及び故障解析方法 |
-
2009
- 2009-03-04 JP JP2009050278A patent/JP2010203937A/ja active Pending
-
2010
- 2010-02-23 US US12/710,581 patent/US8365133B2/en not_active Expired - Fee Related
- 2010-03-04 CN CN201010129575A patent/CN101853706A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01309446A (ja) * | 1988-06-07 | 1989-12-13 | Yamatake Honeywell Co Ltd | 回線シミュレータ |
JP2008193516A (ja) * | 2007-02-06 | 2008-08-21 | Anritsu Corp | ランダムエラー信号発生装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9140752B2 (en) | 2012-06-04 | 2015-09-22 | Advantest Corporation | Tester hardware |
JP2014235127A (ja) * | 2013-06-04 | 2014-12-15 | 株式会社アドバンテスト | 試験システム、制御プログラム、コンフィギュレーションデータの書込方法 |
US9563527B2 (en) | 2013-06-04 | 2017-02-07 | Advantest Corporation | Test system |
Also Published As
Publication number | Publication date |
---|---|
US8365133B2 (en) | 2013-01-29 |
CN101853706A (zh) | 2010-10-06 |
US20100229039A1 (en) | 2010-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010203937A (ja) | テスト装置、テスト方法、およびプログラム | |
US6370675B1 (en) | Semiconductor integrated circuit design and evaluation system using cycle base timing | |
CN112560401B (zh) | Verilog文件转换方法、装置、存储介质及设备 | |
US20120005545A1 (en) | Computer product, verification support apparatus, and verification support method | |
US7437701B1 (en) | Simulation of a programming language specification of a circuit design | |
JP2009526285A (ja) | 電子システム内で発生するノイズを推定する方法、およびノイズ耐性を試験する関連方法 | |
JP2005141624A (ja) | 検証装置、検証方法およびプログラム | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
US20070157134A1 (en) | Method for testing a hardware circuit block written in a hardware description language | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
JP2008218923A (ja) | 擬似乱数発生器、半導体集積回路、該半導体集積回路の設計データを記録した記録媒体、擬似乱数発生器制御方法、擬似乱数発生器制御プログラム、該擬似乱数発生器制御プログラムを記録した記録媒体、および擬似乱数発生器制御装置 | |
JP5040758B2 (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
US8661384B2 (en) | Verification support apparatus, verifying apparatus, computer product, verification support method, and verifying method | |
US7840924B2 (en) | Apparatus, method, and program for verifying logic circuit operating with multiple clock signals | |
CN116956801A (zh) | 芯片验证方法、装置、计算机设备和存储介质 | |
US8065641B2 (en) | Automatically creating manufacturing test rules pertaining to an electronic component | |
JP2008047121A (ja) | 半導体集積回路の間接シミュレーション方法及び装置 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
KR20140109531A (ko) | 반도체 테스트 장치 및 반도체 테스트 방법 | |
WO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
JP2006318121A (ja) | 遅延付加rtl論理シミュレーション方法および装置 | |
Crouch et al. | P1687. 1: Accessing Embedded 1687 Instruments using Alternate Device Interfaces other than JTAG | |
JP5408052B2 (ja) | 集積回路、シミュレーション装置、及びシミュレーション方法 | |
JP2006242856A (ja) | テスタシミュレーション装置及びテスタシミュレーション方法 | |
JP2011081760A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130730 |