(57)【要約】【課題】テスト時間をより短縮するテストパターンを作成する半導体集積回路検査装置，および，半導体集積回路の検査方法を提供する。【解決手段】半導体集積回路検査装置20は，テストパターンを複数の区間に分割した分割テストパターン毎に，分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路に実行させることにより得られた半導体集積回路31の故障判定結果に基づき，分割テストパターン毎の最適クロック周期を算出する最適周期算出部213と，テストパターンと，テストパターンに係る分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部214を有する。【選択図】  図２
2013040855.tif 000002
【特許請求の範囲】
【請求項１】
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ，前記テストパターンに対する前記半導体集積回路の出力期待値と，前記テストパターンに対する前記半導体集積回路の出力論理とを比較し，前記半導体集積回路の故障有無を検査し，故障判定結果を出力する半導体集積回路検査装置において，
前記テストパターンを複数の区間に分割した分割テストパターン毎に，前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき，前記分割テストパターン毎の最適クロック周期を算出する算出部と，
前記テストパターンと，前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部を有する
ことを特徴とする半導体集積回路検査装置。
【請求項２】
請求項１において，
前記算出部は，前記半導体集積回路の電源電圧，および，前記クロック信号の周期を変化させて，前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得て，さらに，前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を，前記分割テストパターン毎の最適クロック周期として算出する
ことを特徴とする半導体集積回路検査装置。
【請求項３】
請求項２において，
前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき，前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる
ことを特徴とする半導体集積回路検査装置。
【請求項４】
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ，前記テストパターンに対する前記半導体集積回路の出力期待値と，前記テストパターンに対する前記半導体集積回路の出力論理とを比較し，前記半導体集積回路の故障有無を検査し，故障判定結果を出力する半導体集積回路の検査方法において，
前記テストパターンを複数の区間に分割した分割テストパターン毎に，前記半導体集積回路の電源電圧，および，前記クロック信号の周期を変化させて，前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させて，前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得る工程と，
前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を，前記分割テストパターン毎の最適クロック周期として算出する工程と，
前記テストパターンと，前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する工程とを有する
ことを特徴とする半導体集積回路の検査方法。
【請求項５】
請求項４において，
さらに，前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき，前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる工程を有する
ことを特徴とする半導体集積回路の検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，半導体集積回路検査装置，および，半導体集積回路の検査方法に関する。
【背景技術】
【０００２】
半導体集積回路の製造工程で物理的な欠陥が生じていないかを検査するため，出荷前の不良品検査(テストとも言う)が行われている。このテスト方法の一例として，複数のテスト値を有するテストパターンを利用する方法がある。このテスト方法は，以下のように行われる。まず，テストパターンを検査対象の半導体集積回路(DUT:Device Under Test)に入力し，テストパターンに対する論理演算を所定のクロック周期を有するクロック信号に基づきこの半導体集積回路に実行させる。
【０００３】
そして，テストパターンに対する半導体集積回路の出力期待値と，テストパターンに対する半導体集積回路の出力論理(以下，出力値と記す)とを比較する。さらに，前記の出力値と前記の出力期待値とが一致する場合は，半導体集積回路に故障無し(パスとも言う)と判定し，不一致の場合は，故障有り(フェイルとも言う)と判定する。このようなテスト方法を行う際のテスト時間を短縮する技術が様々提案されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−７５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このテスト時間を短縮する方法として，検査対象の半導体集積回路にテストパターンを入力する際に，この半導体集積回路に入力するクロック信号の周期を短くする，すなわちこの半導体集積回路に入力するクロック信号の周波数を高くする方法がある。検査対象の半導体集積回路は，このクロック信号に基づいてテストパターンに対する論理演算を実行する。
【０００６】
この方法を実行する場合，いわゆるシュムプロットによるマージン解析が行われる。このシュムプロットとは，例えば，故障検査対象の半導体集積回路の電源電圧，および，この半導体集積回路に入力するクロック信号の周期を変化させて，テストパターンに対する論理演算をこの半導体集積回路に実行させ，この半導体集積回路のテスト結果，すなわちパス，フェイルを記録したものである。
【０００７】
図1は，シュムプロットの一例を示す図である。縦軸は電源電圧，横軸はクロック周期を示し，”P”は検査対象の半導体集積回路がパスであることを示し，”・”は半導体集積回路がフェイルであることを示す。
【０００８】
半導体集積回路検査装置は，電源電圧を例えば3.00〜3.60Vの範囲で0.1V毎に連続的に変化させ，さらに，クロック信号の周期を例えば0〜30nsの範囲で0.5ns毎に連続的に変化させて，テストパターンに対する論理演算を検査対象の半導体集積回路に実行させる。そして，半導体集積回路検査装置は，前記した検査対象の半導体集積回路のパス，フェイルを判定する。そして，各電源電圧および各クロック周期に対応した判定結果を図1に示したようにプロットし出力する。
【０００９】
図1の例では，電源電圧3.30Vにおいて，クロック信号の周期を変化させた場合に，テストパターンに対する論理演算を検査対象の半導体集積回路に実行させると，クロック信号の周期が15ns以上では検査対象の半導体集積回路はパスする。一方，クロック信号の周期が15ns未満では検査対象の半導体集積回路はフェイルする。
【００１０】
図1においては，検査対象の半導体集積回路がパスになるクロック信号の最小クロック周期は15nsであることがわかる。また，図1においては，検査対象の半導体集積回路のテストを行う上で規定されているクロック信号の周期は20nsである。この規定クロック周期20nsは，検査対象の半導体集積回路のテストを実行する上で基準となるクロック信号の周期であり，検査対象の半導体集積回路の種類によって異なる。
【００１１】
ここで，この最小クロック周期から規定クロック周期の範囲におけるクロック周期を動作可能範囲とする(符号M1参照)。検査対象の半導体集積回路のテストの際に，この動作可能範囲に示すクロック周期を有するクロック信号を入力すれば，正しい検査結果を得ることができる。
【００１２】
そこで，検査対象の半導体集積回路のテストの際に，検査対象の半導体集積回路に入力するクロック信号の周期を規定クロック周期(20ns)よりも短く設定する。このとき，クロック信号の最小クロック周期(15ns)ではなく，クロック信号の最小クロック周期(15ns)から一定のマージン幅(余裕)，例えば2nsを持たせる。この場合，クロック信号の周期を17nsと設定する。通常，マージン幅は，プロセスばらつきによる周期変動幅より大きい値を設定する。
【００１３】
設定後のクロック周期(17ns)を有するクロック信号を入力して，検査対象の半導体集積回路のテストを実行すれば，設定前のクロック周期(20ns)を有するクロック信号を入力して検査対象の半導体集積回路のテストを実行する場合と比べて，テスト時間を15%((20-17)/20)×100)短縮することができる。このようにしてテスト時間を短縮できれば，検査対象となる半導体集積回路の個数が多ければ多いほど，テスト時間の短縮効果が増すことになる。
【００１４】
しかし，半導体集積回路の回路規模が増大するのに伴い，テストパターン量(テストパターン長とも言う)が増大しており，さらなるテスト時間の短縮が必要である。
【００１５】
したがって，本発明の目的は，テスト時間をより短縮するテストパターンを作成する半導体集積回路検査装置，および，半導体集積回路の検査方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
半導体集積回路検査装置の第1の側面は，テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ，前記テストパターンに対する前記半導体集積回路の出力期待値と，前記テストパターンに対する前記半導体集積回路の出力論理とを比較し，前記半導体集積回路の故障有無を検査し，故障判定結果を出力する半導体集積回路検査装置において，
前記テストパターンを複数の区間に分割した分割テストパターン毎に，前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき，前記分割テストパターン毎の最適クロック周期を算出する算出部と，
前記テストパターンと，前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する生成部を有する
ことを特徴とする。
【発明の効果】
【００１７】
第1の側面によれば，テストパターンを複数の区間に分割した分割テストパターン毎の最適クロック周期を算出することで，テスト時間をより短縮できる。
【図面の簡単な説明】
【００１８】
【図１】シュムプロットの一例を示す図である。
【図２】本実施の形態の半導体集積回路検査装置，半導体集積回路検査装置に接続するワークステーション，DUTボードの一例ブロック図である。
【図３】オリジナルテストパターンファイルの一例を説明する図である。
【図４】本実施の形態における新テストパターンファイルの一例を示す図である。
【図５】半導体集積回路の構成を示す一例ブロック図である。
【図６】新テストパターンファイルの生成処理を説明するフロー図である。
【図７】1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図８】2番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図９】1番目の分割テストパターンファイル(図7)についてのシュムプロットを説明する図である。
【図１０】2番目の分割テストパターンファイル(図8)についてのシュムプロットを説明する図である。
【図１１】1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図１２】10番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図１３】本実施の形態における新テストパターンファイルの他の例を示す図である。
【図１４】新テストパターンファイルの生成処理を説明する他のフロー図である。
【発明を実施するための形態】
【００１９】
図2は，本実施の形態の半導体集積回路検査装置，半導体集積回路検査装置に接続するワークステーション，DUTボードの一例ブロック図である。
【００２０】
[ワークステーション]
ワークステーション10は，半導体集積回路の設計支援機能を有する装置であり，例えば，論理合成，テスト容易化設計，レイアウト設計，論理シミュレーション，ATPG(Automatic Test Pattern Generator)機能を有する。
【００２１】
このテスト容易化設計において，例えば，半導体集積回路31におけるスキャンテストを実行するため，半導体集積回路31のフリップフロップ回路をシリアル接続してスキャンチェーンを形成させるための制御回路が検査対象となる半導体集積回路31などに組み込まれる。他にも，BIST(Built In Self Test)回路が，半導体集積回路31などに組み込まれる。また，このATPGにより，検査対象となる半導体集積回路31のテストパターンを自動的に生成することができる。
【００２２】
CPU11は，半導体集積回路の設計支援機能を有するプログラムを実行する処理や，記憶部12を制御する。
【００２３】
記憶部12は，前記したATPGにより生成された半導体集積回路31のテストパターン(オリジナルテストパターンファイル121)や，分割数情報122，マージン幅情報123を記憶する。分割数情報122，マージン幅情報123については，後述する。なお，ワークステーション10と半導体集積回路検査装置20とは，接続インターフェイス(図示しない)を介して相互に接続している。
【００２４】
[半導体集積回路検査装置]
半導体集積回路検査装置20は，テストパターンに対する半導体集積回路31の出力期待値と，テストパターンに対する半導体集積回路31の出力値OUTとを比較し，半導体集積回路31の故障有無を検査し，故障判定結果を出力する。
【００２５】
半導体集積回路検査装置20は，半導体集積回路31の故障検査に係る各種処理を制御するCPU21，半導体集積回路31の故障検査処理を実行する検査部22，後述するプログラムや，各種データを記憶する記憶部23を有する。CPU21は，検査部22，記憶部23を制御する。
【００２６】
また，CPU21は，プログラム(ソフトウェア)として動作する，分割テストパターンファイル生成部211，最小周期抽出部212，最適周期算出部213，新テストパターンファイル生成部214を有する。ソフトウェアとして動作する，分割テストパターンファイル生成部211，最小周期抽出部212，最適周期算出部213，新テストパターンファイル生成部214は，プログラムファイルとして，例えば記憶部23に記憶され，必要に応じてCPU21が記憶部23から読み出し実行するものであり，詳細については後述する。
【００２７】
検査部22は，テストパターンに対する論理演算を所定の周期を有するクロック信号CLKに基づき検査対象の半導体集積回路31に実行させる。このテストパターンは，後述するように，複数のテスト値DIN(0又は1)を有する。
【００２８】
出力期待値判定部221は，テストパターン(テスト値DIN)に対する半導体集積回路31の出力期待値と，このテストパターンに対する半導体集積回路31の出力値OUTとを比較し，一致しているか判定する。
【００２９】
周波数_電圧変更部222は，半導体集積回路31にクロック信号CLKを入力する処理，さらに，半導体集積回路31に電源電圧Vを供給する処理を実行すると共に，クロック信号CLKのクロック周期，および，電源電圧Vの電圧値を変更する。
【００３０】
半導体集積回路検査装置20とDUTボード30とは，クロック信号用ラインや，電源電圧供給ラインや，データラインを介して接続している。周波数_電圧変更部222は，クロック信号用ラインを介してクロック信号CLKをDUTボード30の半導体集積回路31に入力し，電源電圧供給ラインを介して電源電圧VをDUTボード30の半導体集積回路31に供給する。また，データラインを介してテスト値DINが半導体集積回路31に入力され，出力値OUTが検査部22に入力される。
【００３１】
[DUTボード,半導体集積回路]
DUTボード30は，検査対象の半導体集積回路31がセットされ，半導体集積回路31の外部入出力端子(図示しない)と，半導体集積回路検査装置20の外部入出力端子(図示しない)とを接続する接続機能を有する。
【００３２】
半導体集積回路311…31xは，半導体集積回路31と同型の半導体集積回路であり，半導体集積回路31と同内容の論理演算を実行する半導体集積回路である。すなわち，半導体集積回路311…31xも故障検査対象の半導体集積回路である。
【００３３】
[オリジナルテストパターンファイル]
図3は，オリジナルテストパターンファイルの一例を説明する図である。このオリジナルテストパターンファイルは，半導体集積回路31をテストするためのテストパターンを有し，例えば，ワークステーション10の記憶部12にオリジナルテストパターンファイル121として記憶されているものである。このオリジナルテストパターンファイルは，ワークステーション10のCPU11が実行するATPGにより生成されたものである。
【００３４】
符号P1〜P4で示す部分は，テストパターンファイルのヘッダ部であり，符号D1，D2で示す部分は，テストパターンデータ部であり，符号P5で示す部分は，テストパターンファイルのフッタ部である。まず，符号D1，D2で示すテストパターンデータ部について説明する。
【００３５】
符号D1，D2で示すテストパターンデータ部における1つのテストパターンデータは，”P, DIN, DOUT, @TCYCLE, ID”に示す5つの要素を有する。
【００３６】
P(Positive Pulse)はクロック信号CLKを示し，DINはテストパターンのテスト値を示し，DOUTはテスト値DINに対する半導体集積回路31の出力期待値を示す。なお，出力期待値の”H”は1，”L”は0を示す。出力期待値の”X”は不定値を示す。
【００３７】
@TCYCLEは，このテスト値DINに対する論理演算を半導体集積回路31に実行させる際に半導体集積回路31に入力するクロック信号CLKのクロック周期を識別するクロック周期識別番号を示す。このクロック周期識別番号は，符号P2に示す”TIMING : CYCLE = 20 ns : TCYCLE=1 ;”の”TCYCLE=1”に対応するものである。
【００３８】
符号P2は，”TCYCLE=1”(クロック周期識別番号1)で指定されたテストパターンデータのテスト値DINを周期20nsのクロック信号CLKに同期して故障検査対象の半導体集積回路31に入力することを示す文字列である。すなわち，検査部22は，”TCYCLE=1”で指定されたテストパターンデータのテスト値DINに対する論理演算を周期20nsのクロック信号CLKに基づき，半導体集積回路31に実行させる。
【００３９】
IDはテストパターンデータの識別番号であり，テストパターンファイルにおけるテストパターンデータの配列順番を示す。すなわち，この識別番号は，テストパターンにおけるテスト値DINの配列順番を示す。
【００４０】
符号D101に示すテストパターンデータについて説明すると，テスト値が1，出力期待値がL(0)，クロック周期識別番号が”1”であることを示す。このクロック周期識別番号から，このテスト値に対する論理演算を半導体集積回路31に実行させる際に半導体集積回路31に入力するクロック信号CLKのクロック周期が，20nsであることがわかる(符号P2参照)。そして，このテストパターンデータの識別番号は”15”であることを示す。
【００４１】
このように，テストパターンファイルは，テスト値DINとテスト値DINに対する故障検査対象の半導体集積回路の出力期待値DOUTを有するテストパターンデータが連続して記録されている。また，テストパターンは，このように連続するテストパターンデータのテスト値を有する。
【００４２】
図3のテストパターンファイルにおけるテストパターンは，100個のテストパターンデータのテスト値を有する構成である。この100個のテストパターンデータのテスト値が，検査部22により，半導体集積回路31に順次入力される。
【００４３】
なお，符号P1で示す文字列は，テストパターンファイルの名称を示し，符号P3で示す文字列は，テストパターンデータ部のタグ情報を示し，符号P4で示す文字列は，テストパターンデータの形式を定義した文字列である。
【００４４】
ところで，図1で説明したように，クロック周期を一律に短縮して，図3に示したテストパターンファイルのテストパターンに対する論理演算を20nsではなく17nsのクロック周期を有するクロック信号CLKに基づき半導体集積回路31に実行させて，テストを行わせるとする。この場合には，前述したようにテスト時間を15%短縮できる。
【００４５】
ここで，発明者は，テストパターンを複数の区間に分割した分割テストパターン毎(図3の符号D1，D2参照)に，短縮できるクロック周期の長さが異なることを見出した。例えば，符号D1に示すテストパターンについては，クロック周期を前記した17nsよりも短い周期に短縮できる。すなわち，分割テストパターン毎に短縮できるクロック周期の長さを細かく算出することができる。本実施の形態の半導体集積回路検査装置20は，かかる発明者の認識のもと提案された。
【００４６】
[新テストパターンファイル]
半導体集積回路検査装置20による新テストパターンファイルの生成について説明する。まず，半導体集積回路検査装置20の最適周期算出部213は，テストパターンを複数の区間に分割した分割テストパターン毎に，分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路31に実行させる。そして，最適周期算出部213は，この実行により得られた半導体集積回路31の故障判定結果に基づき，分割テストパターン毎の最適クロック周期を算出する。この算出は，分割テストパターン毎の半導体集積回路31の故障判定結果(シュムプロット)を得ることにより行われる。
【００４７】
次いで，新テストパターンファイル生成部214は，このテストパターンと，このテストパターンに係る分割テストパターン毎の最適クロック周期を有するテストパターンファイルを新たに作成する。そして，半導体集積回路検査装置20は，この新テストパターンファイルにおける分割テストパターン毎の最適クロック周期に基づき，分割テストパターンに対する論理演算を同型の半導体集積回路311…31xに実行させる。このように分割テストパターン毎に最適なクロック周期を算出すれば，テスト時間を大幅に短縮することができる。
【００４８】
図4は，本実施の形態における新テストパターンファイルの一例を示す図である。この新テストパターンファイルは，前記した生成処理により生成されたファイルであるが，この生成処理については，後述する。
【００４９】
図3，図4においては，例えばテストパターンを2つに分割して，符号D1，符号D2に示す分割テストパターンとしている。そして，分割テストパターン毎にこの分割テストパターンに対する論理演算を検査対象となる半導体集積回路に実行させる際の最適クロック周期が算出される。ここでは，符号D1に示す分割テストパターンの最適クロック周期は07ns，符号D2に示す分割テストパターンの最適クロック周期は17nsとして算出されたとする。
【００５０】
そして，図4の符号P13に示すように，この最適クロック周期とこのクロック周期を識別するクロック周期識別番号が新たにヘッダ部分に記録される。ここでは，クロック周期07nsの識別番号は2(TCYCLE=2)であり，クロック周期17nsの識別番号は3(TCYCLE=3)である。この新たに記録されたクロック周期が最適クロック周期である。なお，符号P11に示すように，新テストパターンファイルのファイル名が”NEW_TEST(0)”として記録されている。
【００５１】
また，図4の符号D1に示すテストパターンデータのクロック周期識別番号が識別番号2に変更され，図4の符号D2に示すテストパターンデータのクロック周期識別番号が識別番号3に変更されている。
【００５２】
検査部22は，この符号D1に示すテストパターンデータのテスト値(分割テストパターン)をテストパターンデータ識別番号の小さい順に同型の半導体集積回路311に入力する。このとき，検査部22は，クロック周期識別番号2に対応する7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【００５３】
次いで，検査部22は，この符号D2に示すテストパターンデータのテスト値(分割テストパターン)をテストパターンデータ識別番号の小さい順に同型の半導体集積回路311に入力する。このとき，検査部22は，クロック周期識別番号3に対応する17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【００５４】
そして，前記したように，検査部22の出力期待値判定部221により，同型の半導体集積回路311のパス，フェイルが判定される。
【００５５】
例えば，図3に示したテストパターンファイルのテストパターンに対する論理演算を20nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させて，テストを行った場合に必要な期間がT[msec]とする。
【００５６】
図1で説明したように，クロック周期を一律に短縮して17nsとすれば，前記した様に，テスト時間を15%短縮できるので，テスト時間は0.85T[msec]である。
【００５７】
一方，図4で説明した新テストパターンにおいて，符号D1に対応するテストパターンに対する論理演算を7nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させる。さらに，符号D2に対応するテストパターンに対する論理演算を17nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させる。このようにすると，同型の半導体集積回路311のテスト時間は，(T/2)(7/20) + (T/2)(17/20) = 0.60T[msec]であり，テスト時間を40%短縮できる。すなわち，クロック周期を一律に短縮する場合と比べて，テスト時間の短縮効果が大きい。
【００５８】
特に，検査対象となる同型の半導体集積回路(311…31x)の個数が多ければ多いほどこのテスト時間の短縮効果が大きくなる。また，テスト時間の短縮により，テストに必要な電力も削減することができる。
【００５９】
[半導体集積回路のテスト]
本実施の形態におけるテスト時間を短縮できるテストパターンの生成の詳細について説明する前に，半導体集積回路31のテストの詳細について説明する。
【００６０】
図5は，半導体集積回路31の構成を示す一例ブロック図である。半導体集積回路31は，テスト制御を行う回路である例えばBIST回路31Bと，論理和(OR)素子，論理積(AND)素子などの論理素子とフリップフロップ回路などを有し，所定の論理演算を実行する論理回路31L1〜31Ln(nは整数)と，スイッチSw2〜Swnとを有する。なお，前記したように，同型の半導体集積回路311…31xも，半導体集積回路31と同様の回路構成を有する。
【００６１】
BIST回路31B，スイッチSw2〜Swnは，前記したテスト容易化設計において半導体集積回路31に組み込まれた回路である。
【００６２】
通常動作時において，BIST回路31Bは非活性化状態であり，スイッチSw2〜Swnはオン状態である。また，通常動作時において，論理回路31L1は，外部回路(図示しない)から入力された入力値NDINを，後段の論理回路31L2〜31Lnの何れかに入力するセレクタとして機能する。論理回路31L2〜31Lnは，論理回路31L1からの入力値NDINに対して所定の論理演算を実行し，出力値OUTとして出力する。
【００６３】
一方，テスト時において，半導体集積回路検査装置20の検査部22は，クロック信号CLKを半導体集積回路31のBIST回路31Bに入力する。このクロック信号CLKの入力によりBIST回路31Bは活性化状態になる。なお，このクロック信号CLKは，論理回路31L1〜31Lnにも入力される。さらに，検査部22は，テストパターンのテスト値DINをBIST回路31Bに入力する。
【００６４】
BIST回路31Bは，入力されたテストパターンのテスト値DINを解析し，入力されたテスト値DINが論理回路31L1〜31Lnの中のどの論理回路用のテスト値か特定する。すなわち，BIST回路31Bは，このテスト値を入力する論理回路を特定する。
【００６５】
そして，BIST回路31Bは，特定した論理回路をテストするためのBISTテスト値をこのテスト値から新たに生成し，この論理回路に入力する。このように，BIST回路31Bは，半導体集積回路検査装置20から入力されたテストパターンのテスト値に対応するテスト値を，テストパターンのテスト値に応じて，複数の論理回路31L1〜31Lnの何れかに入力する。
【００６６】
また，BIST回路31Bは，この特定した論理回路の後段に設けられたスイッチSWのみをオン状態にして，それ以外のスイッチSWをオフ状態にする制御信号Cs2〜CSnをスイッチSw2〜Swnに出力する。
【００６７】
なお，BIST回路31Bは，論理回路31L1を特定した場合には，制御信号CS1を論理回路31L1に出力し，論理回路31L1の出力を後段の論理回路31L2〜31Lnをバイパスして，半導体集積回路検査装置20の検査部21に入力するように指示する。同時に，BIST回路31Bは，全てのスイッチSw2〜Swnをオフ状態にする制御信号Cs2〜CSnをスイッチSw2〜Swnに出力する。
【００６８】
テスト時においては，論理回路31L1〜31Lnは，BIST回路31Bからそれぞれに入力されるBISTテスト値BT1〜BTnに対して所定の論理演算を実行し，出力値OUTとして出力する。
【００６９】
半導体集積回路31のテストについて具体的に説明する。以下の説明においては，例えば，図5において，半導体集積回路31は，論理回路として2つの論理回路31L1，31L2を有し，さらに，スイッチSw2を有しているとする。
【００７０】
この場合，論理回路31L1はセレクタとして機能せずに，通常動作時において，入力値NDINに対して所定の論理演算を実行し，出力を後段の論理回路31L2に入力する。一方，テスト時において，論理回路31L1は，BIST回路31Bの制御信号CS1により，出力を後段の論理回路31L2をバイパスして，半導体集積回路検査装置20の検査部21に入力する。
【００７１】
半導体集積回路検査装置20のCPU21は，半導体集積回路31をテストするためのオリジナルテストパターンファイルをワークステーション10の記憶部12から読み出す。このオリジナルテストパターンファイルは，記憶部12のオリジナルテストパターンファイル121である。そして，半導体集積回路検査装置20のCPU21は，このオリジナルテストパターンファイルを装置内の記憶部23に記憶し，さらに，検査部22に出力する。
【００７２】
検査部22は，オリジナルテストパターンファイルのテストパターンに対する論理演算を半導体集積回路31に実行させる。このとき，検査部22は，検査対象の半導体集積回路31をテストモードに移行させる。例えば，検査部22は，クロックCLKをBIST回路31Bに入力してBIST回路31Bを活性化状態に移行させ，さらに，半導体集積回路31のフリップフロップ回路をシリアル接続してスキャンチェーンを形成させる。
【００７３】
図3のオリジナルテストパターンファイルについて説明すると，検査部22の周波数_電圧変更部222は，例えば，電源電圧Vとして3.30Vを半導体集積回路31に供給する。そして，検査部22は，テストパターンデータのテスト値DINをテストパターンデータ識別番号の小さい順から順次，シリアル入力する。なお，このテスト値DINは，前記したように，半導体集積回路31のBIST回路31Bに入力される。
【００７４】
この入力に先だって，検査部22は，入力対象のテスト値DINを有するテストパターンデータのクロック周期識別番号に対応するクロック周期を特定する。そして，この特定したクロック周期を有するクロック信号CLKを半導体集積回路31に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は，この指示に応答して，前記の指示に基づく，クロック周期を有するクロック信号CLKを半導体集積回路31に入力する。なお，このクロック信号CLKは，前記したように，半導体集積回路31のBIST回路31Bに入力される。
【００７５】
図3の例では，検査部22は，クロック周期20nsを特定し，20nsのクロック周期を有するクロック信号CLKを半導体集積回路31に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は，この指示に応答して，20nsのクロック周期を有するクロック信号CLKを半導体集積回路31に入力する。
【００７６】
BIST回路31Bは，シリアル的に入力されたテストパターンのテスト値DINを解析する。ここで，図3の符号D1，D2に示すテスト値を有するテストパターンがBIST回路31Bに入力される。
【００７７】
BIST回路31Bは，例えば，図3におけるテストパターンデータ識別番号1〜70のテスト値(符号D1の全部のテスト値と符号D2のテスト値の一部)が論理回路31L1用のテスト値と特定する。
【００７８】
すると，BIST回路31Bは，論理回路31L1をテストするためのBISTテスト値BT1をこのテスト値から新たに生成し，論理回路31L1の論理素子にパラレル的に入力する。論理回路31L1は，入力されたBISTテスト値BT1に対して論理演算を実行し，出力値OUTを論理回路31L1の後段の論理回路31L2をバイパスして，半導体集積回路検査装置20の検査部21に入力する。
【００７９】
次いで，BIST回路31Bは，例えば，図3におけるテストパターンデータ識別番号71〜100のテスト値(符号D2のテスト値の一部)が論理回路31L2用のテスト値と特定する。
【００８０】
すると，BIST回路31Bは，論理回路31L2をテストするためのBISTテスト値BT2をこのテスト値から新たに生成し，論理回路31L2の論理素子にパラレル的に入力する。論理回路31L2は，入力されたBISTテスト値BT2に対して論理演算を実行し，出力値OUTを，半導体集積回路検査装置20の検査部21に入力する。
【００８１】
なお，このとき，BIST回路31Bは，論理回路31L2の後段に設けられたスイッチSw2をオン状態にする。
【００８２】
すなわち，検査部22は，一連のテスト値DINを有するテストパターンに対する論理演算を前記のクロック信号CLKに基づき半導体集積回路31に実行させ，テストパターンのテスト値DINに対する半導体集積回路31の出力値OUTを取得する。
【００８３】
そして，出力期待値判定部221は，テスト値DINに対する半導体集積回路31の出力期待値DOUTを予め保持し，この出力期待値DOUTと前記の出力値OUTとを比較し，一致しているか判定する。検査部22は，この判定により，半導体集積回路31の故障有無を検査し，故障判定結果を出力する。出力期待値DOUTと出力値OUTが一致している場合は，半導体集積回路31はパスであり，不一致の場合は，フェイルである。
【００８４】
以上，説明した様に，半導体集積回路検査装置20は，半導体集積回路31のテストを実行する。
【００８５】
[シュムプロット]
半導体集積回路検査装置20の検査部22は，半導体集積回路31の故障判定結果に基づき，シュムプロットを生成する処理も実行する。
【００８６】
このシュムプロットは，図4で説明した最適クロック周期を算出する際に必要な情報である。CPU21は，シュムプロットを出力するように，検査部22に指示する。検査部22は，この指示に応答して，以下の処理を実行し，シュムプロットを出力する。
【００８７】
すなわち，検査部22は，1つのテストパターンファイルにおけるテストパターンに対する論理演算を半導体集積回路31に実行させる度に，周波数_電圧変換部222により電源電圧を例えば3.00〜3.60Vの範囲で0.1V毎に連続的に変化させ，さらに，クロック信号CLKのクロック周期を例えば0〜30nsの範囲で0.5ns毎に連続的に変化させる。そして，検査部22の出力期待値判定部221は，前記した半導体集積回路31の故障判定結果を出力する。
【００８８】
例えば，検査部22は，電源電圧3.00，20nsのクロック周期を有するクロック信号に基づき，1つのテストパターンファイルのテストパターンに対する論理演算を半導体集積回路31に実行させ，出力期待値判定部221により前記の故障判定結果(パス，フェイル)を得る。そして，検査部22は，電源電圧3.00のままで，20.5nsのクロック周期を有するクロック信号に基づき，同じテストパターンに対する論理演算を半導体集積回路31に実行させ，出力期待値判定部221により前記の故障判定結果を得る。なお，検査部22は，1つのテストパターンを実行させている途中で，前記した半導体集積回路31の故障判定結果を得るようにしてもよい。
【００８９】
このようにして，検査部22の出力期待値判定部221は，各電源電圧および各クロック周期において，前記した半導体集積回路31のパス，フェイルを判定する。そして，検査部22は，各電源電圧および各クロック周期に対応した故障判定結果を図1に示したようにプロットし出力する。
【００９０】
本実施の形態においては，半導体集積回路検査装置20は，シュムプロットを利用して分割テストパターン毎の最適クロック周期を算出し，テストパターンと，テストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。
【００９１】
[新テストパターンファイルの生成処理]
次に,本実施の形態における新テストパターンファイルの生成処理について詳細に説明する。
【００９２】
図6は，新テストパターンファイルの生成処理を説明するフロー図である。
【００９３】
ステップS1:分割テストパターンファイル生成部211は，オリジナルテストパターンファイルを所定個数(m個)コピーする。このコピーテストパターンファイルは，オリジナルテストパターンファイルと同内容である。
【００９４】
具体的には，分割テストパターンファイル生成部211は，ワークステーション10の記憶部12から，オリジナルテストパターンファイル121，所定個数情報を有する分割数情報122を読み出す。そして，読み出したオリジナルテストパターンファイル121から，所定個数(m個)のコピーテストパターンファイルを生成し，記憶部23に記憶する。この所定個数は，分割数情報122として記憶部12に記憶されているものである。mは2以上の整数である。
【００９５】
以下の説明では，分割テストパターンファイル生成部211により，コピーテストパターンファイルが生成された順にこれらのコピーテストパターンファイルを1番目，2番目…k番目のコピーテストパターンファイルと呼ぶ。ここで，kは1〜mまでの整数である。
【００９６】
ステップS2:分割テストパターンファイル生成部211は，コピーした各コピーテストパターンファイルにおいて，この各コピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値(X値)に変更する。
【００９７】
この変更後のコピーテストパターンファイルを分割テストパターンファイルと呼ぶ。また，k番目のコピーテストパターンファイルの分割テストパターンファイルをk番目の分割テストパターンファイルと呼ぶ。
【００９８】
この変更について，詳細に説明する。コピーテストパターンファイルは，TPD個のテストパターンデータを有しているとする。図3の例では，TPDは100である。
【００９９】
そして，m個のコピーテストパターンファイルにおいて，k番目のコピーテストパターンファイルに対応するコピーテストパターンデータ，すなわちk番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する。
【０１００】
前記したmが2，TDPが100の場合における分割テストパターンファイルについて，図7，図8を用いて説明する。
【０１０１】
図7は，1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。図7においては，符号D1に示すテストパターンデータが，1番目のコピーテストパターンファイルに対応するテストパターンデータ(識別番号1〜50)であり，符号D2に示すテストパターンデータが，それ以外のテストパターンデータ（識別番号51〜100）である。
【０１０２】
分割テストパターンファイル生成部211は，図7の符号D2に示すテストパターンデータの出力期待値をX値に変更する。
【０１０３】
出力期待値が不定値Xに変更された場合，不定値Xに対応するテスト値が半導体集積回路31に入力され，半導体集積回路31がこのテスト値に対して論理演算を実行して出力しても，出力期待値判定部221は，この出力値と不定値Xとを比較して，一致するか否かの判定は実行しない(Don’t care)。
【０１０４】
図8は，2番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。図8においては，符号D2に示すテストパターンデータが，2番目のコピーテストパターンファイルに対応するテストパターンデータ(識別番号51〜100)であり，符号D1に示すテストパターンデータが，それ以外のテストパターンデータ(識別番号1〜50)である。
【０１０５】
分割テストパターンファイル生成部211は，図8の符号D1に示すテストパターンデータの出力期待値をX値に変更する。
【０１０６】
このようにX値に変更されていないテストパターンデータのテスト値を有するテストパターンが，オリジナルテストパターンファイルにおけるテストパターンを複数の区間に分割した分割テストパターンである。
【０１０７】
なお，分割テストパターンファイル生成部211は，k番目の分割テストパターンファイルの名をTEST(k)に変更する。図7の例では，図7の分割テストパターンファイルは1番目の分割テストパターンファイルなので，分割テストパターンファイル生成部211は，TEST(1)と変更する。図8の例では，図8の分割テストパターンファイルは，2番目の分割テストパターンファイルなので，分割テストパターンファイル生成部211は，TEST(2)と変更する。
【０１０８】
そして，分割テストパターンファイル生成部211は，k番目の分割テストパターンファイルを分割テストパターンファイル23kとして記憶部23に記憶する。図2の例では，分割テストパターンファイル生成部211は，分割テストパターンファイル231，232として記憶部23に記憶する。
【０１０９】
このように，分割テストパターンファイルを作成することで，分割テストパターン毎(図4の符号D1，符号D2に示すテストパターン)に，ステップS3で説明するシュムプロットを得ることができる。
【０１１０】
ステップS3:最小周期抽出部212は，各分割テストパターンファイルのシュムプロットを取得する。
【０１１１】
具体的には，最小周期抽出部212は，分割テストパターンファイル生成部211が生成した各分割テストパターンファイルを検査部22に出力し，各分割テストパターンファイルについてのシュムプロットを出力するように検査部22に指示する。検査部22は，この指示に応答して，各分割テストパターンファイルのシュムプロットを出力する。なお，シュムプロットの出力については，前記したので省略する。
【０１１２】
このとき，前記したように，不定値Xに対応するテスト値が半導体集積回路31に入力され，半導体集積回路31がこのテスト値に対して論理演算を実行して出力値を出力しても，出力期待値判定部221は，この出力値と不定値Xとを比較して，一致するか否かの判定は実行しない。
【０１１３】
そのため，半導体集積回路31の電源電圧，および，クロック信号CLKの周期を変化させることによる，分割テストパターン毎の半導体集積回路の故障判定結果(シュムプロット)を得ることができる。
【０１１４】
図5の説明において，半導体集積回路31は，論理回路として2つの論理回路31L1，31L2，スイッチSw2を有しているとした。そして，BIST回路31Bは，例えば，図3(図7，図8)におけるテストパターンデータ識別番号1〜70のテスト値(符号D1の全部のテスト値と符号D2のテスト値の一部)が論理回路31L1用のテスト値と特定した。また，BIST回路31Bは，例えば，図3(図7，図8)におけるテストパターンデータ識別番号71〜100のテスト値(符号D2のテスト値の一部)が論理回路31L2用のテスト値と特定した。
【０１１５】
このとき，例えば、論理回路31L1は，周期が短いクロック信号に基づき動作，すなわち高速で動作し，論理回路31L2は，周期が長いクロック信号に基づき動作，すなわち低速で動作するとする。
【０１１６】
図7に示す分割テストパターンに対応する論理演算を半導体集積回路31に実行させてシュムプロットを取得するとする。図7において，符号D1に示すテストパターンの出力期待値は変更されず，符号D2に示すテストパターンの出力期待値がX値に変更されている。
【０１１７】
従って，前記したように，出力期待値判定部221は，テストパターンデータ識別番号1〜50のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。
【０１１８】
しかし，出力期待値判定部221は，テストパターンデータ識別番号51〜70のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。また，出力期待値判定部221は，テストパターンデータ識別番号71〜100のテスト値を有するテストパターンに対して論理回路31L2が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。
【０１１９】
すなわち，検査部22は，高速で動作する論理回路31L1のテストを実行する。そして，検査部22は，この比較結果に基づき，シュムプロットを出力する。
【０１２０】
図9は，1番目の分割テストパターンファイル(図7)についてのシュムプロットを説明する図である。このように，図9に示したシュムプロットの最小クロック周期は5nsであり，図1に示したシュムプロットの最小クロック周期(15ns)と比べて小さい。これは，高速で動作する論理回路31L1に対してテストを実行し，シュムプロットを得ているからである。
【０１２１】
これに対して，図8に示す分割テストパターンに対応する論理演算を半導体集積回路31に実行させてシュムプロットを取得するとする。図8において，符号D2に示すテストパターンの出力期待値は変更されず，符号D1に示すテストパターンの出力期待値がX値に変更されている。
【０１２２】
従って，前記したように，出力期待値判定部221は，テストパターンデータ識別番号1〜50のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。
【０１２３】
一方，出力期待値判定部221は，テストパターンデータ識別番号51〜70のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。また，出力期待値判定部221は，テストパターンデータ識別番号71〜100のテスト値を有するテストパターンに対して論理回路31L2が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。
【０１２４】
そして，検査部22は，この比較結果に基づき，シュムプロットを出力する。すなわち，検査部22は，高速で動作する論理回路31L1と低速で動作する論理回路31L2のテストを実行する。そして，検査部22は，この比較結果に基づき，シュムプロットを出力する。
【０１２５】
図10は，2番目の分割テストパターンファイル(図8)についてのシュムプロットを説明する図である。図10(A)は，このシュムプロットの第1の図，図10(A’)は，このシュムプロットの第2の図である。
【０１２６】
図10(A)に示したシュムプロットの最小クロック周期は15nsであり，図9に示したシュムプロットの最小クロック周期(05ns)と比べて大きい。これは，高速で動作する論理回路31L1と，低速で動作する論理回路31L2に対してテストを実行し，図8のテストパターンファイルのシュムプロットを得ているからである。この場合，論理回路31L2の動作速度がボトルネック(律速)となり，このシュムプロットの最小クロック周期が小さくならない。なお，図10(A’)については，後述する。
【０１２７】
このようにして，シュムプロットを取得した後，半導体集積回路検査装置20のCPU21は，取得したシュムプロットを各分割テストパターンファイルと対応付けて記憶部23に記憶する。図2の例では，分割テストパターンファイル231，232と対応付けて，シュム231s，232sとして記憶部23に記憶する。
【０１２８】
ステップS4:最小周期抽出部212は，各分割テストパターンファイルの最小クロック周期を抽出する。すなわち，最小周期抽出部212は，k番目の分割テストパターンファイルのシュムプロットからk番目の分割テストパターンファイルの最小クロック周期を抽出する。
【０１２９】
最小周期抽出部212は，例えば，シュムプロットにおける電源電圧Vの中央値において，”P”により示されるパスと”・”により示されるフェイルの境界におけるクロック周期，すなわち故障判定結果が故障無しの場合における最小クロック周期を抽出する。
【０１３０】
図9の例では，電源電圧Vの中央値は，3.30Vであり，前記の境界のクロック周期は，5nsである。よって，最小周期抽出部212は，図7の分割テストパターンファイルの最小クロック周期を5nsとして抽出する。図10(A)の例では，電源電圧の中央値は，3.30Vであり，前記の境界のクロック周期は，15nsである。よって，最小周期抽出部212は，図8の分割テストパターンファイルの最小クロック周期を15nsとして抽出する。
【０１３１】
なお，図10（A）に示すように，”P”と”・”との境界が，一定値(15ns)に位置せずに，例えば，図10(A’)に示すように，前記の境界が，電源電圧Vが大きくなるに従ってクロック周期が短くなる方向に，つまり図面に対して左側にずれることがある。このような場合でも，電源電圧の中央値に対応して，前記の境界のクロック周期を求める。
【０１３２】
そして，最小周期抽出部212は，分割テストパターンファイルと対応付けて分割テストパターンファイルの最小クロック周期を記憶部23に記憶する。
【０１３３】
ステップS5:最適周期算出部213は，各分割テストパターンファイルの最適クロック周期を算出する。すなわち，最適周期算出部213は，分割テストパターン毎のシュムプロットに基づき，分割テストパターン毎の最適クロック周期を算出する。
【０１３４】
具体的には，最適周期算出部213は，所定クロック周期を有するマージン幅情報123をワークステーション10の記憶部12から読み出す。そして，最適周期算出部213は，各分割テストパターンファイルの最小クロック周期にこの所定クロック周期を加算した周期を各分割テストパターンファイルの最適クロック周期として算出する。
【０１３５】
ここで，所定クロック周期を2nsとすると，最適周期算出部213は，図7の分割テストパターンファイルの最小クロック周期5nsと所定クロック周期2nsの加算値7nsを図7の分割テストパターンファイルの最適クロック周期として算出する。
【０１３６】
また，最適周期算出部213は，図8の分割テストパターンファイルの最小クロック周期15nsと所定クロック周期2nsの加算値17nsを図8の分割テストパターンファイルの最適クロック周期として算出する。
【０１３７】
そして，最小周期抽出部212は，算出された最適クロック周期を各分割テストパターンファイルと対応付けて記憶部23に記憶する。図2の例では，分割テストパターンファイル231，232と対応付けて，最適クロック周期231f，232fとして記憶部23に記憶する。
【０１３８】
ステップS6:新テストパターンファイル生成部214は，テストパターンと，このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。新テストパターンファイル生成部214は，例えば，図4に示した新テストパターンファイルを生成する。
【０１３９】
このような新テストパターンファイルを合成処理の一例について説明する。まず，新テストパターンファイル生成部214は，オリジナルテストパターンファイルのヘッダ部分のクロック周期欄に，k番目の分割テストパターンファイルの最適クロック周期と，この最適クロック周期のクロック周期識別番号を追加する。
【０１４０】
図4に示した新テストパターンファイルを例示してこの追加について説明する。新テストパターンファイル生成部214は，1番目の分割テストパターンファイルの最適クロック周期(07ns)のクロック周期識別番号を”2”(TCYCLE=2),2番目の分割テストパターンファイルの最適クロック周期(17ns) のクロック周期識別番号を”3”(TCYCLE=3)とする。
【０１４１】
そして，新テストパターンファイル生成部214は，符号P13 に示すヘッダ部分のクロック周期欄に，”TIMING : CYCLE = 7 ns : TCYCLE = 2 ;”を追加する。さらに，新テストパターンファイル生成部214は，ヘッダ部分のクロック周期欄に，”TIMING : CYCLE = 17 ns : TCYCLE = 3 ; “を追加する。
【０１４２】
そして，新テストパターンファイル生成部214は，この追加後のファイルにおいて，k番目の分割テストパターンファイルにおける識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータのクロック周期識別番号を，k番目の分割テストパターンファイルの最適クロック周期のクロック周期識別番号に変更する。なお，kは前記したように，1〜mの整数である。
【０１４３】
図4の例では，mは2，TPDは100である。新テストパターンファイル生成部214は，図4において，1〜50番目のテストパターンデータのクロック周期識別番号を”1”から”2”に変更する。さらに，新テストパターンファイル生成部214は，51〜100番目のテストパターンデータのクロック周期識別番号を”1”から”3”に変更する。
【０１４４】
そして，新テストパターンファイル生成部214は，生成した新テストパターンファイルを記憶部23に記憶する。ここでは，新テストパターンファイル生成部214は，生成した新テストパターンファイルを新テストパターンファイル241として記憶部23に記憶する。
【０１４５】
以上説明したように，最適周期算出部213は，テストパターンを複数の区間に分割した分割テストパターン毎に，分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路31に実行させることにより得られた半導体集積回路31の故障判定結果(シュムプロット)に基づき，分割テストパターン毎の最適クロック周期を算出する工程を実行する(ステップS3〜S5)。
【０１４６】
具体的には，最小周期抽出部212は，半導体集積回路31の電源電圧V，および，クロック信号CLKの周期を検査部22の周波数_電圧変更部222により変化させて，分割テストパターン毎の半導体集積回路31の故障判定結果を得る工程を実行する(ステップS3)。
【０１４７】
さらに，最適周期算出部213は，最小周期抽出部212により，分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期を得て(ステップS4)，この最小周期に所定周期を加算した周期を，分割テストパターン毎の最適クロック周期として算出する工程を実行する(ステップS5)。
【０１４８】
最後に，新テストパターンファイル生成部214は，テストパターンと，このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する工程を実行する(ステップS6)。
【０１４９】
[新テストパターンファイルによるテスト]
以上説明した処理を経て新テストパターンファイルが作成されると，半導体集積回路検査装置20は，新テストパターンファイルに対する論理演算を故障検査対象となる半導体集積回路31と同型である多数の半導体集積回路311…31xに対して実行させ，半導体集積回路311…31xのテストを行う。
【０１５０】
図4の例で説明すると，半導体集積回路検査装置20は，同型の半導体集積回路311をDUTボード30にセットする。
【０１５１】
そして，CPU21は，新テストパターンファイル241を記憶部23から読み出し，検査部22に出力する。検査部22は，新テストパターンファイルのテストパターンに対する論理演算を同型の半導体集積回路311に実行させる。
【０１５２】
検査部22の周波数_電圧変更部222は，例えば，電源電圧Vとして3.30Vを同型の半導体集積回路311に供給する。そして，検査部22は，テストパターンデータのテスト値DINをテストパターンデータ識別番号の小さい順から順次，シリアル入力する。
【０１５３】
この入力に先だって，検査部22は，前記したように，入力対象のテストパターンデータのテスト値DINのクロック周期識別番号に対応するクロック周期を特定する。そして，この特定したクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。
【０１５４】
図4の例では，検査部22は，符号D1に示すテストパターンデータのテスト値DINを入力する場合は，このテストパターンデータのクロック周期識別番号に対応するクロック周期7nsを特定し，7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は，この指示に応答して，7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【０１５５】
そして，符号D1に示すテストパターンデータのテスト値DINの入力が終了すると，検査部22は，符号D2に示すテストパターンデータのテスト値DINを入力する。検査部22は，この入力のタイミングに合わせ，このテストパターンデータのクロック周期識別番号に対応するクロック周期17nsを特定し，17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は，この指示に応答して，17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【０１５６】
検査部22は，一連のテスト値を有する新テストパターンファイルのテストパターンに対する論理演算を前記のクロック信号CLKに基づき同型の半導体集積回路311に実行させ，このテストパターンに対する半導体集積回路311の出力値を取得する。そして，出力期待値判定部221は，このテストパターンに対する半導体集積回路311の出力期待値と前記の出力値とを比較し，同型の半導体集積回路311の故障有無を検査する。
【０１５７】
半導体集積回路検査装置20は，全ての同型の半導体集積回路312…31xについて，前記した処理により，故障有無を検査する。
【０１５８】
[他の新テストパターンファイル]
ところで，1つの分割テストパターンが，それぞれ異なる動作速度を有する複数の論理回路用のテストパターンとなることがある。なお，この分割テストパターンは，出力期待値がX値に変更されていないテストパターンデータのテスト値を有する。
【０１５９】
例えば，図5〜図10で説明した例においては，図8の符号D2に示す分割テストパターンが高速で動作する論理回路31L1用，および，低速で動作する論理回路31L2用のテストパターンであった。なお，図8のテストパターンデータ識別番号51〜70のテスト値が高速で動作する論理回路31L1用のテストパターンであり，テストパターンデータ識別番号71〜100のテスト値が低速で動作する論理回路31L2用のテストパターンであった。
【０１６０】
特に，半導体集積回路検査装置20が，動作速度がそれぞれ異なる3つ以上の論理回路を有する半導体集積回路のテストをする場合には，この1つの分割テストパターンが，それぞれ異なる動作速度を有する複数の論理回路用のテストパターンである可能性が大きくなる。
【０１６１】
その結果，この分割テストパターンの最適クロック周期が，異なる動作速度の論理回路の内，低速で動作する論理回路に対応する最適クロック周期になり，十分にテスト時間を短縮することができなくなる。
【０１６２】
そこで，多数の区間に分割した分割テストパターン毎の最短クロック周期を算出することが好ましい。このようにすると，各分割テストパターンが，1つの論理回路用のテストパターンとなる可能性(確率)が大きくなる。その結果，この分割テストパターンの最適クロック周期が，この論理回路に対応する最適クロック周期になり，十分にテスト時間を短縮することができる。
【０１６３】
また，1つの分割テストパターンが1つの論理回路用のテストパターンであっても，この分割テストパターンをさらに細かく分割すると，このさらに分割された分割テストパターン毎に最適クロック周期が異なることがある。これは，１つの論理回路におけるフリップフロップ回路間毎に配置された論理素子の密度が異なることに起因する。
【０１６４】
このような場合であっても，多数の区間に分割した分割テストパターン毎の最短クロック周期を算出すれば，分割テストパターンの最適クロック周期を高精度に算出できる。その結果，十分にテスト時間を短縮することができる。
【０１６５】
ここで，2つ以上，例えば，10区間に分割した分割テストパターン毎の最適クロック周期を算出する場合について説明する。
【０１６６】
具体的には，分割テストパターンファイル生成部211は，オリジナルテストパターンファイルを10個コピーする(ステップS1)。なお，このオリジナルテストパターンファイルは，半導体集積回路31以外の半導体集積回路のテスト用に作成されたテストパターンファイルであるとする。
【０１６７】
そして，分割テストパターンファイル生成部211は，k番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する(ステップS2)。
【０１６８】
図11は，1番目のコピーテストパターンファイルにおいて，符号D11に示すテストパターン識別番号1〜10番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値がX値に変更された場合を例示する図である。
【０１６９】
図12は，10番目のコピーテストパターンファイルにおいて，符号D12に示すテストパターン識別番号91〜100番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値がX値に変更された場合を例示する図である。
【０１７０】
次に，最小周期抽出部212は，検査部22を利用して，1番目〜10番目の分割テストパターンファイルのシュムプロットを取得する(ステップS3)。そして，最小周期抽出部212は，1番目〜10番目の分割テストパターンファイルの最小クロック周期を抽出し(ステップS4)，最適周期算出部213は，1番目〜10番目の分割テストパターンファイルの最適クロック周期を算出する(ステップS5)。
【０１７１】
例えば，1，4，9番目の分割テストパターンファイルの最適クロック周期が12ns，2，8番目の分割テストパターンファイルの最適クロック周期が18ns，3，5，10番目の分割テストパターンファイルの最適クロック周期が20ns，6番目の分割テストパターンファイルの最適クロック周期が14ns，7番目の分割テストパターンファイルの最適クロック周期が16nsだとする。
【０１７２】
新テストパターンファイル生成部214は，テストパターンと，このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する(ステップS6)。
【０１７３】
具体的には，新テストパターンファイル生成部214は，オリジナルテストパターンファイルのヘッダ部分のクロック周期欄に，k番目の分割テストパターンファイルの最適クロック周期と，この最適クロック周期のクロック周期識別番号を追加する。
【０１７４】
例えば，新テストパターンファイル生成部214は，最適クロック周期18nsのクロック周期識別番号は”2”(TCYCLE=2)，最適クロック周期16nsのクロック周期識別番号は”3”(TCYCLE=3)，最適クロック周期14nsのクロック周期識別番号は”4”(TCYCLE=4)，最適クロック周期12nsのクロック周期識別番号は”5”(TCYCLE=5)とする。
【０１７５】
図13は，本実施の形態における新テストパターンファイルの他の例を示す図である。
【０１７６】
図13の例では，新テストパターンファイル生成部214は，符号P31に示すように，
TIMING  : CYCLE = 18   ns   : TCYCLE = 2 ; 
TIMING  : CYCLE = 16   ns   : TCYCLE = 3 ; 
TIMING  : CYCLE = 14   ns   : TCYCLE = 4 ; 
TIMING  : CYCLE = 12   ns   : TCYCLE = 5 ; 
を追加する。
【０１７７】
そして，新テストパターンファイル生成部214は，この追加後のファイルにおいて，ステップS6で説明した，クロック周期識別番号の変更を実行する。
【０１７８】
図13の例では，mは10，TPDは100である。従って，新テストパターンファイル生成部214は，1〜10，31〜40，81〜90番目のテストパターンデータのクロック周期識別番号を”1”から”5”に変更し，11〜20，71〜80番目のテストパターンデータのクロック周期識別番号を”1”から”2”に変更する。
【０１７９】
また，新テストパターンファイル生成部214は，51〜60番目のテストパターンデータのクロック周期識別番号を”1”から”4”に変更し，61〜70番目のテストパターンデータのクロック周期識別番号を”1”から”3”に変更する。なお，新テストパターンファイル生成部214は，21〜30，41〜50，91〜100番目のテストパターンデータのクロック周期識別番については変更しない。
【０１８０】
このように，多くの区間に分割した分割テストパターン毎に最小クロック周期を算出すれば，分割テストパターン毎の最適クロック周期をより高精度に算出することができる。
【０１８１】
[他の新テストパターンファイル生成方法]
ところで，分割テストパターン毎の最適クロック周期を算出する処理において,図6のフロー図で説明した例では，各分割テストパターンファイルを生成し，各分割テストパターンファイルの最適周期を算出することにより新テストパターンファイルを生成した。他にも，1つの分割テストパターンファイルを生成し，１つの分割テストパターンファイルが生成された後に，この分割テストパターンファイルの最適周期を算出し，次にもう1つめの分割テストパターンファイルを生成する処理を繰り返すことにより新テストパターンファイルを生成してもよい。
【０１８２】
図14は，新テストパターンファイルの生成処理を説明する他のフロー図である。なお，以下の説明において，ステップS11〜S15，S18の詳細説明については，図6のステップS1〜S5，S6で説明したので，省略している。
【０１８３】
ステップS11: 分割テストパターンファイル生成部211は，オリジナルテストパターンファイルを所定個数(m個)コピーする。
【０１８４】
ステップS12:分割テストパターンファイル生成部211は，k番目の分割テストパターンファイルを生成する。なお，分割テストパターンファイル生成部211が，初めてステップS12を実行する場合，kは1である。すなわち，分割テストパターンファイル生成部211は，k番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する。
【０１８５】
ステップS13: 最小周期抽出部212は，k番目の分割テストパターンファイルのシュムプロットを取得する。
【０１８６】
ステップS14: 最小周期抽出部212は，k番目の分割テストパターンファイルの最小クロック周期を抽出する。
【０１８７】
ステップS15: 最適周期算出部213は，k番目の分割テストパターンファイルの最適クロック周期を算出する。
【０１８８】
ステップS16: 最適周期算出部213は，m番目の分割テストパターンファイルの最適クロック周期を算出したか判定する。
【０１８９】
最適周期算出部213が，m番目の分割テストパターンファイルの最適クロック周期を算出していない場合(ステップS16/NO)，kの値を1つカウントアップして(ステップS17)，ステップS12に戻る。
【０１９０】
最適周期算出部213が，m番目の分割テストパターンファイルの最適クロック周期を算出した場合(ステップS16/YES)，ステップS18に移る。
【０１９１】
ステップS18:新テストパターンファイル生成部214は，テストパターンと，このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。
【０１９２】
本実施の形態によれば，テストパターンにおいて分割されたテストパターン毎の最適クロック周期を算出することで，テスト時間を短縮することができる。さらに，テスト時間短縮により，テストに必要な電力を削減することができる。
【０１９３】
以上の実施の形態をまとめると，次の付記のとおりである。
【０１９４】
（付記１）
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ，前記テストパターンに対する前記半導体集積回路の出力期待値と，前記テストパターンに対する前記半導体集積回路の出力論理とを比較し，前記半導体集積回路の故障有無を検査し，故障判定結果を出力する半導体集積回路検査装置において，
前記テストパターンを複数の区間に分割した分割テストパターン毎に，前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき，前記分割テストパターン毎の最適クロック周期を算出する算出部と，
前記テストパターンと，前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部を有する
ことを特徴とする半導体集積回路検査装置。
【０１９５】
（付記２）
付記１において，
テスト値と前記テスト値に対する前記半導体集積回路の出力期待値を有するテストパターンデータが連続して記録されたテストパターンファイルを所定個数コピーし，前記コピーした各コピーテストパターンファイルにおいて，前記各コピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更する分割テストパターンファイル生成部を有し，
前記算出部は，前記不定値に変更されていないテストパターンデータのテスト値を有するテストパターンを前記分割テストパターンとして，前記分割テストパターン毎の最適クロック周期を算出する
ことを特徴とする半導体集積回路検査装置。
【０１９６】
（付記３）
前記半導体集積回路は，複数の論理回路と，前記半導体集積回路検査装置から入力された前記テストパターンの前記テスト値に対応するテスト値を，前記テストパターンの前記テスト値に応じて，前記複数の論理回路の何れかに入力するBIST回路とを有する
ことを特徴とする半導体集積回路検査装置。
【０１９７】
（付記４）
付記１〜３の何れかにおいて，
前記算出部は，前記半導体集積回路の電源電圧，および，前記クロック信号の周期を変化させて，前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得て，さらに，前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を，前記分割テストパターン毎の最適クロック周期として算出する
ことを特徴とする半導体集積回路検査装置。
【０１９８】
（付記５）
付記４において，
前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき，前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる
ことを特徴とする半導体集積回路検査装置。
【０１９９】
（付記６）
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ，前記テストパターンに対する前記半導体集積回路の出力期待値と，前記テストパターンに対する前記半導体集積回路の出力論理とを比較し，前記半導体集積回路の故障有無を検査し，故障判定結果を出力する半導体集積回路の検査方法において，
前記テストパターンを複数の区間に分割した分割テストパターン毎に，前記半導体集積回路の電源電圧，および，前記クロック信号の周期を変化させて，前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させて，前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得る工程と，
前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を，前記分割テストパターン毎の最適クロック周期として算出する工程と，
前記テストパターンと，前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する工程とを有する
ことを特徴とする半導体集積回路の検査方法。
【０２００】
（付記７）
付記６において，
さらに，前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき，前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる工程を有する
ことを特徴とする半導体集積回路の検査方法。
【符号の説明】
【０２０１】
10…ワークステーション，11…CPU，12…記憶部，20…半導体集積回路検査装置，122…電圧変換部，21…CPU，211…分割テストパターンファイル生成部，212…最小周期抽出部，213…最適周期算出部，214…新テストパターンファイル生成部，22…検査部，221…出力期待値判定部，222…周波数_電圧変更部，23…記憶部，31，311，31x…半導体集積回路，31B…BIST回路，31L1〜31Ln…論理回路，Sw1〜Swn…スイッチ。
【図１】
2013040855.tif 000003
【図２】
2013040855.tif 000004
【図３】
2013040855.tif 000005
【図４】
2013040855.tif 000006
【図５】
2013040855.tif 000007
【図６】
2013040855.tif 000008
【図７】
2013040855.tif 000009
【図８】
2013040855.tif 000010
【図９】
2013040855.tif 000011
【図１０】
2013040855.tif 000012
【図１１】
2013040855.tif 000013
【図１２】
2013040855.tif 000014
【図１３】
2013040855.tif 000015
【図１４】
2013040855.tif 000016