(57)【要約】【課題】  よりテストパターンの省略効果が高く、半導体装置の設計データに対する機能検証にかかる時間及びコストをより効果的に削減できる機能検証技術を提供する。【解決手段】  記憶領域の複数と論理回路を備えた半導体装置の設計データに対しテストパターンを複数用いて行なう機能検証であって、テストパターン夫々を、書き込み処理パターンを除く部分テストパターンを比較して所定のテストパターン群に分類する分類工程と、テストパターン群毎に、基準テストパターンに含まれる読み出し処理パターンを特定し、夫々に対応する内部状態を記憶する内部状態記憶工程と、テストパターン群毎に、テストパターン夫々における読み出し処理を実行する記憶領域とその記憶内容に基づいてテストパターンの実行順序を設定し、各テストパターンで利用する内部状態を選択する実行手順設定工程と、選択した内部状態を用いて機能検証を実行する機能検証工程とを実行する。【選択図】        図３
2008117110.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域の複数と論理回路を備えた半導体装置の設計データに対して、前記記憶領域に対する読み出し処理にかかる読み出し処理パターンを含むテストパターンを複数用いて行なう機能検証方法であって、
前記テストパターン夫々を、前記記憶領域に対する書き込み処理にかかる書き込み処理パターンが含まれる前記テストパターンについては前記書き込み処理パターンを除く比較用テストパターンを用いて比較して、前記テストパターン夫々を所定のテストパターン群に分類する分類工程と、
前記テストパターン群毎に、前記テストパターン群に含まれる前記テストパターンから基準テストパターンを選択し、前記基準テストパターンに含まれる前記読み出し処理パターンを特定し、前記読み出し処理パターン毎に、前記読み出し処理の実行時間、前記読み出し処理を実行した前記記憶領域、及び、前記読み出し処理の実行時間における前記論理回路を構成する各記憶素子の記憶内容を含む内部状態を記憶する内部状態記憶工程と、
前記テストパターン群毎に、前記基準テストパターンにおける前記読み出し処理を実行する前記記憶領域とその記憶内容、及び、前記基準テストパターンを除く前記テストパターン夫々における前記読み出し処理を実行する前記記憶領域とその記憶内容に基づいて、前記テストパターン夫々の実行順序を設定し、前記基準テストパターン以外の前記テストパターン夫々について、利用する前記内部状態を選択する実行手順設定工程と、
前記テストパターン群毎に、前記基準テストパターン以外の前記テストパターン夫々について、選択した前記内部状態を用いて前記機能検証を実行する機能検証工程と、を実行することを特徴とする機能検証方法。
【請求項２】
前記分類工程は、前記テストパターン若しくは前記比較用テストパターンが完全に一致する前記テストパターンを同一の前記テストパターン群として分類することを特徴とする請求項１に記載の機能検証方法。
【請求項３】
前記実行手順設定工程は、前記基準テストパターン以外の前記テストパターン毎に、先に実行される前記テストパターンにおける前記記憶領域夫々の記憶内容に基づいて、記憶内容の再設定が必要な前記記憶領域、及び、再設定が必要な前記記憶領域に対する前記読み出し処理の実行時間を特定して、前記基準テストパターンを用いた前記機能検証における前記内部状態の再利用性を示す再利用指標を求め、前記再利用指標に基づいて前記再利用性が高い前記テストパターンから順に実行順序を設定することを特徴とする請求項１または２に記載の機能検証方法。
【請求項４】
前記実行手順設定工程は、前記基準テストパターンを除く前記テストパターン夫々について、特定された再設定が必要な前記記憶領域の内、最も早い段階で前記読み出し処理が実行される前記記憶領域の前記読み出し処理の実行時間に基づいて、利用する前記内部状態を選択し、後に実行される前記テストパターンにおける再設定が必要な前記記憶領域に基づいて、前記内部状態を記憶する前記読み出し処理を決定し、
前記機能検証工程は、前記テストパターン毎の機能検証において、前記実行手順設定工程で決定された前記内部状態を記憶する前記読み出し処理の前記内部状態を記憶することを特徴とする請求項３に記載の機能検証方法。
【請求項５】
前記機能検証工程は、前記テストパターン夫々に対する前記機能検証において、前記実行手順設定工程で選択した前記内部状態を取得し、前記内部状態を前記記憶領域及び前記記憶素子に設定した後、前記機能検証を実行する前記テストパターンの前記記憶領域の記憶内容に基づいて、前記記憶領域の記憶内容を再設定することを特徴とする請求項１〜４の何れか１項に記載の機能検証方法。
【請求項６】
記憶領域の複数と論理回路を備えた半導体装置の設計データに対して、前記記憶領域に対する読み出し処理にかかる読み出し処理パターンを含むテストパターンを複数用いて機能検証を行なう機能検証装置であって、
前記テストパターン夫々を、前記記憶領域に対する書き込み処理にかかる書き込み処理パターンが含まれる前記テストパターンについては前記書き込み処理パターンを除く比較用テストパターンを用いて比較して、前記テストパターン夫々をテストパターン群に分類する分類手段と、
前記テストパターン群毎に、前記テストパターン群に含まれる前記テストパターンから基準テストパターンを選択し、前記基準テストパターンに含まれる前記読み出し処理パターンを特定し、前記読み出し処理パターン毎に、前記読み出し処理の実行時間、前記読み出し処理を実行した前記記憶領域、及び、前記読み出し処理の実行時間における前記論理回路を構成する各記憶素子の記憶内容を含む内部状態を記憶する内部状態記憶手段と、
前記テストパターン群毎に、前記基準テストパターンにおける前記読み出し処理を実行する前記記憶領域とその記憶内容、及び、前記基準テストパターンを除く前記テストパターン夫々における前記読み出し処理を実行する前記記憶領域とその記憶内容に基づいて、前記テストパターン夫々の実行順序を設定し、前記基準テストパターン以外の前記テストパターン夫々について、利用する前記内部状態を選択する実行手順設定手段と、
前記テストパターン群毎に、前記基準テストパターン以外の前記テストパターン夫々について、選択した前記内部状態を用いて前記機能検証を実行する機能検証手段と、を備えることを特徴とする機能検証装置。
【請求項７】
前記分類手段は、前記テストパターン若しくは前記比較用テストパターンが完全に一致する前記テストパターンを同一の前記テストパターン群として分類することを特徴とする請求項６に記載の機能検証装置。
【請求項８】
前記実行手順設定手段は、前記基準テストパターン以外の前記テストパターン毎に、先に実行される前記テストパターンにおける前記記憶領域夫々の記憶内容に基づいて、記憶内容の再設定が必要な前記記憶領域、及び、再設定が必要な前記記憶領域に対する前記読み出し処理の実行時間を特定して、前記基準テストパターンを用いた前記機能検証における前記内部状態の再利用性を示す再利用指標を求め、前記再利用指標に基づいて前記再利用性が高い前記テストパターンから順に実行順序を設定することを特徴とする請求項６または７に記載の機能検証装置。
【請求項９】
前記実行手順設定手段は、前記基準テストパターンを除く前記テストパターン夫々について、特定された再設定が必要な前記記憶領域の内、最も早い段階で前記読み出し処理が実行される前記記憶領域の前記読み出し処理の実行時間に基づいて、利用する前記内部状態を選択し、後に実行される前記テストパターンにおける再設定が必要な前記記憶領域に基づいて、前記内部状態を記憶する前記読み出し処理を決定し、
前記機能検証手段は、前記テストパターン毎の機能検証において、前記実行手順設定手段で決定された前記内部状態を記憶する前記読み出し処理の前記内部状態を記憶することを特徴とする請求項８に記載の機能検証装置。
【請求項１０】
前記機能検証手段は、前記テストパターン夫々に対する前記機能検証において、前記実行手順設定手段で選択した前記内部状態を取得し、前記内部状態を前記記憶領域及び前記記憶素子に設定した後、前記機能検証を実行する前記テストパターンの前記記憶領域の記憶内容に基づいて、前記記憶領域の記憶内容を再設定することを特徴とする請求項６〜９の何れか１項に記載の機能検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶領域の複数と論理回路を備えた半導体装置の設計データに対する機能検証技術に関する。
【背景技術】
【０００２】
通常、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等のハードウェア記述言語で設計された半導体装置の設計データ（ハードウェア記述言語から論理合成された回路の設計データ等を含む）が、仕様通りに設計されていることを確認するための機能検証は、コンピュータ上のシミュレーションにより行われる。例えば、半導体装置の設計データにテストパターンを入力してシミュレーションを実行し、実行結果として得られる半導体装置の設計データからの出力と予め用意された半導体装置の正しい出力結果である期待値とを比較して、半導体装置からの出力と期待値とが一致した場合に、半導体装置の設計データが仕様通りに設計されていることを確認する。近年、設計する半導体装置の回路の大規模化に伴って検証すべき項目が増加し、その結果、テストパターン長及びテストパターン数が増加している。一方、シミュレーションはコンピュータ上で膨大な量の演算によって行われるため、実際に半導体装置を動作させるのに比べて非常に時間がかかるという特徴がある。つまり、回路の大規模化、テストパターン長及びテストパターン数の増加はシミュレーションにかかる時間を大幅に増加させており、半導体装置の設計データに対する機能検証にかかるコストが問題となっている。
【０００３】
このようなシミュレーション時間を低減するための技術としては、例えば、複数のテストパターンついて、テストパターンの先頭サイクルから順に一致・不一致を検証して共通パターンを抽出し、共通パターン部分のシミュレーションを適宜省略して半導体装置の設計データに対する機能検証を行なう機能検証技術がある（例えば、特許文献１参照）。この機能検証技術は、より具体的には、共通パターンの抽出後、複数のテストパターンから選択された１つのテストパターンによるシミュレーションを行ない、当該シミュレーションにおける共通パターンの最終サイクルでの半導体装置の内部状態を記憶する。内部状態は、例えば、半導体装置を構成するレジスタ等の記憶手段の記憶内容や、半導体装置を構成する論理回路で用いられるラッチ回路等の記憶素子の記憶内容等である。そして、他のテストパターンを用いたシミュレーション実行時に、記憶した内部状態を用いて半導体装置を構成するレジスタや記憶素子を設定し、共通パターンの終了時間からシミュレーションを開始する。つまり、特許文献１に記載の機能検証技術では、複数のテストパターンを用いたシミュレーションにおいて、共通パターン部分のシミュレーションを省略することによって、複数のテストパターン全体で、シミュレーションにかかる時間の短縮を図っている。
【０００４】
以下、特許文献１の機能検証技術について、図１９及び図２０を基に詳細に説明する。ここで、図１９は、特許文献１の機能検証技術を適用する半導体装置の一構成例を示しており、図２０は、図１９に示す半導体装置を機能検証するためのテストパターン群（テストパターンＴＡ、ＴＢ及びＴＣ）の概略構成を示している。
【０００５】
具体的には、図１９に示すように、半導体装置３００は、半導体装置３００の主要動作を実現する論理回路で構成されるコアブロック３０１、回路動作の各種パラメータを一時的に記憶する複数のレジスタからなるレジスタブロック３０２、及び、半導体装置３００の初期設定値や動作プログラム等を記憶したＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｂｅｒ）３０３を備えて構成され、これらはバスライン３０４を介して接続されている。コアブロック３０１は、機能ブロックＦＡ〜ＦＣを備えており、レジスタブロック３０２及びＲＯＭ３０３に対するアクセス動作を適宜実行するように構成されている。また、図２０に示すように、テストパターンＴＡは、半導体装置３００を初期化する「初期化パターン」、初期設定のための各種値を読み出す「ＲＯＭ読み出しパターン」、各レジスタに対する初期設定を行う「レジスタ設定パターンα」及び半導体装置が備える機能ブロックＦＡの検証を行なう「機能テストパターンＰＡ」をこの順に備えて構成されている。テストパターンＴＢは、「初期化パターン」、「ＲＯＭ読み出しパターン」、「レジスタ設定パターンα」及び半導体装置が備える機能ブロックＦＢの検証を行なう「機能テストパターンＰＢ」をこの順に備えて構成されている。テストパターンＴＣは、「初期化パターン」、「ＲＯＭ読み出しパターン」、各レジスタに対しレジスタ設定パターンαとは異なる初期設定を行う「レジスタ設定パターンβ」及び半導体装置が備える機能ブロックＦＣの検証を行なう「機能テストパターンＰＣ」をこの順に備えて構成されている。
【０００６】
特許文献１に記載の機能検証技術において、上記テストパターン群を用いて機能検証する場合、テストパターンＴＡとテストパターンＴＢの間では、時間Ｔ１〜Ｔ４の「初期化パターン」、「ＲＯＭ読み出しパターン」及び「レジスタ設定パターンα」が共通であり、テストパターンＴＡとテストパターンＴＣの間では、時間Ｔ１〜Ｔ３の「初期化パターン」及び「ＲＯＭ読み出しパターン」が共通であることから、テストパターンＴＡによるシミュレーション時に、時間Ｔ３及びＴ４で、半導体装置３００の内部状態を記憶する。テストパターンＴＢによるシミュレーションは、テストパターンＴＡによるシミュレーション時に記憶した時間Ｔ４における半導体装置３００の内部状態を読み出し、この内部状態を半導体装置３００の設計データに設定して、時間Ｔ４からシミュレーションを再開する。同様に、テストパターンＴＣによるシミュレーションは、テストパターンＴＡによるシミュレーション時に記憶した時間Ｔ３における半導体装置３００の内部状態を読み出し、この内部状態を半導体装置３００の設計データに設定して、時間Ｔ３からシミュレーションを再開する。つまり、テストパターンＴＢによるシミュレーションについては、時間Ｔ１〜Ｔ４、テストパターンＴＣによるシミュレーションについては、時間Ｔ１〜Ｔ３までのテストパターンＴＡと重複した部分のシミュレーションを省略することができ、複数のテストパターンを使用した機能検証の効率を上げることが可能になる。
【０００７】
【特許文献１】特開２００６−１５５０８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の機能検証技術では、テストパターンの先頭からの共通性だけを考慮しているため、特に、例えば、１つの機能について複数のレジスタ設定別にテストパターンを用意して機能検証を行なう場合等、各テストパターンの間で比較的早い段階で差異が現れる場合には、テストパターンの省略を十分に図ることができず、機能検証にかかる時間及びコストを十分に低減することができないという問題があった。
【０００９】
ここで、図２１は、図１９に示す半導体装置３００の設計データを機能検証するための２０本のテストパターンＴＡ１〜ＴＡ１０、ＴＢ１〜ＴＢ１０の概略構成を示している。詳細には、テストパターンＴＡ１〜ＴＡ１０は、コアブロック３０１を構成する機能ブロックＡに対する機能検証を行なうテストパターンであり、レジスタ設定α、β、γ〜σ別に作成されている。図２１に示すように、テストパターンＴＡ１〜ＴＡ１０では、時間Ｔ１〜Ｔ２の「初期化パターン」、時間Ｔ２〜Ｔ３の「ＲＯＭ３０３からの設定値の読み出しパターン」及び時間Ｔ４〜Ｔ１０００の「機能ブロックＦＡに対する検証パターン」は共通である。テストパターンＴＢ１〜ＴＢ１０は、コアブロック３０１を構成する機能ブロックＢに対する機能検証を行なうテストパターンであり、レジスタ設定α、δ、ε〜φ別に作成されている。図２１に示すように、テストパターンＴＢ１〜ＴＢ１０では、時間Ｔ１〜Ｔ２の「初期化パターン」、時間Ｔ２〜Ｔ３の「ＲＯＭ３０３からの設定値の読み出しパターン」及び時間Ｔ４〜Ｔ１０００の「機能ブロックＦＢに対する検証パターン」は共通である。
【００１０】
図２１に示すテストパターン群を用いて半導体装置３００に対する機能検証を実行する場合、特許文献１に記載の機能検証技術では、各テストパターンの先頭からの共通性のみを考慮してシミュレーションを省略するため、例えば、テストパターンＴＡ２〜ＴＡ１０では、時間Ｔ３〜Ｔ４のレジスタ設定パターンがテストパターンＴＡ１と異なるため、時間Ｔ１〜Ｔ３までの共通パターンについてシミュレーションが省略可能となる。同様に、テストパターンＴＢ１では、時間Ｔ１〜時間Ｔ４のシミュレーションが省略可能となり、テストパターンＴＢ２〜ＴＢ１０では、時間Ｔ１〜時間Ｔ３のシミュレーションが省略可能となる。しかし、テストパターンの先頭から時間Ｔ３またはＴ４までの時間は、各機能ブロックに対する検証パターンの長さ、即ち、時間Ｔ４〜時間Ｔ１０００（パターンエンド）までの間の時間に比べると僅かであり、省略効果が小さいと考えられる。
【００１１】
更に、記憶領域の複数と論理回路を備えた半導体装置では、機能別・レジスタ設定別に機能検証を行なう必要があることから、近年の回路規模の増大や回路の複雑化により、レジスタの記憶領域の増大に伴うレジスタ設定の組み合わせが増大し、これに応じてテストパターンの数が飛躍的に増大することとなる。しかし、特許文献１に記載の機能検証技術では、図２１に示すように、機能別に複数のレジスタ設定を用意して機能検証を行なう場合には、シミュレーションの省略効果が小さく機能検証の効率が十分に上がらないことから、このようなテストパターン群に対してより効果的な省略効果を持つ機能検証技術が望まれている。
【００１２】
本発明は上記の問題に鑑みてなされたものであり、その目的は、特に、比較的早い設定段階でのみ差異が生じる複数のテストパターンを用いる場合等に対応して、よりテストパターンの省略効果が高く、半導体装置の設計データに対する機能検証にかかる時間及びコストをより効果的に削減できる機能検証方法を提供する点にある。また、特に、比較的早い設定段階でのみ差異が生じる複数のテストパターンを用いる場合等に対応して、よりテストパターンの省略効果が高く、半導体装置の設計データに対する機能検証にかかる時間及びコストをより効果的に削減できる機能検証装置を提供する。
【課題を解決するための手段】
【００１３】
上記目的を達成するための本発明に係る機能検証方法は、記憶領域の複数と論理回路を備えた半導体装置の設計データに対して、前記記憶領域に対する読み出し処理にかかる読み出し処理パターンを含むテストパターンを複数用いて行なう機能検証方法であって、前記テストパターン夫々を、前記記憶領域に対する書き込み処理にかかる書き込み処理パターンが含まれる前記テストパターンについては前記書き込み処理パターンを除く比較用テストパターンを用いて比較して、前記テストパターン夫々を所定のテストパターン群に分類する分類工程と、前記テストパターン群毎に、前記テストパターン群に含まれる前記テストパターンから基準テストパターンを選択し、前記基準テストパターンに含まれる前記読み出し処理パターンを特定し、前記読み出し処理パターン毎に、前記読み出し処理の実行時間、前記読み出し処理を実行した前記記憶領域、及び、前記読み出し処理の実行時間における前記論理回路を構成する各記憶素子の記憶内容を含む内部状態を記憶する内部状態記憶工程と、前記テストパターン群毎に、前記基準テストパターンにおける前記読み出し処理を実行する前記記憶領域とその記憶内容、及び、前記基準テストパターンを除く前記テストパターン夫々における前記読み出し処理を実行する前記記憶領域とその記憶内容に基づいて、前記テストパターン夫々の実行順序を設定し、前記基準テストパターン以外の前記テストパターン夫々について、利用する前記内部状態を選択する実行手順設定工程と、前記テストパターン群毎に、前記基準テストパターン以外の前記テストパターン夫々について、選択した前記内部状態を用いて前記機能検証を実行する機能検証工程と、を実行することを第１の特徴とする。
【００１４】
上記目的を達成するための本発明に係る機能検証装置は、記憶領域の複数と論理回路を備えた半導体装置の設計データに対して、前記記憶領域に対する読み出し処理にかかる読み出し処理パターンを含むテストパターンを複数用いて機能検証を行なう機能検証装置であって、前記テストパターン夫々を、前記記憶領域に対する書き込み処理にかかる書き込み処理パターンが含まれる前記テストパターンについては前記書き込み処理パターンを除く比較用テストパターンを用いて比較して、前記テストパターン夫々をテストパターン群に分類する分類手段と、前記テストパターン群毎に、前記テストパターン群に含まれる前記テストパターンから基準テストパターンを選択し、前記基準テストパターンに含まれる前記読み出し処理パターンを特定し、前記読み出し処理パターン毎に、前記読み出し処理の実行時間、前記読み出し処理を実行した前記記憶領域、及び、前記読み出し処理の実行時間における前記論理回路を構成する各記憶素子の記憶内容を含む内部状態を記憶する内部状態記憶手段と、前記テストパターン群毎に、前記基準テストパターンにおける前記読み出し処理を実行する前記記憶領域とその記憶内容、及び、前記基準テストパターンを除く前記テストパターン夫々における前記読み出し処理を実行する前記記憶領域とその記憶内容に基づいて、前記テストパターン夫々の実行順序を設定し、前記基準テストパターン以外の前記テストパターン夫々について、利用する前記内部状態を選択する実行手順設定手段と、前記テストパターン群毎に、前記基準テストパターン以外の前記テストパターン夫々について、選択した前記内部状態を用いて前記機能検証を実行する機能検証手段と、を備えることを第１の特徴とする。
【００１５】
上記特徴の機能検証方法及び機能検証装置によれば、テストパターン夫々を、書き込み処理パターンが含まれるテストパターンについては書き込み処理パターンを除く比較用テストパターンを用いて比較して、テストパターン夫々をテストパターン群に分類し、テストパターン群毎に、読み出し処理パターンを特定して読み出し処理夫々の実行段階における内部状態を記憶し、この内部状態を用いて機能検証を行なう。このため、比較的早い設定段階でのみ差異が生じる複数のテストパターンを用いる場合等に、比較的初期の設定段階よりも遅く実行される検証段階の読み出し処理における内部状態を記憶して再利用することが可能になる。つまり、比較的初期の設定段階よりも遅く実行される読み出し処理における内部状態が再利用可能になることで、各テストパターンについて、より遅い段階からシミュレーションを実行することが可能になり、各テストパターンのシミュレーションの再利用性を高めることができる。即ち、テストパターンの省略効果をより効果的に高めることができ、記憶領域の複数と論理回路を備えた半導体装置の設計データに対する機能検証にかかる時間及びコストを効果的に削減することが可能になる。
【００１６】
上記第１の特徴の本発明に係る機能検証方法は、前記分類工程が、前記テストパターン若しくは前記比較用テストパターンが完全に一致する前記テストパターンを同一の前記テストパターン群として分類することを第２の特徴とする。
【００１７】
上記第１の特徴の本発明に係る機能検証装置は、前記分類手段が、前記テストパターン若しくは前記比較用テストパターンが完全に一致する前記テストパターンを同一の前記テストパターン群として分類することを第２の特徴とする。
【００１８】
上記特徴の機能検証方法及び機能検証装置によれば、テストパターン若しくは比較用テストパターンが完全に一致するテストパターン、即ち、記憶領域の設定に差異があるが、検証段階における動作が完全に同一となるテストパターンをテストパターン群として分類するので、各テストパターンが、同じテストパターン群に属する他のテストパターンの検証段階における内部状態を利用することが可能になり、テストパターン群への分類が容易になる。
【００１９】
上記第１または第２の特徴の本発明に係る機能検証方法は、前記実行手順設定工程が、前記基準テストパターン以外の前記テストパターン毎に、先に実行される前記テストパターンにおける前記記憶領域夫々の記憶内容に基づいて、記憶内容の再設定が必要な前記記憶領域、及び、再設定が必要な前記記憶領域に対する前記読み出し処理の実行時間を特定して、前記基準テストパターンを用いた前記機能検証における前記内部状態の再利用性を示す再利用指標を求め、前記再利用指標に基づいて前記再利用性が高い前記テストパターンから順に実行順序を設定することを第３の特徴とする。
【００２０】
上記第１または第２の特徴の本発明に係る機能検証装置は、前記実行手順設定手段が、前記基準テストパターン以外の前記テストパターン毎に、先に実行される前記テストパターンにおける前記記憶領域夫々の記憶内容に基づいて、記憶内容の再設定が必要な前記記憶領域、及び、再設定が必要な前記記憶領域に対する前記読み出し処理の実行時間を特定して、前記基準テストパターンを用いた前記機能検証における前記内部状態の再利用性を示す再利用指標を求め、前記再利用指標に基づいて前記再利用性が高い前記テストパターンから順に実行順序を設定することを第３の特徴とする。
【００２１】
上記特徴の機能検証方法及び機能検証装置によれば、再利用性が高いテストパターンから順に実行順序を設定するので、テストパターン全体での再利用性、即ち、テストパターンの圧縮率を高めることができる。
【００２２】
上記第３の特徴の本発明に係る機能検証方法は、前記実行手順設定工程が、前記基準テストパターンを除く前記テストパターン夫々について、特定された再設定が必要な前記記憶領域の内、最も早い段階で前記読み出し処理が実行される前記記憶領域の前記読み出し処理の実行時間に基づいて、利用する前記内部状態を選択し、後に実行される前記テストパターンにおける再設定が必要な前記記憶領域に基づいて、前記内部状態を記憶する前記読み出し処理を決定し、前記機能検証工程が、前記テストパターン毎の機能検証において、前記実行手順設定工程で決定された前記内部状態を記憶する前記読み出し処理の前記内部状態を記憶することを第４の特徴とする。
【００２３】
上記第３の特徴の本発明に係る機能検証装置は、前記実行手順設定手段が、前記基準テストパターンを除く前記テストパターン夫々について、特定された再設定が必要な前記記憶領域の内、最も早い段階で前記読み出し処理が実行される前記記憶領域の前記読み出し処理の実行時間に基づいて、利用する前記内部状態を選択し、後に実行される前記テストパターンにおける再設定が必要な前記記憶領域に基づいて、前記内部状態を記憶する前記読み出し処理を決定し、前記機能検証手段が、前記テストパターン毎の機能検証において、前記実行手順設定手段で決定された前記内部状態を記憶する前記読み出し処理の前記内部状態を記憶することを第４の特徴とする。
【００２４】
上記特徴の機能検証方法及び機能検証装置によれば、基準テストパターンを除くテストパターン夫々について、後に実行されるテストパターンで利用可能な内部状態が設定可能な場合に、機能検証時に当該内部状態を記憶し、後に実行されるテストパターンで利用するように構成したので、テストパターン全体での再利用性及び圧縮率をより高めることができる。
【００２５】
上記第１〜第４の特徴の本発明に係る機能検証方法は、前記機能検証工程が、前記テストパターン夫々に対する前記機能検証において、前記実行手順設定工程で選択した前記内部状態を取得し、前記内部状態を前記記憶領域及び前記記憶素子に設定した後、前記機能検証を実行する前記テストパターンの前記記憶領域の記憶内容に基づいて、前記記憶領域の記憶内容を再設定することを第５の特徴とする。
【００２６】
上記第１〜第４の特徴の本発明に係る機能検証装置は、前記機能検証手段が、前記テストパターン夫々に対する前記機能検証において、前記実行手順設定手段で選択した前記内部状態を取得し、前記内部状態を前記記憶領域及び前記記憶素子に設定した後、前記機能検証を実行する前記テストパターンの前記記憶領域の記憶内容に基づいて、前記記憶領域の記憶内容を再設定することを第５の特徴とする。
【００２７】
上記特徴の機能検証方法及び機能検証装置によれば、内部状態を記憶領域及び記憶素子に設定した後、記憶領域の記憶内容を再設定するように構成したので、基準テストパターン以外のテストパターンを正確に実行することが可能になり、内部状態を利用したシミュレーションの具体的な実行手順を得ることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係る機能検証方法及び機能検証装置（以下、適宜「本発明方法」、「本発明装置」と呼称する）の実施形態を図面に基づいて説明する。
【００２９】
〈第１実施形態〉
本発明方法及び本発明装置の第１実施形態について、図１〜図１１を基に説明する。尚、本実施形態の本発明装置は、コンピュータ上で実行することにより本発明方法の各工程を実行する機能検証プログラムでソフトウェア的に構成されている。
【００３０】
先ず、本発明装置の構成について、図１及び図２を基に説明する。ここで、図１は、本発明装置を構築したコンピュータの概略構成を示す概略ブロック図であり、図２は、本発明装置を構成する各手段の概略構成を示す概略ブロック図である。
【００３１】
本発明装置１は、後述するレジスタ（記憶領域に相当）の複数とコアブロック（論理回路に相当）を備えた半導体装置の設計データに対して、レジスタに対する読み出し処理にかかる読み出し処理パターンを含むテストパターンを複数用いて機能検証を行なう機能検証装置１であり、図１に示すコンピュータ１０上に構成されている。本発明装置１を搭載したコンピュータ１０は、図１に示すように、本発明装置１で用いる情報を記憶するためのハードディスク等から構成される補助記憶装置１１、シミュレーションの実行等の所定の演算を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２、本発明方法を実行する機能検証プログラム等が格納されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３、ＣＰＵ１２が演算時に使用する作業記憶領域として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４、半導体装置の設計データやテストパターン等の情報を受け付ける入力装置１５、及び、シミュレーション結果等を表示するための表示装置１６を備えて構成されており、ＣＰＵ１２と、補助記憶装置１１、ＲＯＭ１３、ＲＡＭ１４、入力装置１５及び表示装置１６は夫々バスライン１７ａ〜１７ｅで相互に接続されている。
【００３２】
本発明装置１は、図２に示すように、テストパターン夫々を、レジスタに対する書き込み処理にかかるレジスタ設定パターン（書き込み処理パターンに相当）が含まれるテストパターンについてはレジスタ設定パターンを除く比較用テストパターンを用いて比較して、テストパターン夫々をテストパターン群に分類する分類手段２、テストパターン群毎に、テストパターン群に含まれるテストパターンから基準テストパターンを選択し、基準テストパターンに含まれる読み出し処理パターンを特定し、読み出し処理パターン毎に、読み出し処理の実行時間、読み出し処理を実行した記憶領域、及び、読み出し処理の実行時間におけるコアブロックを構成する各記憶素子の記憶内容を含む内部状態を記憶する内部状態記憶手段３、テストパターン群毎に、基準テストパターンにおける読み出し処理を実行するレジスタとその記憶内容、及び、基準テストパターンを除くテストパターン夫々における読み出し処理を実行するレジスタとその記憶内容に基づいて、テストパターン夫々の実行順序を設定し、基準テストパターン以外のテストパターン夫々について、利用する内部状態を選択する実行手順設定手段４、及び、テストパターン群毎に、基準テストパターン以外のテストパターン夫々について、選択した内部状態を用いて機能検証を実行する機能検証手段５を備えて構成される。
【００３３】
次に、本実施形態の本発明方法について、図３〜図１１を基に説明する。ここで、図３は、本発明方法の各工程を示すフローチャートである。
【００３４】
先ず、本発明装置１は、図３に示すように、半導体装置の設計データ及び当該設計データの機能検証のためのテストパターンを取得する（ステップ＃１０１）。ここで、図４は、本発明装置１及び本発明方法により機能検証を行なう半導体装置１００の一構成例を示している。更に、図５は、本実施形態で用いるテストパターンＴＰ１〜ＴＰ２０の一構成例を示しており、図６は、半導体装置１００に入力される一部の信号について、図５に示すテストパターンＴＰ１〜ＴＰ２０で設定された入力波形を部分的に示している。具体的には、半導体装置１００は、図４に示すように、半導体装置１００の主要動作を実現する論理回路で構成されるコアブロック１０１、回路動作の各種パラメータを一時的に記憶する５つのレジスタＲＡ〜ＲＥからなるレジスタブロック１０２、及び、半導体装置１００の初期設定値や動作プログラム等を記憶したＲＯＭ１０３を備えて構成され、これらはバスライン１０４を介して接続されている。コアブロック１０１は、機能ブロックＦＡ及び機能ブロックＦＢを備えており、レジスタブロック１０２及びＲＯＭ１０３に対するアクセス動作を適宜実行するように構成されている。尚、図４では図６に示す各信号線を図示していないが、本実施形態では、図６に示す各信号線は、半導体装置１００のコアブロック１０１に入力される構成となっている。
【００３５】
また、本実施形態では、図５及び図６に示すように、半導体装置１００の設計データを機能検証するためのテストパターンとして、テストパターンＴＰ１〜ＴＰ２０が作成されている。テストパターンＴＰ１〜ＴＰ２０は、図５及び図６に示すように、レジスタ設定ｒ１〜ｒ１８の何れかを用いて半導体装置１００のレジスタＲＡ〜ＲＥの値を設定して、機能ブロックＦＡまたは機能ブロックＦＢに対する機能検証を実行するように構成されており、具体的には、各テストパターンは、時間Ｔ１〜Ｔ３の「初期化パターン」、時間Ｔ３〜Ｔ１００の「ＲＯＭ１０３からの設定値の読み出しパターン」、時間Ｔ１００〜Ｔ１５０の「レジスタ設定パターン」、時間Ｔ１５０〜Ｔ１００００の「半導体装置１００の機能ブロックに対する検証パターン」から構成されている。
【００３６】
続いて、本発明装置１は、図３に示すように、分類手段２により、テストパターンＴＰ１〜ＴＰ２０夫々を、レジスタＲＡ〜ＲＥに対するレジスタ設定パターンが含まれるテストパターンについてはレジスタ設定パターンを除く比較用テストパターンを用いて比較して、テストパターンＴＰ１〜ＴＰ２０を所定のテストパターン群に分類する（ステップ＃１１０、分類工程）。
【００３７】
具体的には、分類手段２は、先ず、テストパターンＴＰ１〜ＴＰ２０について、レジスタ設定パターンを検索し、レジスタ設定パターンを含む場合は、レジスタ設定パターンを除いた比較用テストパターンを抽出する（ステップ＃１１１）。レジスタ設定パターンを含まないテストパターンについては、当該テストパターンをそのまま比較用テストパターンとして用いる。本実施形態では、テストパターンＴＰ１〜ＴＰ２０から、時間Ｔ１００〜Ｔ１５０の「レジスタ設定パターン」を除いて比較用テストパターンとする。
【００３８】
更に、分類手段２は、ステップ＃１１１においてレジスタ設定パターンが検索される毎に、書き込み処理されたレジスタとその記憶内容を補助記憶装置１１に記憶する。ここで、図７は、レジスタ設定パターンの一例を示している。より詳細には、例えば、図７において、書き込み処理の実行を指示するｗｒｉｔｅ＿ｅｎ信号が‘１’になった時に、書き込み処理を行なうレジスタのアドレスを指定するａｄｄｒ［１５：０］信号の値を判定することで、書き込み処理を実行するレジスタを判定することができる。ここでは、レジスタＲＡのアドレスは０ｘ０１００、レジスタＲＢのアドレスは０ｘ０１０１、レジスタＲＣのアドレスは０ｘ０１０２、レジスタＲＤのアドレスは０ｘ０１０３、レジスタＲＥのアドレスは０ｘ０１０４に設定されている。そして、ｗｒｉｔｅ＿ｅｎ信号が‘１’になった時に、ｄａｔａ［１５：０］信号の値を、ａｄｄｒ［１５：０］信号で指定されたレジスタに書き込む。また、図８は、図５に示すテストパターンＴＰ１〜ＴＰ２０のレジスタ設定パターンにより各レジスタＲＡ〜ＲＥに書き込まれる値を示している。より具体的には、図５及び図８に示すように、テストパターンＴＰ１では、時間Ｔ１００からＴ１５０までのレジスタ設定パターンｒ１により、レジスタＲＡに‘０’、レジスタＲＢに‘０’、レジスタＲＣに‘０’、レジスタＲＤに‘０’、レジスタＲＥに‘０’が、テストパターンＴＰ２では、レジスタ設定パターンｒ２により、レジスタＲＡに‘１’、レジスタＲＢに‘０’、レジスタＲＣに‘１’、レジスタＲＤに‘０’、レジスタＲＥに‘０’が夫々書き込まれる。
【００３９】
引き続き、分類手段２は、図３に示すように、テストパターンＴＰ１〜ＴＰ２０の比較用テストパターンを夫々比較して（ステップ＃１１２）、完全一致する比較用テストパターンに対応するテストパターン同士をグループ化してテストパターン群に分類する（ステップ＃１１３）。本実施形態では、テストパターンＴＰ１〜ＴＰ２０の全てのテストパターンにおいて、時間Ｔ１００からＴ１５０までの「レジスタ設定パターン」を除外した比較用テストパターンを用いて比較する。尚、本実施形態のテストパターンＴＰ１〜ＴＰ２０は、図５に示すように、時間Ｔ１〜Ｔ３の「初期化パターン」、時間Ｔ３〜Ｔ１００の「ＲＯＭ１０３からの設定値の読み出しパターン」が各テストパターンの間で共通であることから、時間Ｔ１５０〜Ｔ１００００の「半導体装置１００の機能ブロックに対する検証パターン」により、分類されるテストパターン群が決定する。このため、本実施形態では、図８に示すように、テストパターンＴＰ１〜ＴＰ２０は、機能ブロックＦＡの検証を行なうテストパターンＴＰ１〜ＴＰ１０からなるグループＧＡ（テストパターン群に相当）と、機能ブロックＦＢの検証を行なうテストパターンＴＰ１１〜ＴＰ２０からなるグループＧＢ（テストパターン群に相当）の２つのグループに分類されることになる。
【００４０】
引き続き、本発明装置１は、図３に示すように、内部状態記憶手段３により、テストパターン群毎に、テストパターン群に含まれるテストパターンから基準テストパターンを選択し、基準テストパターンに含まれる読み出し処理パターンを特定し、読み出し処理パターン毎に、読み出し処理の実行時間、読み出し処理を実行したレジスタ、及び、読み出し処理の実行時間における論理回路を構成する各記憶素子の記憶内容を含む内部状態を記憶する（ステップ＃１２０、内部状態記憶工程）。
【００４１】
具体的には、内部状態記憶手段３は、先ず、グループＧＡ及びグループＧＢから夫々基準テストパターンを選択する（ステップ＃１２１）。本実施形態では、グループＧＡからテストパターンＴＰ１を、グループＧＢからテストパターンＴＰ１１を基準テストパターンとして選択する。尚、基準テストパターンの選択は、任意であり、他のテストパターンを基準テストパターンとして選択しても良い。続いて、本発明装置１は、ステップ＃１０１で取得した設計データと基準テストパターンを用いてシミュレーションを実行する（ステップ＃１２２）。
【００４２】
更に、内部状態記憶手段３は、基準テストパターンを用いたシミュレーションにおいて、レジスタブロック１０２を構成するレジスタＲＡ〜ＲＥの何れかに対し読み出し動作が行なわれると、読み出し処理が実行されたレジスタとその値、及び、半導体装置１００のコアブロック１０１を構成する各記憶素子の記憶内容等の内部状態を、補助記憶装置１１に記憶する。尚、本実施形態において、内部状態を記憶する読み出し処理は、時間Ｔ１５０からＴ１００００までの機能ブロックに対する機能検証の間に実施されるレジスタＲＡ〜ＲＥに対する読み出し処理を対象としており、半導体装置１００のＲＯＭ１０３に対する読み出し処理は含まない。
【００４３】
ここで、図９は、読み出し処理パターンの一例と内部状態を記憶するタイミングを示している。具体的には、図９において、ｒｅａｄ＿ｅｎ信号が‘１’になると、半導体装置１００は、ａｄｄｒ［１５：０］信号の値を参照して読み出し処理を行なうレジスタを特定し、該レジスタの値を読み出してｄａｔａ［１５：０］信号として出力する。内部状態記憶手段３は、図９の破線Ｘが示すタイミングで、ａｄｄｒ［１５：０］信号により特定されるレジスタとｄａｔａ［１５：０］信号の値、及び、コアブロック１０１を構成する各記憶素子の記憶内容を記憶する。ここで、図１０は、本実施形態において、グループＧＡ及びグループＧＢ夫々における読み出し処理の実行時間である参照時間、読み出し処理を実行した参照レジスタ、コアブロック１０１を構成する各記憶素子の記憶内容の保存時間の関係を示している。尚、図４では図９に示す各信号線を図示していないが、本実施形態では、図６に示す各信号線と同様に、図９に示す各信号線は、半導体装置１００のコアブロック１０１に入力される構成となっている。図１０に示すように、本実施形態では、グループＧＡの基準テストパターンであるテストパターンＴＰ１を用いたシミュレーションでは、時間Ｔ３０００でレジスタＲＡに対する読み出し処理が、時間Ｔ４０００でレジスタＲＢに対する読み出し処理が、時間Ｔ７０００でレジスタＲＣに対する読み出し処理が、時間Ｔ９０００でレジスタＲＥに対する読み出し処理が夫々実行されている。同様に、グループＧＢの基準テストパターンであるテストパターンＴＰ１１を用いたシミュレーションでは、時間Ｔ４０００でレジスタＲＢに対する読み出し処理が、時間Ｔ５０００でレジスタＲＥに対する読み出し処理が、時間Ｔ９０００でレジスタＲＤに対する読み出し処理が夫々実行されている。
【００４４】
引き続き、本発明装置１は、図３に示すように、実行手順設定手段４により、グループＧＡ及びグループＧＢ夫々について、基準テストパターンにおける読み出し処理を実行するレジスタとその記憶内容、及び、基準テストパターンを除くテストパターン夫々における読み出し処理を実行するレジスタとその記憶内容に基づいて、テストパターン夫々の実行順序を設定し、基準テストパターン以外のテストパターン夫々について、利用する内部状態を選択する（ステップ＃１３０、実行手順設定工程）。
【００４５】
具体的には、実行手順設定手段４は、最初に、基準テストパターンとその他のテストパターン、ここでは、基準テストパターンから書き込み処理パターンを除いた比較用基準テストパターンと、基準テストパターン以外のテストパターン夫々から書き込み処理パターンを除いた比較用テストパターン夫々を比較し、基準テストパターン以外のテストパターン夫々について再利用性を示す再利用指標を求め、再利用指標に基づいて再利用性の高いパターンから優先的にシミュレーション順序を割り当てる（ステップ＃１３１）。本実施形態では、先ず、基準テストパターン以外のテストパターン毎に、先に実行されるテストパターンにおけるレジスタＲＡ〜ＲＥ夫々の記憶内容に基づいて、記憶内容の再設定が必要なレジスタ、及び、再設定が必要なレジスタに対する読み出し処理の実行時間を特定して、基準テストパターンを用いたシミュレーションで記憶した内部状態の再利用性を示す再利用指標を求める。そして、再利用指標に基づいて再利用性が高いテストパターンから順に実行順序を設定する。本実施形態では、基準テストパターン以外のテストパターン夫々について、基準テストパターンのレジスタ設定とは異なる設定を行うレジスタを再設定が必要なレジスタとして特定する。そして、基準テストパターン以外のテストパターン夫々について、再設定が必要なレジスタに対する読み出し処理の内、最も早い段階で実行される読み出し処理の実行時間をシミュレーションの基準再利用終了時間とし、シミュレーションの開始から基準再利用終了時間までの間の時間を再利用可能時間として求める。本実施形態では、各テストパターンの再利用可能時間をテストパターン夫々の再利用指標として規定し、再利用指標の値の大きいテストパターンから優先的に実行順位を設定する。
【００４６】
より詳細には、例えば、グループＧＡにおいて、基準テストパターンＴＰ１とテストパターンＴＰ２を比較する場合、図８を参照すると、レジスタＲＡ、ＲＣの設定値が異なることから、レジスタＲＡ、ＲＣを再設定が必要なレジスタであると判定する。更に、図１０に示すように、時間Ｔ３０００でレジスタＲＡに対する読み出し処理が、時間Ｔ７０００でレジスタＲＣに対する読み出し処理が実行されることから、テストパターンＴＰ２では、レジスタＲＣより先に読み出し処理が実施されるレジスタＲＡに対する読み出し処理の時間Ｔ３０００が、基準再利用終了時間となる。従って、テストパターンＴＰ２では、シミュレーション開始時間Ｔ１から時間Ｔ３０００までの間の時間を、基準テストパターンＴＰ１のシミュレーションを再利用可能な再利用可能時間として求めることができる。同様にして、テストパターンＴＰ３〜ＴＰ６はシミュレーション開始時間Ｔ１から時間Ｔ３０００まで、テストパターンＴＰ７、ＴＰ９はシミュレーション開始時間Ｔ１から時間Ｔ７０００まで、テストパターンＴＰ８はシミュレーション開始時間Ｔ１から時間Ｔ４０００まで、テストパターンＴＰ１０はシミュレーション開始時間Ｔ１から時間Ｔ９０００までの間の時間を、再利用可能時間として求めることができる。以上より、各テストパターンの再利用指標の値は、ＴＰ１０＞ＴＰ７＝ＴＰ９＞ＴＰ８＞ＴＰ２＝ＴＰ３＝ＴＰ４＝ＴＰ５＝ＴＰ６となる。シミュレーションの実行順位はこの順に設定する。同様にして、グループＧＢのテストパターンＴＰ１２〜ＴＰ２０の再利用指標の値は、ＴＰ２０＞ＴＰ１６＝ＴＰ１９＞ＴＰ１２＝ＴＰ１３＝ＴＰ１４＝ＴＰ１７＝ＴＰ１８と求められる。
【００４７】
続いて、実行手順設定手段４は、図３に示すように、基準テストパターン以外のテストパターン夫々に対して、シミュレーション開始時に読み出す内部状態と、後に実行する他のテストパターンで用いることができる内部状態がある場合には、当該内部状態を記憶する時間を設定する（ステップ＃１３２）。具体的には、本実施形態では、実行手順設定手段４は、先ず、シミュレーション開始時に読み出す内部状態を求めるテストパターンについて、先に実行するテストパターン夫々に対する再利用指標としての再利用可能時間を求め、再利用指標の値の最も大きいテストパターンを再利用テストパターンとして特定する。そして、シミュレーション開始時に読み出す内部状態を求めるテストパターンと再利用テストパターンの間で設定の異なるレジスタの内、最も早い段階で読み出し処理が実行されるレジスタに対する読み出し処理の実行時間を再利用終了時間とする。また、再利用終了時間における再利用テストパターンの内部状態を、シミュレーション開始時に読み出す再利用内部状態として設定する。このようにして、全ての基準テストパターン以外のテストパターン夫々について、再利用テストパターンと再利用内部状態を設定する。更に、本実施形態では、基準テストパターン以外のテストパターン夫々について、再利用終了時間後に実行される読み出し処理がある場合、この読み出し処理夫々について内部状態を記憶するように設定する。このようにして再利用内部状態を選択することで、各テストパターンのシミュレーションの再利用性を最大にすることができる。
【００４８】
より詳細には、ここでは、例えば、グループＧＡにおいて、基準テストパターンＴＰ１に対する再利用指標の値が最も大きいテストパターンＴＰ１０の場合、再設定が必要なレジスタはレジスタＲＥのみであり、このレジスタＲＥに対する読み出し処理の実行時間Ｔ９０００を再利用終了時間とし、基準テストパターンＴＰ１のシミュレーションにおける時間Ｔ９０００での内部状態を、テストパターンＴＰ１０で利用する再利用内部状態として選択する。テストパターンＴＰ１０の場合、時間Ｔ９０００より後に実行されるレジスタに対する読み出し処理はないため、内部状態を記憶する時間は設定しない。同様に、次に基準テストパターンＴＰ１に対する再利用指標の値が大きいテストパターンＴＰ７については、基準テストパターンＴＰ１の時間Ｔ７０００における内部状態を、テストパターンＴＰ７で利用する再利用内部状態として選択する。更に、テストパターンＴＰ７では、再利用終了時間Ｔ７０００より後、時間Ｔ９０００で読み出し処理が実行されるので、時間Ｔ９０００における内部状態を記憶するように設定する。また、基準テストパターンＴＰ１に対する再利用指標の値がテストパターンＴＰ７と同じであるテストパターンＴＰ９については、基準テストパターンＴＰ１に対する再利用指標の値より、テストパターンＴＰ７に対する再利用指標の値が大きくなることから、テストパターンＴＰ７を再利用テストパターンとし、テストパターンＴＰ７の内部状態を利用する。テストパターンＴＰ９は、テストパターンＴＰ７とレジスタＲＥの設定が異なることから、レジスタＲＥの読み出し時間Ｔ９０００を再利用終了時間とし、テストパターンＴＰ７のシミュレーションにおける時間Ｔ９０００での内部状態を再利用内部状態として設定する。テストパターンＴＰ７の場合、時間Ｔ９０００より後に実行されるレジスタに対する読み出し処理はないため、内部状態を記憶する時間は設定しない。同様にして、グループＧＡ、ＧＢの各テストパターンについて、シミュレーション開始時に読み出す再利用内部状態と、後に実行する他のテストパターンで利用するために記憶する内部状態を設定する。
【００４９】
引き続き、実行手順設定手段４は、図３に示すように、基準テストパターン以外のテストパターンについて、再設定が必要なレジスタとその値を抽出する（ステップ＃１３３）。具体的には、実行手順設定手段４は、再設定が必要なレジスタを求めるテストパターンについて、再利用終了時間における読み出し処理及び再利用終了時間後に実行される読み出し処理の何れかにおいて参照されるレジスタを特定し、特定されたレジスタの内、ステップ＃１３２で求めた再利用テストパターンのレジスタ設定と異なる設定値を有するレジスタを、再設定が必要なレジスタとして特定し、補助記憶装置１１に記憶する。同様にして、基準テストパターン以外のテストパターン夫々について、再設定が必要なレジスタを特定し、補助記憶装置１１に記憶する。より詳細には、例えば、テストパターンＴＰ２は、基準テストパターンＴＰ１の時間Ｔ３０００での内部状態を読み出すように設定されており、時間Ｔ３０００以後、レジスタＲＡ、ＲＢ、ＲＣ、ＲＥに対する読み出し処理が実行される。更に、図８に示すように、レジスタＲＡ、ＲＢ、ＲＣ、ＲＥの内、レジスタＲＡ及びＲＣの設定が、再利用テストパターンである基準テストパターンＴＰ１の設定値と異なるため、レジスタＲＡ及びＲＣを再設定が必要なレジスタとして特定する。そして、レジスタＲＡを特定する情報とその設定値‘１’、レジスタＲＣを特定する情報とその設定値‘１’を補助記憶装置１１に記憶する。
【００５０】
尚、図８及び図１０より、グループＧＢのテストパターンＴＰ１３及びＴＰ１７については、テスト終了までテストパターン１２と異なるレジスタ値が読み出されることがなく、テストパターンＴＰ１５については、テスト終了まで基準テストパターンと異なるレジスタ値が参照されることがないため、再設定が必要なレジスタが存在しないことから、シミュレーションの実行は不要であると判定する。
【００５１】
ここで、図１１は、上記ステップ＃１３０の実行手順設定工程の実行結果として、グループＧＡ、ＧＢの各テストパターンについて、グループ内でのシミュレーションの実行順位、シミュレーション実行開始時に読み出す再利用内部状態、後に実行する他のテストパターンで用いるために記憶する内部状態、シミュレーション実行開始時に再設定が必要なレジスタとその再設定値を夫々示している。
【００５２】
引き続き、本発明装置１は、図３に示すように、機能検証手段５により、グループＧＡ、ＧＢ毎に、基準テストパターン以外のテストパターン夫々について、選択した内部状態を用いて機能検証を実行する（ステップ＃１４０、機能検証工程）。具体的には、機能検証手段５は、図１１に示すシミュレーションの実行順位に基づいて、シミュレーションを実行するテストパターンを選択する。機能検証手段５は、選択された選択テストパターンについて、先ず、図１１に示すステップ＃１３０の実行手順設定工程の実行結果から再利用内部状態を取得し、取得した再利用内部状態に基づいて、半導体装置１００の内部状態を設定する。更に、図１１に示すステップ＃１３０の実行手順設定工程の実行結果に基づいて、再設定が必要なレジスタとその値を取得し、半導体装置１００の再設定が必要なレジスタに取得した値を再設定する。そして、再利用終了時間から選択テストパターンのシミュレーションを開始する。シミュレーション実行中のテストパターンにおいて、内部状態を記憶する時間が設定されている場合には、その時間における内部状態を記憶する。同様にして、機能検証手段５は、図１１に示すシミュレーションの実行順位に従って、基準テストパターン以外の全てのテストパターン（ここでは、更に、ステップ＃１３３でシミュレーションの実行が不要であると判定されたテストパターンを除く）についてシミュレーションを実行する。より詳細には、機能検証手段５は、グループＧＡについては、先ず、テストパターンＴＰ１０のシミュレーションを実行する。テストパターンＴＰ１０のシミュレーションにおいて、機能検証手段５は、基準テストパターンＴＰ１の時間Ｔ９０００における内部状態を読み出し、該内部状態を半導体装置１００の設計データに設定する。更に、レジスタブロック１０２のレジスタＲＥに‘１’を再設定した上で、時間Ｔ９０００からシミュレーションを開始する。レジスタＲＥの再設定は、本実施形態では、シミュレータの機能を利用して直接レジスタ値を上書きして行なうが、正規のレジスタ書き込み手順で書き込む等、別の手段を取ってもよい。同様にして、グループＧＡ及びグループＧＢの残りのテストパターンについてシミュレーションを実行する。
【００５３】
以上より、本実施形態では、本発明装置１により本発明方法を実行することで、テストパターンＴＰ２の時間Ｔ１〜時間Ｔ３０００の間、テストパターンＴＰ３の時間Ｔ１〜時間Ｔ４０００の間、テストパターンＴＰ４の時間Ｔ１〜時間Ｔ７０００の間、テストパターンＴＰ５の時間Ｔ１〜時間Ｔ７０００の間、テストパターンＴＰ６の時間Ｔ１〜時間Ｔ９０００の間、テストパターンＴＰ７の時間Ｔ１〜時間Ｔ７０００の間、テストパターンＴＰ８の時間Ｔ１〜時間Ｔ４０００の間、テストパターンＴＰ９の時間Ｔ１〜時間Ｔ９０００の間、テストパターンＴＰ１０の時間Ｔ１〜時間Ｔ９０００の間、テストパターンＴＰ１２の時間Ｔ１〜時間Ｔ４０００の間、テストパターンＴＰ１４の時間Ｔ１〜時間Ｔ９０００の間、テストパターンＴＰ１６の時間Ｔ１〜時間Ｔ５０００の間、テストパターンＴＰ１８の時間Ｔ１〜時間Ｔ５０００の間、テストパターンＴＰ１９の時間Ｔ１〜時間Ｔ９０００の間、テストパターンＴＰ２０の時間Ｔ１〜時間Ｔ９０００の間のシミュレーションと、テストパターンＴＰ１３、ＴＰ１５、ＴＰ１７に対するシミュレーションを省略することができ、時間Ｔ１〜時間Ｔ３の「初期化パターン」及び「ＲＯＭ１０３からの設定値の読み出しパターン」までを省略可能な従来技術に比べ、大幅にテストパターンの省略効果を高めることができる。
【００５４】
〈第２実施形態〉
本発明方法及び本発明装置の第２実施形態について、図１２〜図１８を基に説明する。本実施形態では、上記第１実施形態とは、本発明方法及び本発明装置で用いる半導体装置及びテストパターンの構成が異なる場合について説明する。尚、本実施形態の本発明装置１の構成は、図１及び図２に示す上記第１実施形態の構成と同じである。
【００５５】
先ず、本実施形態において、本発明方法及び本発明装置により機能検証を行なう半導体装置と機能検証に用いるテストパターンについて、図１２及び図１３を基に説明する。ここで、図１２は、図２に示す本発明装置１及び本発明方法により機能検証を行なう半導体装置２００の一構成例を示しており、図１３は、本実施形態で用いるテストパターンＴＰ２１〜ＴＰ２５の一構成例を示している。具体的には、半導体装置２００は、図１２に示すように、半導体装置２００の主要動作を実現する論理回路で構成されるコアブロック２０１、回路動作の各種パラメータを一時的に記憶する３つのレジスタＲＡ〜ＲＣからなるレジスタブロック２０２、及び、半導体装置２００の初期設定値や動作プログラム等を記憶したＲＯＭ２０３を備えて構成され、これらはバスライン２０４を介して接続されている。コアブロック２０１は、機能ブロックＦＡを備えており、レジスタブロック２０２及びＲＯＭ２０３に対するアクセス動作を適宜実行するように構成されている。本実施形態では、レジスタブロック２０２の３つのレジスタＲＡ〜ＲＣは、夫々、初期値として'１'が設定されている。
【００５６】
また、本実施形態では、図１３に示すように、半導体装置２００の設計データを機能検証するためのテストパターンとして、テストパターンＴＰ２１〜ＴＰ２５が用いられる。本実施形態のテストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５は、夫々、図１３に示すように、レジスタ設定ｒ２１〜ｒ２４を用いて半導体装置２００のレジスタＲＡ〜ＲＣを設定して機能ブロックＦＡに対する機能検証を行なうように構成され、テストパターンＴＰ２２は、レジスタ設定を行わず、初期設定の状態で機能検証を行なうように構成されている。具体的には、テストパターンＴＰ２１、ＴＰ２３、ＴＰ２４は、時間Ｔ１〜Ｔ３の「初期化パターン」、時間Ｔ３〜Ｔ１００の「ＲＯＭ２０３からの設定値の読み出しパターン」、時間Ｔ１００〜Ｔ１３０の「レジスタ設定パターン」、時間Ｔ１３０〜Ｔ１００００の「半導体装置２００の機能ブロックに対する検証パターン」から構成されている。テストパターンＴＰ２２は、時間Ｔ１〜Ｔ３の「初期化パターン」、時間Ｔ３〜Ｔ１００の「ＲＯＭ２０３からの設定値の読み出しパターン」、時間Ｔ１００〜Ｔ９９７０の「半導体装置２００の機能ブロックに対する検証パターン」から構成されており、テストパターンＴＰ２５は、時間Ｔ１〜Ｔ３の「初期化パターン」、時間Ｔ３〜Ｔ１００の「ＲＯＭ２０３からの設定値の読み出しパターン」、時間Ｔ１００〜Ｔ１２０の「レジスタ設定パターン」、時間Ｔ１２０〜Ｔ９９９０の「半導体装置２００の機能ブロックに対する検証パターン」から構成されている。尚、本実施形態では、簡単のために、テストパターンＴＰ２１〜ＴＰ２５は、全て、半導体装置２００のコアブロック２０１の機能ブロックＡに対する機能検証を行なうテストパターンとなっているが、半導体装置２００のコアブロック２０１が他の機能ブロックを備える場合には、当該機能ブロックに対する機能検証を行なうテストパターンを用意し、これらを機能検証を行なう機能ブロック毎にグループに分類する。
【００５７】
本実施形態の本発明方法について、図３、及び、図１２〜図１８を基に説明する。尚、本発明方法の処理手順の基本的な構成は、図３に示す上記第１実施形態の処理手順と同じである。
【００５８】
先ず、本発明装置１は、図３に示すように、半導体装置の設計データ及び当該設計データの機能検証のためのテストパターンを取得する（ステップ＃１０１）。本実施形態では、上述した図１２に示す半導体装置２００の設計データと、図１３に示すテストパターンのデータを夫々取得する。
【００５９】
続いて、本発明装置１は、図３に示すように、分類手段２により、テストパターンＴＰ２１〜ＴＰ２５夫々を、レジスタＲＡ〜ＲＣに対するレジスタ設定パターンが含まれるテストパターンについてはレジスタ設定パターンを除く比較用テストパターンを用いて比較して、テストパターンＴＰ２１〜ＴＰ２５を所定のテストパターン群に分類する（ステップ＃１１０、分類工程）。
【００６０】
具体的には、分類手段２は、先ず、テストパターンＴＰ２１〜ＴＰ２５について、レジスタ設定パターンを検索し、レジスタ設定パターンを含むテストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５についてはレジスタ設定パターンを除いた比較用テストパターンを抽出する（ステップ＃１１１）。レジスタ設定パターンを含まないテストパターンＴＰ２２については、当該テストパターンをそのまま比較用テストパターンとして用いる。本実施形態では、図１３に基づいて、テストパターンＴＰＴＰ２１、ＴＰ２３、ＴＰ２４から時間Ｔ１００〜Ｔ１３０の「レジスタ設定パターン」を、テストパターンＴＰ２５から時間Ｔ１００〜Ｔ１２０の「レジスタ設定パターン」を除いて比較用テストパターンとする。
【００６１】
更に、分類手段２は、第１実施形態と同様に、ステップ＃１１１においてレジスタ設定パターンが検索される毎に、書き込み処理されたレジスタとその記憶内容を補助記憶装置１１に記憶する。ここで、図１４は、レジスタ設定パターンの一例を示している。図１４において、書き込み処理の実行を指示するｗｒｉｔｅ＿ｅｎ信号が‘１'になった時に、書き込み処理を行なうレジスタのアドレスを指定するａｄｄｒ［１５：０］信号の値を判定することで、書き込み処理を実行するレジスタを判定することができる。ここでは、レジスタＲＡのアドレスは０ｘ０１００、レジスタＲＢのアドレスは０ｘ０１０１、レジスタＲＣのアドレスは０ｘ０１０２に設定されている。そして、ｗｒｉｔｅ＿ｅｎ信号が‘１'になった時に、ｄａｔａ［１５：０］信号の値を、ａｄｄｒ［１５：０］信号で指定されたレジスタに書き込む。また、図１５は、図１３に示すテストパターンＴＰ２１〜ＴＰ２５のレジスタ設定パターンｒ２１〜ｒ２４により、各レジスタＲＡ〜ＲＣに書き込まれる値を示している。より具体的には、図１３に示すように、テストパターンＴＰ１では、時間Ｔ１００からＴ１３０までのレジスタ設定パターンｒ２１により、レジスタＲＡ〜ＲＣに夫々‘０’が書き込まれ、テストパターンＴＰ２では、初期設定（レジスタＲＡ〜ＲＣが全て‘１’）のままでレジスタＲＡ〜ＲＣに対する書き込み処理は実行されない。同様に、テストパターンＴＰ５では、時間Ｔ１００からＴ１２０までのレジスタ設定パターンｒ２４により、レジスタＲＡに‘０’、レジスタＲＢに‘１’が書き込まれるが、レジスタＲＣに対する書き込み処理は実行されず、レジスタＲＣの値は初期値‘１’のままとなっている。尚、図１２では図１４に示す各信号線を図示していないが、本実施形態では、上記第１実施形態と同様に、図１４に示す各信号線は、半導体装置２００のコアブロック２０１に入力される構成となっている。
【００６２】
引き続き、分類手段２は、図３に示すように、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５の比較用テストパターン及びテストパターンＴＰ２２を夫々比較して（ステップ＃１１２）、完全一致するもの同士をグループ化する（ステップ＃１１３）。本実施形態では、テストパターンＴＰ２１、ＴＰ２３、ＴＰ２４については、時間Ｔ１００からＴ１３０までの「レジスタ設定パターン」を除外した比較用テストパターンを、テストパターンＴＰ２５については、時間Ｔ１００からＴ１２０までの「レジスタ設定パターン」を除外した比較用テストパターンを用いて、テストパターンまたは比較用パターンが完全に一致したものを比較する。尚、本実施形態では、図１３に示すように、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５の比較用パターン及びテストパターンＴＰ２２は、全て、「初期化パターン」、「ＲＯＭ２０３からの設定値の読み出しパターン」及び「半導体装置２００の機能ブロックＦＡに対する検証パターン」から構成されているので、図１５に示すように、１つのグループＧＣに分類することができる。
【００６３】
引き続き、本発明装置１は、図３に示すように、内部状態記憶手段３により、テストパターンＴＰ２１〜ＴＰ２５から基準テストパターンを選択し、基準テストパターンに含まれる読み出し処理パターンを特定し、読み出し処理パターン毎に内部状態を記憶する（ステップ＃１２０、内部状態記憶工程）。
【００６４】
具体的には、本実施形態の内部状態記憶手段３は、先ず、テストパターンＴＰ２１〜ＴＰ２５から基準テストパターンを選択する（ステップ＃１２１）。本実施形態では、レジスタ設定パターンが含まれておらず、読み出し処理パターンの対応関係が特定し易いと考えられるテストパターンＴＰ２２を基準テストパターンとして選択する。尚、上記第１実施形態と同様に、基準テストパターンの選択は、任意であり、他のテストパターンを基準テストパターンとして選択しても良い。続いて、本発明装置１は、ステップ＃１０１で取得した設計データと基準テストパターンＴＰ２２を用いてシミュレーションを実行する（ステップ＃１２２）。
【００６５】
更に、内部状態記憶手段３は、上記第１実施形態と同様に、基準テストパターンＴＰ２２を用いたシミュレーションにおいて、レジスタブロック２０２を構成するレジスタＲＡ〜ＲＣの何れかに対し読み出し動作が行なわれると、そのときの半導体装置２００の内部状態を、補助記憶装置１１に記憶する。尚、本実施形態において、内部状態を記憶する読み出し処理は、機能ブロックＦＡに対する機能検証の間に実施されるレジスタＲＡ〜ＲＣに対する読み出し処理を対象としており、半導体装置２００のＲＯＭ２０３に対する読み出し処理は含まない。
【００６６】
ここで、図１６は、読み出し処理パターンの一例と内部状態を記憶するタイミングを示している。具体的には、図１６において、ＲＡ＿ｒｅａｄ＿ｅｎ信号が‘１’になると、半導体装置２００は、レジスタＲＡの値を読み出してｄａｔａ［１５：０］信号として出力する。同様にして、図示しないが、半導体装置２００は、ＲＢ＿ｒｅａｄ＿ｅｎ信号が‘１’になると、レジスタＲＢの値を読み出してｄａｔａ［１５：０］信号として出力し、ＲＣ＿ｒｅａｄ＿ｅｎ信号が‘１’になると、レジスタＲＣの値を読み出してｄａｔａ［１５：０］信号として出力する。そして、内部状態記憶手段３は、図１６の破線Ｘが示すタイミングで、ａｄｄｒ［１５：０］信号により特定されるレジスタとｄａｔａ［１５：０］信号の値、及び、コアブロック２０１を構成する各記憶素子の記憶内容を記憶する。尚、図１２では図１６に示す各信号線を図示していないが、本実施形態では、図１４に示す各信号線と同様に、図１６に示す各信号線は、半導体装置２００のコアブロック２０１に入力される構成となっている。ここで、図１７は、本実施形態において、読み出し処理の実行時間である参照時間、読み出し処理を実行した参照レジスタ、コアブロック２０１を構成する各記憶素子の記憶内容を記憶する保存時間の関係を示している。図１７に示すように、本実施形態では、基準テストパターンＴＰ２２において、時間Ｔ２９７０でレジスタＲＡに対する読み出し処理が、時間Ｔ４９７０でレジスタＲＢに対する読み出し処理が、時間Ｔ６９７０でレジスタＲＣに対する読み出し処理が夫々実行されている。
【００６７】
引き続き、本発明装置１は、図３に示すように、実行手順設定手段４により、基準テストパターンＴＰ２２における読み出し処理を実行するレジスタとその記憶内容、及び、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５夫々における読み出し処理を実行するレジスタとその記憶内容に基づいて、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５の実行順序を設定し、基準テストパターンＴＰ２２以外のテストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５について、利用する内部状態を選択する（ステップ＃１３０、実行手順設定工程）。
【００６８】
具体的には、実行手順設定手段４は、最初に、基準テストパターンＴＰ２２と、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５夫々からレジスタ設定パターンを除いた比較用テストパターン夫々を比較し、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５夫々について再利用性を示す再利用指標を求め、再利用指標に基づいて再利用性の高いパターンから優先的にシミュレーション順序を割り当てる（ステップ＃１３１）。先ず、第１実施形態と同様に、基準テストパターン以外のテストパターン毎に、先に実行されるテストパターンにおけるレジスタＲＡ〜ＲＣ夫々の記憶内容に基づいて、記憶内容の再設定が必要なレジスタ、及び、再設定が必要なレジスタに対する読み出し処理の実行時間を特定して、基準テストパターンを用いたシミュレーションで記憶した内部状態の再利用性を示す再利用指標を求める。そして、再利用指標に基づいて再利用性が高いテストパターンから順に実行順序を設定する。本実施形態では、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５夫々について、初期設定値から値が変更されるレジスタを再設定が必要なレジスタとして特定する。そして、テストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５夫々について、再設定が必要なレジスタに対する読み出し処理の内、最も早い段階で実行される読み出し処理の実行時間をシミュレーションの基準再利用終了時間とし、シミュレーションの開始から基準再利用終了時間までの間の時間を再利用可能時間として求める。本実施形態では、上記第１実施形態と同様に、各テストパターンの再利用可能時間をテストパターン夫々の再利用指標として規定し、再利用指標の値の大きいテストパターンから優先的に実行順位を設定する。
【００６９】
より詳細には、例えば、基準テストパターンＴＰ２２とテストパターンＴＰ２１を比較する場合、図１５を参照すると、レジスタＲＡ〜ＲＣの設定値が全て異なることから、レジスタＲＡ〜ＲＣを全て再設定が必要なレジスタであると判定する。ここで、基準テストパターンＴＰ２２では、図１７に示すように、時間Ｔ２９７０でレジスタＲＡに対する読み出し処理が、時間Ｔ４９７０でレジスタＲＢに対する読み出し処理が、時間Ｔ６９７０でレジスタＲＣに対する読み出し処理が実行される。これに対応して、テストパターンＴＰ２１では、レジスタ設定パターンに係る時間Ｔ３０（Ｔ１３０−Ｔ１００）を基準テストパターンＴＰ２２におけるレジスタＲＡに対する読み出し処理の実行時間Ｔ２９７０に加えた時間Ｔ３０００で、レジスタＲＡに対する読み出し処理が実行される。同様にして、テストパターンＴＰ２１では、時間Ｔ５０００でレジスタＲＢに対する読み出し処理が、時間Ｔ７０００でレジスタＲＣに対する読み出し処理が実行される。そして、テストパターンＴＰ２１では、最も早い段階で読み出し処理が実施されるレジスタＲＡに対する読み出し処理の時間Ｔ３０００が、基準再利用終了時間となる。従って、テストパターンＴＰ２１では、シミュレーション開始時間Ｔ１から時間Ｔ３０００までの間の時間を再利用可能時間として求めることができる。同様にして、テストパターンＴＰ２３は、シミュレーション開始時間Ｔ１から時間Ｔ５０００（Ｔ４９７０＋Ｔ３０）まで、テストパターンＴＰ２４は、シミュレーション開始時間Ｔ１から時間Ｔ７０００（Ｔ６９７０＋Ｔ３０）まで、テストパターンＴＰ２５は、シミュレーション開始時間Ｔ１から時間Ｔ２９９０（Ｔ２９７０＋Ｔ２０）までの時間を再利用可能時間として求めることができる。以上より、各テストパターンの再利用指標の値は、ＴＰ２４＞ＴＰ２３＞ＴＰ２１＞ＴＰ２５となる。シミュレーションの実行順位はこの順に設定する。
【００７０】
続いて、実行手順設定手段４は、上記第１実施形態と同様に、図３に示すように、基準テストパターン以外のテストパターン夫々に対して、シミュレーション開始時に読み出す内部状態と、後に実行する他のテストパターンで用いることができる内部状態がある場合には、当該内部状態を記憶する時間を設定する（ステップ＃１３２）。
【００７１】
詳細には、ここでは、例えば、基準テストパターンＴＰ２２に対する再利用指標の値が最も大きいテストパターンＴＰ２４の場合、再設定が必要なレジスタはレジスタＲＣのみであり、このレジスタＲＣに対する読み出し処理の実行時間Ｔ７０００を再利用終了時間とし、基準テストパターンＴＰ２２のシミュレーションにおけるレジスタＲＣに対する読み出し処理の実行時間Ｔ６９７０での内部状態を、テストパターンＴＰ２４で利用する再利用内部状態として選択する。テストパターンＴＰ２４のシミュレーションは、時間Ｔ７０００から実行するように設定する。尚、テストパターンＴＰ２４の場合、時間Ｔ７０００より後に実行されるレジスタに対する読み出し処理はないため、内部状態を記憶する時間は設定しない。同様に、次に再利用指標の値が大きいテストパターンＴＰ２３については、基準テストパターンＴＰ２２の時間Ｔ４９７０における内部状態を、テストパターンＴＰ２３で利用する再利用内部状態として選択する。テストパターンＴＰ２３のシミュレーションは、時間Ｔ５０００から実行するように設定する。また、テストパターンＴＰ２３では、再利用終了時間Ｔ５０００より後、時間Ｔ７０００で読み出し処理が実行されるので、時間Ｔ７０００における内部状態を記憶するように設定する。同様に、テストパターンＴＰ２１については、基準テストパターンＴＰ２２の時間Ｔ２９７０における内部状態を、テストパターンＴＰ２１で利用する再利用内部状態として選択する。テストパターンＴＰ２１のシミュレーションは、時間Ｔ３０００から実行するように設定する。また、テストパターンＴＰ２１では、再利用終了時間Ｔ３０００より後、時間Ｔ５０００及び時間Ｔ７０００で読み出し処理が実行されるので、時間Ｔ５０００及び時間Ｔ７０００における内部状態を記憶するように設定する。最後に、テストパターンＴＰ２５については、テストパターンＴＰ２１に対する再利用指標の値が最も大きくなることから、テストパターンＴＰ２１を再利用テストパターンとし、テストパターンＴＰ２１の内部状態を利用する。テストパターンＴＰ２５は、テストパターンＴＰ２１とレジスタＲＢ、ＲＣの設定が異なることから、先に読み出し処理が実行されるレジスタＲＢの読み出し時間Ｔ４９９０を再利用終了時間とし、テストパターンＴＰ２１のシミュレーションにおける時間Ｔ５０００での内部状態を再利用内部状態として設定する。
【００７２】
引き続き、実行手順設定手段４は、上記第１実施形態と同様に、図３に示すように、基準テストパターン以外のテストパターンについて、再設定が必要なレジスタとその値を抽出する（ステップ＃１３３）。より詳細には、例えば、テストパターンＴＰ２１は、基準テストパターンＴＰ２２の時間Ｔ２９７０での内部状態を読み出すように設定されており、時間Ｔ２９７０以後、レジスタＲＡ〜ＲＣに対する読み出し処理が実行される。更に、図１５に示すように、レジスタＲＡ〜ＲＣの何れも、再利用テストパターンである基準テストパターンＴＰ２２の設定値と異なるため、レジスタＲＡ〜ＲＣの全てを再設定が必要なレジスタとして特定する。そして、レジスタＲＡを特定する情報とその設定値‘０’、レジスタＲＢを特定する情報とその設定値‘０’、レジスタＲＣを特定する情報とその設定値‘０’を補助記憶装置１１に記憶する。
【００７３】
ここで、図１８は、上記ステップ＃１３０の実行手順設定工程の実行結果として、グループＧＣの各テストパターンＴＰ２１〜ＴＰ２５について、シミュレーションの実行順位、シミュレーション実行開始時に読み出す再利用内部状態、シミュレーションの開始時間、後に実行する他のテストパターンで用いるために記憶する内部状態、シミュレーション実行開始時に再設定が必要なレジスタとその再設定値を夫々示している。
【００７４】
引き続き、本発明装置１は、上記第１実施形態と同様に、図３に示すように、機能検証手段５により、基準テストパターンＴＰ２２以外のテストパターンＴＰ２１、ＴＰ２３〜ＴＰ２５の夫々について、選択した内部状態を用いて機能検証を実行する（ステップ＃１４０、機能検証工程）。
【００７５】
以上より、本実施形態では、本発明装置１により本発明方法を実行することで、テストパターンＴＰ２１の時間Ｔ１〜時間Ｔ３０００の間、テストパターンＴＰ２３の時間Ｔ１〜時間Ｔ５０００の間、テストパターンＴＰ２４の時間Ｔ１〜時間Ｔ７０００の間、テストパターンＴＰ５の時間Ｔ１〜時間Ｔ４９９０の間のシミュレーションを省略することができ、時間Ｔ１〜時間Ｔ３の「初期化パターン」及び「ＲＯＭ２０３からの設定値の読み出しパターン」までを省略可能な従来技術に比べ、大幅にテストパターンの省略効果を高めることができる。
【００７６】
〈別実施形態〉
〈１〉上記各実施形態では、記憶領域としてレジスタを想定して説明したが、これに限るものではない。例えば、ハードディスク等の補助記憶装置等、所定の記憶装置内の一部領域であっても良い。
【００７７】
〈２〉上記各実施形態では、簡単のために、半導体装置１００、２００のコアブロック１０１、２０１が１または複数の独立した機能ブロックを備えるように構成されている場合について説明したが、これに限るものではない。半導体装置１００、２００のコアブロック１０１、２０１は、例えば、各機能ブロックが、各機能ブロック間で共通に用いられる１または複数の共通ブロックを含んで構成されていても良い。
【００７８】
〈３〉上記各実施形態では、ステップ＃１２０の内部状態記憶工程において、読み出し処理パターンの特定は、基準テストパターンを用いたシミュレーションの実行中に順次行ったがこれに限るものではない。例えば、図９に示すｒｅａｄ＿ｅｎ信号の遷移等から、予めテストパターン上で読み出し処理パターンを抽出するように構成しても良い。
【００７９】
〈４〉上記各実施形態では、ステップ＃１３０の実行手順設定工程において、基準テストパターンに対する再利用指標を、シミュレーションの開始から基準再利用終了時間までの間の時間として求められる再利用可能時間で規定したが、これに限るものではない。例えば、特に、第１実施形態のように各テストパターンの長さが同じ場合には、再利用指標を求めるテストパターンの全シミュレーション時間に対する再利用可能時間の割合（再利用率）で規定する等しても良い。
【００８０】
また、上記各実施形態では、ステップ＃１３０の実行手順設定工程において、再利用指標の算出を、シミュレーション時間を用いて算出したが、これに限るものではなく、例えば、シミュレーションのサイクル数を用いて算出しても良い。この場合の再利用指標は、再利用サイクル数で規定する。
【００８１】
〈５〉上記各実施形態では、ステップ＃１３０の実行手順設定工程において、基準テストパターンに対する再利用指標の値が同じテストパターンについては、入力された順に実行順序を設定したが、これに限るものではない。例えば、基準テストパターンに対する再利用指標の値が同じテストパターンが３つ以上ある場合は、更に、最初に実行するテストパターンに対する他のテストパターンの再利用指標の値を求め、この再利用指標の値の大きい順にシミュレーションの実行順位を設定するように構成しても良い。
【００８２】
〈６〉上記各実施形態では、ステップ＃１３０の実行手順設定工程において、基準テストパターンの全ての読み出し処理、及び、基準テストパターン以外のテストパターンの再利用終了時間後に実行された全ての読み出し処理について、内部状態を記憶する構成としたが、後に実行されるテストパターンにおいて利用されることがない内部状態については、記憶する対象から除外するように構成しても良い。
【図面の簡単な説明】
【００８３】
【図１】本発明に係る機能検証装置を搭載したコンピュータの概略構成を示す概略ブロック図
【図２】本発明に係る機能検証装置の第１実施形態における概略構成を示す概略ブロック図
【図３】本発明に係る機能検証方法の各工程を示すフローチャート
【図４】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いる半導体装置の設計データの一構成例を示す概略ブロック図
【図５】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いるテストパターンの一構成例を示す模式図
【図６】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いるテストパターンの一部を示す部分波形図
【図７】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いるテストパターンの書き込み処理パターンの一例を示す部分波形図
【図８】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いるテストパターンによるレジスタ設定及び分類の一例を示す模式図
【図９】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いるテストパターンの読み出し処理パターンの一例を示す部分波形図
【図１０】本発明に係る機能検証装置及び機能検証方法の第１実施形態で用いるテストパターンの読み出し処理の実行時間と内部情報の関係を示す表
【図１１】本発明に係る機能検証装置及び機能検証方法の第１実施形態における実行手順設定工程の実行結果の一例を示す表
【図１２】本発明に係る機能検証装置及び機能検証方法の第２実施形態で用いる半導体装置の設計データの一構成例を示す概略ブロック図
【図１３】本発明に係る機能検証装置及び機能検証方法の第２実施形態で用いるテストパターンの一構成例を示す模式図
【図１４】本発明に係る機能検証装置及び機能検証方法の第２実施形態で用いるテストパターンの書き込み処理パターンの一例を示す部分波形図
【図１５】本発明に係る機能検証装置及び機能検証方法の第２実施形態で用いるテストパターンによるレジスタ設定及び分類の一例を示す模式図
【図１６】本発明に係る機能検証装置及び機能検証方法の第２実施形態で用いるテストパターンの読み出し処理パターンの一例を示す部分波形図
【図１７】本発明に係る機能検証装置及び機能検証方法の第２実施形態で用いるテストパターンの読み出し処理の実行時間と内部情報の関係を示す表
【図１８】本発明に係る機能検証装置及び機能検証方法の第２実施形態における実行手順設定工程の実行結果の一例を示す表
【図１９】記憶領域の複数と論理回路を備えた半導体装置の設計データの一構成例を示す概略ブロック図
【図２０】従来技術に係る機能検証技術で用いるテストパターンの一構成例を示す模式図
【図２１】従来技術に係る機能検証技術で用いるテストパターンの一構成例を示す模式図
【符号の説明】
【００８４】
１    本発明に係る機能検証装置
２    分類手段
３    内部状態記憶手段
４    実行手順設定手段
５    機能検証手段
１０  本発明に係る機能検証装置を搭載したコンピュータ
１１  補助記憶装置
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５  入力装置
１６  表示装置
１７  バスライン
１００、２００、３００  半導体装置
１０１、２０１、３０１  コアブロック
１０２、２０２、３０２  レジスタブロック
１０３、２０３、３０３  ＲＯＭ
１０４、２０４、３０４  バスライン
ＦＡ、ＦＢ、ＦＣ        機能ブロック
ＴＡ、ＴＢ、ＴＣ        テストパターン
【図１】
2008117110.tif 000003
【図２】
2008117110.tif 000004
【図３】
2008117110.tif 000005
【図４】
2008117110.tif 000006
【図５】
2008117110.tif 000007
【図６】
2008117110.tif 000008
【図７】
2008117110.tif 000009
【図８】
2008117110.tif 000010
【図９】
2008117110.tif 000011
【図１０】
2008117110.tif 000012
【図１１】
2008117110.tif 000013
【図１２】
2008117110.tif 000014
【図１３】
2008117110.tif 000015
【図１４】
2008117110.tif 000016
【図１５】
2008117110.tif 000017
【図１６】
2008117110.tif 000018
【図１７】
2008117110.tif 000019
【図１８】
2008117110.tif 000020
【図１９】
2008117110.tif 000021
【図２０】
2008117110.tif 000022
【図２１】
2008117110.tif 000023