(57)【要約】【課題】効果的なシミュレーションが可能となるテストパターンを効率的に生成する。【解決手段】初期確率設定ファイル１３は、パラメタ項目ごとに各パラメタ値の比率を示しており、テストパターンジェネレータ２は、初期確率設定ファイル１３のパラメタ値ごとの比率に従って複数種のテストパターンを生成し、テストベンチ４にテストパターン３を用いたシミュレーションを実行させる。結果ファイル入力部１４が、シミュレーションの結果を示す結果ファイル６を入力し、実行ログ７に蓄積し、不具合履歴分析部９が実行ログ７から得られた不具合のあったテストパターンの要因を示す不具合要因履歴８を分析し、確率設定ファイルジェネレータ１０が不具合の発生頻度の高いパラメタ値の比率を高くして新たな確率設定ファイル１を生成し、テストパターンジェネレータ２が、確率設定ファイル１に従って新たなテストパターン３を生成する。【選択図】図１
2010211342.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションに用いられるテストパターンを管理するテストパターン管理装置であって、
各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成部と、
前記テストパターン生成部により生成されたテストパターンを用いたシミュレーションの結果が示されるシミュレーション結果情報を入力するシミュレーション結果情報入力部と、
前記シミュレーション結果情報入力部により入力されたシミュレーション結果情報を分析して、前記選択比率情報の各パラメタ項目におけるパラメタ値の選択比率を変更する選択比率変更部とを有することを特徴とするテストパターン管理装置。
【請求項２】
前記シミュレーション結果情報入力部は、
シミュレーションにおいて不具合が発生した不具合発生テストパターンを示すシミュレーション結果情報を入力し、
前記選択比率変更部は、
シミュレーション結果情報に示される不具合発生テストパターンに出現するパラメタ値を分析して、前記選択比率情報の各パラメタ項目におけるパラメタ値の選択比率を変更することを特徴とする請求項１に記載のテストパターン管理装置。
【請求項３】
前記選択比率変更部は、
不具合発生テストパターンにおける出現頻度の高いパラメタ値の組合せを抽出し、抽出した組合せに含まれる各パラメタ値の選択比率を上げることを特徴とする請求項２に記載のテストパターン管理装置。
【請求項４】
前記テストパターン生成部は、
前記選択比率変更部により選択比率が変更された選択比率情報を用いて新たなテストパターンを生成することを特徴とする請求項１〜３のいずれかに記載のテストパターン管理装置。
【請求項５】
シミュレーションに用いられるテストパターンを管理するテストパターン管理装置であって、
各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成部と、
シミュレーションにおいて不具合が発生した不具合発生テストパターンを示すシミュレーション結果情報を入力するシミュレーション結果情報入力部と、
不具合発生テストパターンに出現するパラメタ値を分析して、特定のパラメタ値の組合せを排除対象組合せとして抽出する不具合分析部と、
前記テストパターン生成部により生成された複数のテストパターンの中から、前記不具合分析部により抽出された排除対象組合せに一致するパラメタ値の組合せが含まれているテストパターンを抽出し、抽出したテストパターンをシミュレーションの対象から排除するテストパターン排除部とを有することを特徴とするテストパターン管理装置。
【請求項６】
前記不具合分析部は、
排除対象組合せとして、不具合発生テストパターンにおける出現頻度の高いパラメタ値の組合せを抽出することを特徴とする請求項５に記載のテストパターン管理装置。
【請求項７】
前記テストパターン排除部は、
前記テストパターン生成部により生成された複数のテストパターンのうち、シミュレーションに未だ用いられていないテストパターンの中から排除対象組合せに一致するパラメタ値の組合せが含まれているテストパターンを抽出することを特徴とする請求項５又は６に記載のテストパターン管理装置。
【請求項８】
前記テストパターン生成部は、
集積回路の論理検証シミュレーションに用いられるテストパターンを生成することを特徴とする請求項１〜７のいずれかに記載のテストパターン管理装置。
【請求項９】
コンピュータが、シミュレーションに用いられるテストパターンを管理するテストパターン管理方法であって、
前記コンピュータが、各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成ステップと、
前記コンピュータが、前記テストパターン生成ステップにより生成されたテストパターンを用いたシミュレーションの結果が示されるシミュレーション結果情報を入力するシミュレーション結果情報入力ステップと、
前記コンピュータが、前記シミュレーション結果情報入力ステップにより入力されたシミュレーション結果情報を分析して、前記選択比率情報の各パラメタ項目におけるパラメタ値の選択比率を変更する選択比率変更ステップとを有することを特徴とするテストパターン管理方法。
【請求項１０】
コンピュータが、シミュレーションに用いられるテストパターンを管理するテストパターン管理方法であって、
前記コンピュータが、各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成ステップと、
前記コンピュータが、シミュレーションにおいて不具合が発生した不具合発生テストパターンを示すシミュレーション結果情報を入力するシミュレーション結果情報入力ステップと、
前記コンピュータが、不具合発生テストパターンに出現するパラメタ値を分析して、特定のパラメタ値の組合せを排除対象組合せとして抽出する不具合分析ステップと、
前記コンピュータが、前記テストパターン生成ステップにより生成された複数のテストパターンの中から、前記不具合分析ステップにより抽出された排除対象組合せに一致するパラメタ値の組合せが含まれているテストパターンを抽出し、抽出したテストパターンをシミュレーションの対象から排除するテストパターン排除ステップとを有することを特徴とするテストパターン管理方法。
【請求項１１】
シミュレーションに用いられるテストパターンを管理するコンピュータに、
各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成処理と、
前記テストパターン生成処理により生成されたテストパターンを用いたシミュレーションの結果が示されるシミュレーション結果情報を入力するシミュレーション結果情報入力処理と、
前記シミュレーション結果情報入力処理により入力されたシミュレーション結果情報を分析して、前記選択比率情報の各パラメタ項目におけるパラメタ値の選択比率を変更する選択比率変更処理とを実行させることを特徴とするプログラム。
【請求項１２】
シミュレーションに用いられるテストパターンを管理するコンピュータに、
各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成処理と、
シミュレーションにおいて不具合が発生した不具合発生テストパターンを示すシミュレーション結果情報を入力するシミュレーション結果情報入力処理と、
不具合発生テストパターンに出現するパラメタ値を分析して、特定のパラメタ値の組合せを排除対象組合せとして抽出する不具合分析処理と、
前記テストパターン生成処理により生成された複数のテストパターンの中から、前記不具合分析処理により抽出された排除対象組合せに一致するパラメタ値の組合せが含まれているテストパターンを抽出し、抽出したテストパターンをシミュレーションの対象から排除するテストパターン排除処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路における論理検証方式に関する。
【背景技術】
【０００２】
従来のテストパターンを自動生成するＬＳＩ論理検証方式では、検証担当者がテストパターン発生のための確率設定ファイルを検証担当者の主観で作成し、確率設定ファイルのパラメタによってテストパターンを自動生成し、ＬＳＩ論理検証を実行していた。
もしくは確率設定ファイルをランダムに自動生成して、その確率設定ファイルのパラメタによってテストパターンを自動生成し、ＬＳＩ論理検証を実行していた。
例えば、特許文献１に記載の技術では、シミュレーションパターン発生に必要となる動作パラメタを自動生成する手段と動作パラメタを検証担当者が設定する手段が相当する。
また、確率設定ファイルによってテストパターンを自動生成する方法は特許文献２にも示されている。
このように確率設定ファイルのパラメタを用いてランダムなテストパターンを大量に生成してシミュレーションを実行することにより、さまざまなテストパターンを容易に生成し、人手によるテストパターンでは不十分であった複雑な条件のテストの実施や、論理が複雑化してきたために生じがちなテスト漏れの防止といった課題を解決してきた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２７１０９号公報  第４頁、第１７段落〜第２２段落
【特許文献２】特開平１０−２２１４１０号公報  第４頁、第１０段落〜第１２段落
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のテストパターンを自動生成するＬＳＩ論理検証方式では、検出された不具合の情報を検証担当者が分析して、不具合の多い事象を発生させるために人手で確率設定ファイルのパラメタを調整し、シミュレーションを実行しなければならなかったため、手間と時間がかかるという課題がある。
また、ランダムに確率設定ファイルを自動生成する場合は、特定の事象を多く発生させるような制御が困難なため、より多くのテストパターンを生成しなければならず、効率的ではないという課題がある。
【０００５】
本発明は、これらの課題を鑑みたものであり、人手を介さずに、効果的なシミュレーションが可能となるテストパターンを効率的に生成することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るテストパターン管理装置は、
シミュレーションに用いられるテストパターンを管理するテストパターン管理装置であって、
各々が複数のパラメタ値をとる複数種のパラメタ項目を示すとともにパラメタ項目ごとに各パラメタ値の選択比率を示す選択比率情報を取得し、取得した選択比率情報に示される各パラメタ項目におけるパラメタ値の選択比率に従って、パラメタ項目ごとにパラメタ値を選択して複数のテストパターンを生成するテストパターン生成部と、
前記テストパターン生成部により生成されたテストパターンを用いたシミュレーションの結果が示されるシミュレーション結果情報を入力するシミュレーション結果情報入力部と、
前記シミュレーション結果情報入力部により入力されたシミュレーション結果情報を分析して、前記選択比率情報の各パラメタ項目におけるパラメタ値の選択比率を変更する選択比率変更部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、シミュレーションの結果に基づいてパラメタ値の選択比率を自動で変更するため、人手を介さずに、シミュレーションの結果がよくないパラメタ値について集中して検証するように選択比率を変更でき、効率的な検証を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るＬＳＩ論理検証システムの構成例を示す図。
【図２】実施の形態１に係る初期確率設定ファイルの例を示す図。
【図３】実施の形態１に係るテストパターンの例を示す図。
【図４】実施の形態１に係る結果ファイルの例を示す図。
【図５】実施の形態１に係る実行ログの例を示す図。
【図６】実施の形態１に係る不具合要因履歴の例を示す図。
【図７】実施の形態１に係るテストパターン管理装置の動作例を示すフローチャート図。
【図８】実施の形態２に係るＬＳＩ論理検証システムの構成例を示す図。
【図９】実施の形態２に係るパターン生成サマリ情報の例を示す図。
【図１０】実施の形態２に係るテストパターン管理装置の動作例を示すフローチャート図。
【図１１】実施の形態１及び２に係るテストパターン管理装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、シミュレーションにおいて検出された不具合の情報を保持し、不具合の情報を分析して不具合の多い事象など特定の事象を多く発生させるための確率設定ファイルを自動に生成することにより、効率的に設計品質を高品質なものにする構成を説明する。
【００１０】
図１は、本実施の形態に係るＬＳＩ論理検証システムの全体の構成例を示す図である。
本実施の形態に係るＬＳＩ論理検証システムは、テストパターン管理装置１００、テストベンチ４、ＬＳＩ５に大別される。
ＬＳＩ５は、検証の対象となる集積回路である。
テストベンチ４は、テストパターンを読み込んでＬＳＩ５の論理検証のためのシミュレーションを実行する。
テストパターン管理装置１００は、テストベンチ４におけるシミュレーションに用いられるテストパターンを管理する。
【００１１】
テストパターン管理装置１００において、テストパターンジェネレータ２は、あらかじめ作成されている初期確率設定ファイル１３に示されるパラメタ値ごとの確率（選択比率）に従ってテストパターン３を複数生成する。
また、後述する確率設定ファイルジェネレータ１０によりパラメタ値の確率（選択比率）が変更された後の確率設定ファイル１を用いて新たなテストパターン３を複数生成する。
テストパターンジェネレータ２は、テストパターン生成部の例である。
【００１２】
結果ファイル入力部１４は、テストパターンジェネレータ２を用いたシミュレーションの結果が示される結果ファイル６（シミュレーション結果情報）を入力する。
結果ファイル６は、シミュレーションの結果としてテストベンチ４から出力される。
結果ファイル入力部１４は、入力した結果ファイル６を実行ログ７に格納する。
このため、実行ログ７には、複数のテストパターンを順次実行した結果の結果ファイル６が蓄積していく。
結果ファイル入力部１４は、シミュレーション結果情報入力部の例である。
【００１３】
不具合要因履歴８は、実行ログ７に蓄積されたシミュレーション結果のうち、シミュレーションがＮＧになったものの要因属性を抜き出したものである。
【００１４】
不具合履歴分析部９は、実行ログ７から不具合要因履歴８を抽出するとともに、抽出した不具合要因履歴８の内容を分析する。
確率設定ファイルジェネレータ１０は、不具合履歴分析部９により分析された情報に従って次にテストパターン３を生成するための確率設定ファイル１を生成する。
より具体的には、不具合履歴分析部９が、シミュレーションにおいて不具合が発生した不具合発生テストパターンに出現するパラメタ値を分析し、不具合発生テストパターンにおける出現頻度の高いパラメタ値の組合せを抽出し、確率設定ファイルジェネレータ１０が、抽出した組合せに含まれる各パラメタ値の確率（選択比率）を上げて新たな確率設定ファイルである確率設定ファイル１を生成する。
なお、不具合履歴分析部９と確率設定ファイルジェネレータ１０は、選択比率変更部の例である。
【００１５】
テストベンチ４は、検証対象のＬＳＩ５に対してトランザクションを実行するＣＰＵバスモデル４０１とＬＳＩ５に接続されるメモリであるＤＲＡＭモデル４０２とＳＲＡＭモデル４０３で構成される。
ＣＰＵバスモデル４０１は、ＬＳＩ５がターゲットになりうるバス５５０が複数ある場合は複数あってもよい。
またＬＳＩ５に接続されるデバイスがＤＲＡＭ、ＳＲＡＭ以外にあれば、テストベンチ４に、これらのデバイスに対応するモデルがあってもよい。
【００１６】
検証対象のＬＳＩ５は、ＣＰＵバスモデル４０１からバス５５０経由でコマンドを受け、内部バス５０６とのインタフェースをとる内部ブロックＡ５０１と、内部バス５０６と外部のＤＲＡＭとのインタフェースをとる内部ブロックＢ５０２と、内部バス５０６と外部のＳＲＡＭとのインタフェースをとる内部ブロックＣ５０３と、その他のＬＳＩ内部機能ブロックの内部ブロックＤ５０４と内部ブロックＥ５０５で構成される。
【００１７】
次に、テストパターン管理装置１００が、初期確率設定ファイル１３に従ってテストパターン３を生成し、テストベンチ４によるシミュレーションの結果に基づいて、次の確率設定ファイル１を生成するまでの動作を図７を参照しながら説明する。
【００１８】
まず、テストパターンジェネレータ２が、初期確率設定ファイル１３を読み込んでテストパターン３を生成し（Ｓ７０１）（テストパターン生成ステップ）、生成したテストパターンをテストベンチ４に出力する（Ｓ７０２）。
【００１９】
図２は、初期確率設定ファイル１３の例を示す。
初期確率設定ファイル１３は、パラメタ識別子１００１と、パラメタ項目１００２と、各パラメタ項目においてとり得る値（パラメタ値）とその値になる比率（選択比率）を示す値の組合せのリスト１００３（選択比率情報）が、設定するパラメタ項目の数だけ記述されている。
行番１３０と行番１４０の例を説明する。
パラメタ項目“ＴＡＲＧＥＴ”がとりうる値としてパラメタ値“ＤＲＡＭ”、“ＳＲＡＭ”、“内部ブロックＤ”、“内部ブロックＥ”があり、パラメタ項目“ＴＡＲＧＥＴ”がそれぞれのパラメタ値になる比率が“ＤＲＡＭ”が３、“ＳＲＡＭ”が２、“内部ブロックＤ”が４、“内部ブロックＥ”が１であることを示している。
つまり、パラメタ項目“ＴＡＲＧＥＴ”において、パラメタ値“ＤＲＡＭ”がテストパターンに含まれる確率（テストパターンのパラメタ値として選択される確率）は３／（３＋２＋４＋１）で計算され、３／１０である。
同様に、パラメタ値“ＳＲＡＭ”は２／１０、パラメタ値“内部ブロックＤ”は４／１０、パラメタ値“内部ブロックＥ”は１／１０と計算される。
この比率の値を元にテストパターンジェネレータ２はパラメタ項目“ＴＡＲＧＥＴ”について各パラメタ値の比率を取得し、各パラメタ値の比率に従って各パラメタ値を選択し、指定された数のテストパターン３を生成する。
このように他のパラメタ項目についても初期確率設定ファイル１３のパラメタ値ごとの比率に従ってテストパターンジェネレータ２がテストパターンに含ませるパラメタ値を選択し、テストパターン３を生成する。
【００２０】
図３は、テストパターン３の例である。
テストパターン３は、行番５３０〜６００で例示したテストの構成にかかわるパラメタ設定命令と、行番６２０〜７００で例示した初期値設定の命令列と、行番７２０〜７９０で例示したＣＰＵバスモデル４０１が発行するコマンド列と、行番８１０〜８８０で例示したシミュレーションした結果と期待値との比較の命令で構成される。
各命令の引数は確率設定ファイルで確率を指定されたパラメタ値によって構成される。
【００２１】
次に、このようにして生成されたテストパターン３をテストベンチ４が読み込む。
ここでテストベンチ４はテストパターン３に示された構成にかかわるパラメタに従ってシミュレーションの構成を決定し、テストベンチ４内および検証ターゲットのＬＳＩ５に初期値を設定し、ＣＰＵバスモデル４０１はテストパターン３に示されたコマンドをバス５５０を介してＬＳＩ５に対して発行する。
ＬＳＩ５は、ＣＰＵバスモデル４０１が発行したコマンドに従って所定の動作をする。
ＬＳＩ５が動作を完了するとテストベンチ４はテストパターン３に示された期待値比較コマンドを実行してシミュレーションした結果と期待値との比較を行う。
そして、テストベンチ４は、シミュレーション４０４が完了するとその結果を結果ファイル６に出力する。
【００２２】
図４に結果ファイル６の例を示す。
結果ファイル６は、テストパターン名とその中の何番目のコマンドであるかを示すコマンド番号と、そのコマンドのパラメタ値の情報を示すコマンド情報と、そのコマンドのシミュレーション結果がＯＫかＮＧかを示すコマンド結果と、そのテストパターンにおいて全てのコマンド結果がＯＫのときはＯＫ、一つでもＮＧを含むときはＮＧと示すテスト結果によって構成される。この結果ファイル６は実行ログ７に格納され蓄積される。
【００２３】
テストパターン管理装置１００では、結果ファイル入力部１４が結果ファイル６を入力する（Ｓ７０３）（シミュレーション結果情報入力ステップ）。
このようにテストパターンジェネレータ２で生成されたテストパターン３に従ってテストベンチ４で順次シミュレーションが実行され、シミュレーションの結果を示す結果ファイル６を結果ファイル入力部１４が順次入力して実行ログ７に蓄積していく。
【００２４】
図５は実行ログ７の例を示す。
実行ログ７は、テストパターン名と、コマンド番号と、そのコマンドのパラメタ値の情報を示すコマンド情報と、コマンドのシミュレーション結果とテストパターンの結果によって構成される。
【００２５】
次に、不具合履歴分析部９が、実行ログ７から不具合要因履歴８を抽出する（Ｓ７０４）。
不具合要因履歴８は実行ログ７に蓄積された情報からコマンド結果がＮＧとなっているコマンドのコマンド情報の集計結果である。
【００２６】
図６は不具合要因履歴８の例を示す。
不具合履歴分析部９は、実行ログ７のコマンド結果がＮＧとなっているコマンド情報から各パラメタ値を抽出し、その件数を累積する。
例えば、図６で内部ブロックＤに対する２バイトのリードにおけるＮＧの件数は５件である。
【００２７】
次に、不具合履歴分析部９が不具合要因履歴８に示された集計結果を分析して各パラメタにおける情報を確率設定ファイルジェネレータ１０へ渡す（Ｓ７０５）（選択比率変更ステップ）。
例えば、図６ではターゲットは“内部ブロックＤ”、リード（Ｒ）／ライト（Ｗ）は“リード（Ｒ）”、サイズは“２バイト”の件数が最も多く、次にターゲットが“ＳＲＡＭ”、リード／ライトが“リード”、サイズが“２バイト”の件数が続いている。
不具合履歴分析部９が確率設定ファイルジェネレータ１０に渡す情報としてはＮＧの多い順番でもよいし、ＮＧの比率でもよい。
【００２８】
次に、確率設定ファイルジェネレータ１０が、不具合履歴分析部９から受け取った情報と初期確率設定ファイルから次の確率設定ファイルを生成する（Ｓ７０６）（選択比率変更ステップ）。
例えば、図６の例ではターゲットが“内部ブロックＤ”であるときのＮＧ比率が高いため、内部ブロックＤの品質が低いと判断して前回の確率設定ファイルにおけるターゲットのパラメタ項目においてパラメタ値“内部ブロックＤ”の確率を高く変更する。
【００２９】
そして、テストパターンジェネレータ２は、更新された確率設定ファイル１を読み込んで次のテストパターン３を生成する。
そして不具合の修正された検証ターゲットＬＳＩ５の検証を続けていく。
【００３０】
以上のように、本実施の形態によれば、以前は人手によって行っていた不具合履歴の分析、および確率設定ファイルの生成を自動ですることができる。
また、従来、確率設定ファイルを自動で生成する場合には、パラメタ値の比率をランダムに決定していたが、本実施の形態によれば、不具合履歴によって確率設定ファイルを分析して確率設定ファイルを自動で生成するため、検証ターゲットの中で特に品質の低い部分を集中して検証することができ、効率的な検証を行うことができる。
【００３１】
このように、本実施の形態では、以下の手段を備えたＬＳＩ論理検証方式を説明した。
（１）テストパターン自動生成用の確率設定ファイルを自動生成する手段。
（２）シミュレーション結果の情報を保持する手段。
（３）上記（２）のシミュレーション結果の情報から不具合発生時の確率設定ファイルに設定するパラメタの傾向を分析する手段。
（４）上記（３）の不具合発生時の確率設定ファイルに設定するパラメタの傾向の情報を元に確率設定ファイルを自動に生成する手段。
【００３２】
実施の形態２．
以上の実施の形態１では、検証ターゲットの不具合を修正しながら検証を続け、効率的に検証ターゲットの品質を高めるようにした方式を説明したが、検証ターゲットの修正に時間のかかることもあるため、本実施の形態では、検証ターゲットを修正せずに検証を続け、検証期間の短縮を実現する方式を説明する。
【００３３】
従来のテストパターンを自動生成するＬＳＩ論理検証方式では、一つの確率設定ファイルで大量に生成したテストパターンを自動でシミュレーションするため、ある頻出する一つの事象の不具合が存在すると、多くのテストパターンにてシミュレーションがＮＧとなるため、その解析に多くの時間がかかるとともに、その中の他の事象の不具合を見落とす可能性が高く、その結果、開発期間が長期化するという課題がある。
【００３４】
本実施の形態では、このような課題に対応するために、シミュレーション結果の不具合情報を分析してある事象の不具合が発生した場合は、すでに生成した後続のテストパターンのうち、同じ事象が再現するテストパターンのシミュレーション実行を停止させる。
これにより、同類の事象の不具合による解析を省くことができ、他の事象の不具合を早期に発見することができる。そして、このように新たなる不具合の発見を早めることにより開発期間の短縮が可能となる。
【００３５】
図８は、本実施の形態に係るＬＳＩ論理検証システムの全体の構成例を示す図である。
実施の形態１で示した図１の構成に加え、テストパターンフィルタ１１とパターン生成サマリ情報１２を追加した構成となっている。
テストパターンフィルタ１１及びパターン生成サマリ情報１２以外の要素は、図１に示したものと同様である。
【００３６】
パターン生成サマリ情報１２は、テストパターンジェネレータ２がテストパターンを生成した結果のパラメタの情報を格納したものである。
【００３７】
テストパターンフィルタ１１は、不具合履歴分析部９によって分析された不具合要因履歴の情報から次に実行するテストパターンをとりやめ、その次に実行するテストパターンを決定する。
より具体的には、本実施の形態では、不具合履歴分析部９が不具合要因履歴８に出現するパラメタ値を分析して、不具合要因履歴８における出現頻度の高いのパラメタ値の組合せを排除対象組合せとして抽出し、テストパターンフィルタ１１は、テストパターンジェネレータ２により生成された複数のテストパターンの中から不具合履歴分析部９により抽出された排除対象組合せに一致するパラメタ値の組合せが含まれているテストパターンを抽出し、抽出したテストパターンをシミュレーションの対象から排除する。
テストパターンフィルタ１１は、テストパターン排除部の例である。また、本実施の形態では、不具合履歴分析部９は、不具合分析部の例である。
【００３８】
図９は、パターン生成サマリ情報１２の例を示す。
パターン生成サマリ情報１２は、テストパターン名とＣＰＵバスモデル４０１の“ターゲット”、“リード／ライト”、“サイズ”、そのコマンドの“出現（組合せのあり／なし）”の情報である。
パターン生成サマリ情報１２に含まれる“出現（組合せのあり／なし）”は、同じパラメタ値の組合せが含まれるテストパターンが他に存在するか否かを示す。
例えば、図９のテストパターン名：ＴＰ１０１において、ターゲットが“内部ブロックＤ”、リード／ライトが“リード”、サイズが“２バイト”のコマンドは、出現が“１（組合せあり）”となっており、このコマンドのパラメタ値の組合せと同様の組合せのコマンドが他のテストパターンに含まれていることを示している。
なお、不具合履歴分析部９によって分析された不具合要因履歴８の情報は実施の形態１と同様に図６で示される例のとおりである。
【００３９】
次に、本実施の形態に係るテストパターン管理装置１００の動作例を図１０を用いて説明する。
【００４０】
図１０において、Ｓ１００１〜Ｓ１００４の処理は、図７に示したＳ７０１〜Ｓ７０４と同様であるため、説明を省略する。
【００４１】
Ｓ１００５では、不具合履歴分析部９が、不具合要因履歴８に出現するパラメタ値を分析して、不具合要因履歴８における出現頻度の高いのパラメタ値の組合せを排除対象組合せとして抽出する（不具合分析ステップ）。
次に、テストパターンフィルタ１１が、パターン生成サマリ情報１２の“出現”の項目の値を参照し、不具合履歴分析部９により指定された排除対象組合せが他のテストパターンに存在しているか否かを判断し（Ｓ１００６）、他のテストパターンに排除対象組合せがなければ（Ｓ１００６でＮＯ）、処理がＳ１００２に戻り、排除対象組合せがあれば（Ｓ１００６でＹＥＳ）、排除対象組合せが含まれるテストパターンを抽出して、シミュレーションの対象から排除する（Ｓ１００７）（テストパターン排除ステップ）。
シミュレーションの対象から排除するテストパターンは、テストパターンジェネレータ２により生成されたテストパターンのうちシミュレーションに未だ用いられていないものである。
【００４２】
図６の例では、不具合履歴分析部９によって分析された、ターゲットが“内部ブロックＤ”、リード／ライトが“リード”、サイズが“２バイト”の組合せのトランザクションに不具合が多いことがわかっている。
テストパターンフィルタ１１はパターン生成サマリ情報１２からターゲットが“内部ブロックＤ”、リード／ライトが“リード”、サイズが“２バイト”の組合せのテストパターンを検索する。
次に実行するテストパターンがその組合せのトランザクションを含むものであるときは、テストパターンフィルタ１１はそのテストパターンの実行を行わないようテストベンチ４に指示する（もしくは、そのテストパターンをテストベンチ４に出力しないようにテストパターンジェネレータ２に指示する）。
また、更に次のテストパターンについてターゲットが“内部ブロックＤ”、リード／ライトが“リード”、サイズが“２バイト”の組合せのトランザクションを含むかを検索する。
そして不具合の多い組合せのトランザクションがないテストパターンをテストベンチ４に読み込ませシミュレーションを実施する。
【００４３】
従来は不具合の多い組合せのトランザクションのあるテストパターンを大量に実行すると、同一要因の不具合により大量にＮＧが発生してしまうため、その解析にも膨大な時間がかかってしまう課題があったが、本実施の形態では、不具合の多い組合せのトランザクションのあるテストパターンの実行をせず、不具合の出ていない、もしくは少ない組合せのトランザクションのテストパターンを実行することにより同一要因の不具合によるＮＧについて解析する時間を省略することができ、さらに不具合のない、もしくは少ない組合せのトランザクションのテストパターンによるシミュレーションにより未知の不具合検出を早期化することが可能になる。
【００４４】
以上、本実施の形態では、以下の手段を備えたＬＳＩ論理検証方式を説明した。
（１）テストパターン自動生成用の確率設定ファイルを自動生成する手段。
（２）自動生成したテストパターンのパラメタ情報を保持する手段。
（３）シミュレーション結果の情報を保持する手段。
（４）シミュレーション結果の情報から不具合発生時の確率設定ファイルに設定するパラメタの傾向を分析する手段。
（５）上記（２）の保持されたテストパターンのパラメタ情報と、上記（３）の保持されたシミュレーション結果の情報から、次以降に実行するテストパターンについて実行するかしないかを判断する手段。
（６）上記（５）テストパターンを実行するかしないかを判断する手段により、実行しないと判断したときに、そのテストパターンを実行しないようにフィルタをかける手段。
【００４５】
最後に、実施の形態１及び２に示したテストパターン管理装置１００のハードウェア構成例について説明する。
図１１は、実施の形態１及び２に示すテストパターン管理装置１００のハードウェア資源の一例を示す図である。
なお、図１１の構成は、あくまでもテストパターン管理装置１００のハードウェア構成の一例を示すものであり、テストパターン管理装置１００のハードウェア構成は図１１に記載の構成に限らず、他の構成であってもよい。
【００４６】
図１１において、テストパターン管理装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００４７】
通信ボード９１５は、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていても構わない。
【００４８】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００４９】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００５０】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
テストパターン管理装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００５１】
上記プログラム群９２３には、実施の形態１及び２の説明において「〜部」及び「〜ジェネレータ」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００５２】
ファイル群９２４には、実施の形態１及び２の説明において、「〜の分析」、「〜の抽出」、「〜の比較」、「〜の変更」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメタが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメタは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメタは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１及び２で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５３】
また、実施の形態１及び２の説明において「〜部」及び「〜ジェネレータ」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」及び「〜ジェネレータ」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１及び２の「〜部」及び「〜ジェネレータ」としてコンピュータを機能させるものである。あるいは、実施の形態１及び２の「〜部」及び「〜ジェネレータ」の手順や方法をコンピュータに実行させるものである。
【００５４】
このように、実施の形態１及び２に示すテストパターン管理装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」及び「〜ジェネレータ」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００５５】
１  確率設定ファイル、２  テストパターンジェネレータ、３  テストパターン、４  テストベンチ、５  ＬＳＩ、６  結果ファイル、７  実行ログ、８  不具合要因履歴、９  不具合履歴分析部、１０  確率設定ファイルジェネレータ、１１  テストパターンフィルタ、１２  パターン生成サマリ情報、１３  初期確率設定ファイル、１４  結果ファイル入力部、１００  テストパターン管理装置。
【図１】
2010211342.tif 000003
【図２】
2010211342.tif 000004
【図３】
2010211342.tif 000005
【図４】
2010211342.tif 000006
【図５】
2010211342.tif 000007
【図６】
2010211342.tif 000008
【図７】
2010211342.tif 000009
【図８】
2010211342.tif 000010
【図１０】
2010211342.tif 000011
【図１１】
2010211342.tif 000012
【図９】
2010211342.tif 000013