半導体集積回路検査装置,および,半導体集積回路の検査方法
【課題】テスト時間をより短縮するテストパターンを作成する半導体集積回路検査装置,および,半導体集積回路の検査方法を提供する。
【解決手段】半導体集積回路検査装置20は,テストパターンを複数の区間に分割した分割テストパターン毎に,分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路に実行させることにより得られた半導体集積回路31の故障判定結果に基づき,分割テストパターン毎の最適クロック周期を算出する最適周期算出部213と,テストパターンと,テストパターンに係る分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部214を有する。
【解決手段】半導体集積回路検査装置20は,テストパターンを複数の区間に分割した分割テストパターン毎に,分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路に実行させることにより得られた半導体集積回路31の故障判定結果に基づき,分割テストパターン毎の最適クロック周期を算出する最適周期算出部213と,テストパターンと,テストパターンに係る分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部214を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,半導体集積回路検査装置,および,半導体集積回路の検査方法に関する。
【背景技術】
【0002】
半導体集積回路の製造工程で物理的な欠陥が生じていないかを検査するため,出荷前の不良品検査(テストとも言う)が行われている。このテスト方法の一例として,複数のテスト値を有するテストパターンを利用する方法がある。このテスト方法は,以下のように行われる。まず,テストパターンを検査対象の半導体集積回路(DUT:Device Under Test)に入力し,テストパターンに対する論理演算を所定のクロック周期を有するクロック信号に基づきこの半導体集積回路に実行させる。
【0003】
そして,テストパターンに対する半導体集積回路の出力期待値と,テストパターンに対する半導体集積回路の出力論理(以下,出力値と記す)とを比較する。さらに,前記の出力値と前記の出力期待値とが一致する場合は,半導体集積回路に故障無し(パスとも言う)と判定し,不一致の場合は,故障有り(フェイルとも言う)と判定する。このようなテスト方法を行う際のテスト時間を短縮する技術が様々提案されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−7589号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
このテスト時間を短縮する方法として,検査対象の半導体集積回路にテストパターンを入力する際に,この半導体集積回路に入力するクロック信号の周期を短くする,すなわちこの半導体集積回路に入力するクロック信号の周波数を高くする方法がある。検査対象の半導体集積回路は,このクロック信号に基づいてテストパターンに対する論理演算を実行する。
【0006】
この方法を実行する場合,いわゆるシュムプロットによるマージン解析が行われる。このシュムプロットとは,例えば,故障検査対象の半導体集積回路の電源電圧,および,この半導体集積回路に入力するクロック信号の周期を変化させて,テストパターンに対する論理演算をこの半導体集積回路に実行させ,この半導体集積回路のテスト結果,すなわちパス,フェイルを記録したものである。
【0007】
図1は,シュムプロットの一例を示す図である。縦軸は電源電圧,横軸はクロック周期を示し,”P”は検査対象の半導体集積回路がパスであることを示し,”・”は半導体集積回路がフェイルであることを示す。
【0008】
半導体集積回路検査装置は,電源電圧を例えば3.00〜3.60Vの範囲で0.1V毎に連続的に変化させ,さらに,クロック信号の周期を例えば0〜30nsの範囲で0.5ns毎に連続的に変化させて,テストパターンに対する論理演算を検査対象の半導体集積回路に実行させる。そして,半導体集積回路検査装置は,前記した検査対象の半導体集積回路のパス,フェイルを判定する。そして,各電源電圧および各クロック周期に対応した判定結果を図1に示したようにプロットし出力する。
【0009】
図1の例では,電源電圧3.30Vにおいて,クロック信号の周期を変化させた場合に,テストパターンに対する論理演算を検査対象の半導体集積回路に実行させると,クロック信号の周期が15ns以上では検査対象の半導体集積回路はパスする。一方,クロック信号の周期が15ns未満では検査対象の半導体集積回路はフェイルする。
【0010】
図1においては,検査対象の半導体集積回路がパスになるクロック信号の最小クロック周期は15nsであることがわかる。また,図1においては,検査対象の半導体集積回路のテストを行う上で規定されているクロック信号の周期は20nsである。この規定クロック周期20nsは,検査対象の半導体集積回路のテストを実行する上で基準となるクロック信号の周期であり,検査対象の半導体集積回路の種類によって異なる。
【0011】
ここで,この最小クロック周期から規定クロック周期の範囲におけるクロック周期を動作可能範囲とする(符号M1参照)。検査対象の半導体集積回路のテストの際に,この動作可能範囲に示すクロック周期を有するクロック信号を入力すれば,正しい検査結果を得ることができる。
【0012】
そこで,検査対象の半導体集積回路のテストの際に,検査対象の半導体集積回路に入力するクロック信号の周期を規定クロック周期(20ns)よりも短く設定する。このとき,クロック信号の最小クロック周期(15ns)ではなく,クロック信号の最小クロック周期(15ns)から一定のマージン幅(余裕),例えば2nsを持たせる。この場合,クロック信号の周期を17nsと設定する。通常,マージン幅は,プロセスばらつきによる周期変動幅より大きい値を設定する。
【0013】
設定後のクロック周期(17ns)を有するクロック信号を入力して,検査対象の半導体集積回路のテストを実行すれば,設定前のクロック周期(20ns)を有するクロック信号を入力して検査対象の半導体集積回路のテストを実行する場合と比べて,テスト時間を15%((20-17)/20)×100)短縮することができる。このようにしてテスト時間を短縮できれば,検査対象となる半導体集積回路の個数が多ければ多いほど,テスト時間の短縮効果が増すことになる。
【0014】
しかし,半導体集積回路の回路規模が増大するのに伴い,テストパターン量(テストパターン長とも言う)が増大しており,さらなるテスト時間の短縮が必要である。
【0015】
したがって,本発明の目的は,テスト時間をより短縮するテストパターンを作成する半導体集積回路検査装置,および,半導体集積回路の検査方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
半導体集積回路検査装置の第1の側面は,テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路検査装置において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき,前記分割テストパターン毎の最適クロック周期を算出する算出部と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する生成部を有する
ことを特徴とする。
【発明の効果】
【0017】
第1の側面によれば,テストパターンを複数の区間に分割した分割テストパターン毎の最適クロック周期を算出することで,テスト時間をより短縮できる。
【図面の簡単な説明】
【0018】
【図1】シュムプロットの一例を示す図である。
【図2】本実施の形態の半導体集積回路検査装置,半導体集積回路検査装置に接続するワークステーション,DUTボードの一例ブロック図である。
【図3】オリジナルテストパターンファイルの一例を説明する図である。
【図4】本実施の形態における新テストパターンファイルの一例を示す図である。
【図5】半導体集積回路の構成を示す一例ブロック図である。
【図6】新テストパターンファイルの生成処理を説明するフロー図である。
【図7】1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図8】2番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図9】1番目の分割テストパターンファイル(図7)についてのシュムプロットを説明する図である。
【図10】2番目の分割テストパターンファイル(図8)についてのシュムプロットを説明する図である。
【図11】1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図12】10番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図13】本実施の形態における新テストパターンファイルの他の例を示す図である。
【図14】新テストパターンファイルの生成処理を説明する他のフロー図である。
【発明を実施するための形態】
【0019】
図2は,本実施の形態の半導体集積回路検査装置,半導体集積回路検査装置に接続するワークステーション,DUTボードの一例ブロック図である。
【0020】
[ワークステーション]
ワークステーション10は,半導体集積回路の設計支援機能を有する装置であり,例えば,論理合成,テスト容易化設計,レイアウト設計,論理シミュレーション,ATPG(Automatic Test Pattern Generator)機能を有する。
【0021】
このテスト容易化設計において,例えば,半導体集積回路31におけるスキャンテストを実行するため,半導体集積回路31のフリップフロップ回路をシリアル接続してスキャンチェーンを形成させるための制御回路が検査対象となる半導体集積回路31などに組み込まれる。他にも,BIST(Built In Self Test)回路が,半導体集積回路31などに組み込まれる。また,このATPGにより,検査対象となる半導体集積回路31のテストパターンを自動的に生成することができる。
【0022】
CPU11は,半導体集積回路の設計支援機能を有するプログラムを実行する処理や,記憶部12を制御する。
【0023】
記憶部12は,前記したATPGにより生成された半導体集積回路31のテストパターン(オリジナルテストパターンファイル121)や,分割数情報122,マージン幅情報123を記憶する。分割数情報122,マージン幅情報123については,後述する。なお,ワークステーション10と半導体集積回路検査装置20とは,接続インターフェイス(図示しない)を介して相互に接続している。
【0024】
[半導体集積回路検査装置]
半導体集積回路検査装置20は,テストパターンに対する半導体集積回路31の出力期待値と,テストパターンに対する半導体集積回路31の出力値OUTとを比較し,半導体集積回路31の故障有無を検査し,故障判定結果を出力する。
【0025】
半導体集積回路検査装置20は,半導体集積回路31の故障検査に係る各種処理を制御するCPU21,半導体集積回路31の故障検査処理を実行する検査部22,後述するプログラムや,各種データを記憶する記憶部23を有する。CPU21は,検査部22,記憶部23を制御する。
【0026】
また,CPU21は,プログラム(ソフトウェア)として動作する,分割テストパターンファイル生成部211,最小周期抽出部212,最適周期算出部213,新テストパターンファイル生成部214を有する。ソフトウェアとして動作する,分割テストパターンファイル生成部211,最小周期抽出部212,最適周期算出部213,新テストパターンファイル生成部214は,プログラムファイルとして,例えば記憶部23に記憶され,必要に応じてCPU21が記憶部23から読み出し実行するものであり,詳細については後述する。
【0027】
検査部22は,テストパターンに対する論理演算を所定の周期を有するクロック信号CLKに基づき検査対象の半導体集積回路31に実行させる。このテストパターンは,後述するように,複数のテスト値DIN(0又は1)を有する。
【0028】
出力期待値判定部221は,テストパターン(テスト値DIN)に対する半導体集積回路31の出力期待値と,このテストパターンに対する半導体集積回路31の出力値OUTとを比較し,一致しているか判定する。
【0029】
周波数_電圧変更部222は,半導体集積回路31にクロック信号CLKを入力する処理,さらに,半導体集積回路31に電源電圧Vを供給する処理を実行すると共に,クロック信号CLKのクロック周期,および,電源電圧Vの電圧値を変更する。
【0030】
半導体集積回路検査装置20とDUTボード30とは,クロック信号用ラインや,電源電圧供給ラインや,データラインを介して接続している。周波数_電圧変更部222は,クロック信号用ラインを介してクロック信号CLKをDUTボード30の半導体集積回路31に入力し,電源電圧供給ラインを介して電源電圧VをDUTボード30の半導体集積回路31に供給する。また,データラインを介してテスト値DINが半導体集積回路31に入力され,出力値OUTが検査部22に入力される。
【0031】
[DUTボード,半導体集積回路]
DUTボード30は,検査対象の半導体集積回路31がセットされ,半導体集積回路31の外部入出力端子(図示しない)と,半導体集積回路検査装置20の外部入出力端子(図示しない)とを接続する接続機能を有する。
【0032】
半導体集積回路311…31xは,半導体集積回路31と同型の半導体集積回路であり,半導体集積回路31と同内容の論理演算を実行する半導体集積回路である。すなわち,半導体集積回路311…31xも故障検査対象の半導体集積回路である。
【0033】
[オリジナルテストパターンファイル]
図3は,オリジナルテストパターンファイルの一例を説明する図である。このオリジナルテストパターンファイルは,半導体集積回路31をテストするためのテストパターンを有し,例えば,ワークステーション10の記憶部12にオリジナルテストパターンファイル121として記憶されているものである。このオリジナルテストパターンファイルは,ワークステーション10のCPU11が実行するATPGにより生成されたものである。
【0034】
符号P1〜P4で示す部分は,テストパターンファイルのヘッダ部であり,符号D1,D2で示す部分は,テストパターンデータ部であり,符号P5で示す部分は,テストパターンファイルのフッタ部である。まず,符号D1,D2で示すテストパターンデータ部について説明する。
【0035】
符号D1,D2で示すテストパターンデータ部における1つのテストパターンデータは,”P, DIN, DOUT, @TCYCLE, ID”に示す5つの要素を有する。
【0036】
P(Positive Pulse)はクロック信号CLKを示し,DINはテストパターンのテスト値を示し,DOUTはテスト値DINに対する半導体集積回路31の出力期待値を示す。なお,出力期待値の”H”は1,”L”は0を示す。出力期待値の”X”は不定値を示す。
【0037】
@TCYCLEは,このテスト値DINに対する論理演算を半導体集積回路31に実行させる際に半導体集積回路31に入力するクロック信号CLKのクロック周期を識別するクロック周期識別番号を示す。このクロック周期識別番号は,符号P2に示す”TIMING : CYCLE = 20 ns : TCYCLE=1 ;”の”TCYCLE=1”に対応するものである。
【0038】
符号P2は,”TCYCLE=1”(クロック周期識別番号1)で指定されたテストパターンデータのテスト値DINを周期20nsのクロック信号CLKに同期して故障検査対象の半導体集積回路31に入力することを示す文字列である。すなわち,検査部22は,”TCYCLE=1”で指定されたテストパターンデータのテスト値DINに対する論理演算を周期20nsのクロック信号CLKに基づき,半導体集積回路31に実行させる。
【0039】
IDはテストパターンデータの識別番号であり,テストパターンファイルにおけるテストパターンデータの配列順番を示す。すなわち,この識別番号は,テストパターンにおけるテスト値DINの配列順番を示す。
【0040】
符号D101に示すテストパターンデータについて説明すると,テスト値が1,出力期待値がL(0),クロック周期識別番号が”1”であることを示す。このクロック周期識別番号から,このテスト値に対する論理演算を半導体集積回路31に実行させる際に半導体集積回路31に入力するクロック信号CLKのクロック周期が,20nsであることがわかる(符号P2参照)。そして,このテストパターンデータの識別番号は”15”であることを示す。
【0041】
このように,テストパターンファイルは,テスト値DINとテスト値DINに対する故障検査対象の半導体集積回路の出力期待値DOUTを有するテストパターンデータが連続して記録されている。また,テストパターンは,このように連続するテストパターンデータのテスト値を有する。
【0042】
図3のテストパターンファイルにおけるテストパターンは,100個のテストパターンデータのテスト値を有する構成である。この100個のテストパターンデータのテスト値が,検査部22により,半導体集積回路31に順次入力される。
【0043】
なお,符号P1で示す文字列は,テストパターンファイルの名称を示し,符号P3で示す文字列は,テストパターンデータ部のタグ情報を示し,符号P4で示す文字列は,テストパターンデータの形式を定義した文字列である。
【0044】
ところで,図1で説明したように,クロック周期を一律に短縮して,図3に示したテストパターンファイルのテストパターンに対する論理演算を20nsではなく17nsのクロック周期を有するクロック信号CLKに基づき半導体集積回路31に実行させて,テストを行わせるとする。この場合には,前述したようにテスト時間を15%短縮できる。
【0045】
ここで,発明者は,テストパターンを複数の区間に分割した分割テストパターン毎(図3の符号D1,D2参照)に,短縮できるクロック周期の長さが異なることを見出した。例えば,符号D1に示すテストパターンについては,クロック周期を前記した17nsよりも短い周期に短縮できる。すなわち,分割テストパターン毎に短縮できるクロック周期の長さを細かく算出することができる。本実施の形態の半導体集積回路検査装置20は,かかる発明者の認識のもと提案された。
【0046】
[新テストパターンファイル]
半導体集積回路検査装置20による新テストパターンファイルの生成について説明する。まず,半導体集積回路検査装置20の最適周期算出部213は,テストパターンを複数の区間に分割した分割テストパターン毎に,分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路31に実行させる。そして,最適周期算出部213は,この実行により得られた半導体集積回路31の故障判定結果に基づき,分割テストパターン毎の最適クロック周期を算出する。この算出は,分割テストパターン毎の半導体集積回路31の故障判定結果(シュムプロット)を得ることにより行われる。
【0047】
次いで,新テストパターンファイル生成部214は,このテストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有するテストパターンファイルを新たに作成する。そして,半導体集積回路検査装置20は,この新テストパターンファイルにおける分割テストパターン毎の最適クロック周期に基づき,分割テストパターンに対する論理演算を同型の半導体集積回路311…31xに実行させる。このように分割テストパターン毎に最適なクロック周期を算出すれば,テスト時間を大幅に短縮することができる。
【0048】
図4は,本実施の形態における新テストパターンファイルの一例を示す図である。この新テストパターンファイルは,前記した生成処理により生成されたファイルであるが,この生成処理については,後述する。
【0049】
図3,図4においては,例えばテストパターンを2つに分割して,符号D1,符号D2に示す分割テストパターンとしている。そして,分割テストパターン毎にこの分割テストパターンに対する論理演算を検査対象となる半導体集積回路に実行させる際の最適クロック周期が算出される。ここでは,符号D1に示す分割テストパターンの最適クロック周期は07ns,符号D2に示す分割テストパターンの最適クロック周期は17nsとして算出されたとする。
【0050】
そして,図4の符号P13に示すように,この最適クロック周期とこのクロック周期を識別するクロック周期識別番号が新たにヘッダ部分に記録される。ここでは,クロック周期07nsの識別番号は2(TCYCLE=2)であり,クロック周期17nsの識別番号は3(TCYCLE=3)である。この新たに記録されたクロック周期が最適クロック周期である。なお,符号P11に示すように,新テストパターンファイルのファイル名が”NEW_TEST(0)”として記録されている。
【0051】
また,図4の符号D1に示すテストパターンデータのクロック周期識別番号が識別番号2に変更され,図4の符号D2に示すテストパターンデータのクロック周期識別番号が識別番号3に変更されている。
【0052】
検査部22は,この符号D1に示すテストパターンデータのテスト値(分割テストパターン)をテストパターンデータ識別番号の小さい順に同型の半導体集積回路311に入力する。このとき,検査部22は,クロック周期識別番号2に対応する7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0053】
次いで,検査部22は,この符号D2に示すテストパターンデータのテスト値(分割テストパターン)をテストパターンデータ識別番号の小さい順に同型の半導体集積回路311に入力する。このとき,検査部22は,クロック周期識別番号3に対応する17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0054】
そして,前記したように,検査部22の出力期待値判定部221により,同型の半導体集積回路311のパス,フェイルが判定される。
【0055】
例えば,図3に示したテストパターンファイルのテストパターンに対する論理演算を20nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させて,テストを行った場合に必要な期間がT[msec]とする。
【0056】
図1で説明したように,クロック周期を一律に短縮して17nsとすれば,前記した様に,テスト時間を15%短縮できるので,テスト時間は0.85T[msec]である。
【0057】
一方,図4で説明した新テストパターンにおいて,符号D1に対応するテストパターンに対する論理演算を7nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させる。さらに,符号D2に対応するテストパターンに対する論理演算を17nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させる。このようにすると,同型の半導体集積回路311のテスト時間は,(T/2)(7/20) + (T/2)(17/20) = 0.60T[msec]であり,テスト時間を40%短縮できる。すなわち,クロック周期を一律に短縮する場合と比べて,テスト時間の短縮効果が大きい。
【0058】
特に,検査対象となる同型の半導体集積回路(311…31x)の個数が多ければ多いほどこのテスト時間の短縮効果が大きくなる。また,テスト時間の短縮により,テストに必要な電力も削減することができる。
【0059】
[半導体集積回路のテスト]
本実施の形態におけるテスト時間を短縮できるテストパターンの生成の詳細について説明する前に,半導体集積回路31のテストの詳細について説明する。
【0060】
図5は,半導体集積回路31の構成を示す一例ブロック図である。半導体集積回路31は,テスト制御を行う回路である例えばBIST回路31Bと,論理和(OR)素子,論理積(AND)素子などの論理素子とフリップフロップ回路などを有し,所定の論理演算を実行する論理回路31L1〜31Ln(nは整数)と,スイッチSw2〜Swnとを有する。なお,前記したように,同型の半導体集積回路311…31xも,半導体集積回路31と同様の回路構成を有する。
【0061】
BIST回路31B,スイッチSw2〜Swnは,前記したテスト容易化設計において半導体集積回路31に組み込まれた回路である。
【0062】
通常動作時において,BIST回路31Bは非活性化状態であり,スイッチSw2〜Swnはオン状態である。また,通常動作時において,論理回路31L1は,外部回路(図示しない)から入力された入力値NDINを,後段の論理回路31L2〜31Lnの何れかに入力するセレクタとして機能する。論理回路31L2〜31Lnは,論理回路31L1からの入力値NDINに対して所定の論理演算を実行し,出力値OUTとして出力する。
【0063】
一方,テスト時において,半導体集積回路検査装置20の検査部22は,クロック信号CLKを半導体集積回路31のBIST回路31Bに入力する。このクロック信号CLKの入力によりBIST回路31Bは活性化状態になる。なお,このクロック信号CLKは,論理回路31L1〜31Lnにも入力される。さらに,検査部22は,テストパターンのテスト値DINをBIST回路31Bに入力する。
【0064】
BIST回路31Bは,入力されたテストパターンのテスト値DINを解析し,入力されたテスト値DINが論理回路31L1〜31Lnの中のどの論理回路用のテスト値か特定する。すなわち,BIST回路31Bは,このテスト値を入力する論理回路を特定する。
【0065】
そして,BIST回路31Bは,特定した論理回路をテストするためのBISTテスト値をこのテスト値から新たに生成し,この論理回路に入力する。このように,BIST回路31Bは,半導体集積回路検査装置20から入力されたテストパターンのテスト値に対応するテスト値を,テストパターンのテスト値に応じて,複数の論理回路31L1〜31Lnの何れかに入力する。
【0066】
また,BIST回路31Bは,この特定した論理回路の後段に設けられたスイッチSWのみをオン状態にして,それ以外のスイッチSWをオフ状態にする制御信号Cs2〜CSnをスイッチSw2〜Swnに出力する。
【0067】
なお,BIST回路31Bは,論理回路31L1を特定した場合には,制御信号CS1を論理回路31L1に出力し,論理回路31L1の出力を後段の論理回路31L2〜31Lnをバイパスして,半導体集積回路検査装置20の検査部21に入力するように指示する。同時に,BIST回路31Bは,全てのスイッチSw2〜Swnをオフ状態にする制御信号Cs2〜CSnをスイッチSw2〜Swnに出力する。
【0068】
テスト時においては,論理回路31L1〜31Lnは,BIST回路31Bからそれぞれに入力されるBISTテスト値BT1〜BTnに対して所定の論理演算を実行し,出力値OUTとして出力する。
【0069】
半導体集積回路31のテストについて具体的に説明する。以下の説明においては,例えば,図5において,半導体集積回路31は,論理回路として2つの論理回路31L1,31L2を有し,さらに,スイッチSw2を有しているとする。
【0070】
この場合,論理回路31L1はセレクタとして機能せずに,通常動作時において,入力値NDINに対して所定の論理演算を実行し,出力を後段の論理回路31L2に入力する。一方,テスト時において,論理回路31L1は,BIST回路31Bの制御信号CS1により,出力を後段の論理回路31L2をバイパスして,半導体集積回路検査装置20の検査部21に入力する。
【0071】
半導体集積回路検査装置20のCPU21は,半導体集積回路31をテストするためのオリジナルテストパターンファイルをワークステーション10の記憶部12から読み出す。このオリジナルテストパターンファイルは,記憶部12のオリジナルテストパターンファイル121である。そして,半導体集積回路検査装置20のCPU21は,このオリジナルテストパターンファイルを装置内の記憶部23に記憶し,さらに,検査部22に出力する。
【0072】
検査部22は,オリジナルテストパターンファイルのテストパターンに対する論理演算を半導体集積回路31に実行させる。このとき,検査部22は,検査対象の半導体集積回路31をテストモードに移行させる。例えば,検査部22は,クロックCLKをBIST回路31Bに入力してBIST回路31Bを活性化状態に移行させ,さらに,半導体集積回路31のフリップフロップ回路をシリアル接続してスキャンチェーンを形成させる。
【0073】
図3のオリジナルテストパターンファイルについて説明すると,検査部22の周波数_電圧変更部222は,例えば,電源電圧Vとして3.30Vを半導体集積回路31に供給する。そして,検査部22は,テストパターンデータのテスト値DINをテストパターンデータ識別番号の小さい順から順次,シリアル入力する。なお,このテスト値DINは,前記したように,半導体集積回路31のBIST回路31Bに入力される。
【0074】
この入力に先だって,検査部22は,入力対象のテスト値DINを有するテストパターンデータのクロック周期識別番号に対応するクロック周期を特定する。そして,この特定したクロック周期を有するクロック信号CLKを半導体集積回路31に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,前記の指示に基づく,クロック周期を有するクロック信号CLKを半導体集積回路31に入力する。なお,このクロック信号CLKは,前記したように,半導体集積回路31のBIST回路31Bに入力される。
【0075】
図3の例では,検査部22は,クロック周期20nsを特定し,20nsのクロック周期を有するクロック信号CLKを半導体集積回路31に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,20nsのクロック周期を有するクロック信号CLKを半導体集積回路31に入力する。
【0076】
BIST回路31Bは,シリアル的に入力されたテストパターンのテスト値DINを解析する。ここで,図3の符号D1,D2に示すテスト値を有するテストパターンがBIST回路31Bに入力される。
【0077】
BIST回路31Bは,例えば,図3におけるテストパターンデータ識別番号1〜70のテスト値(符号D1の全部のテスト値と符号D2のテスト値の一部)が論理回路31L1用のテスト値と特定する。
【0078】
すると,BIST回路31Bは,論理回路31L1をテストするためのBISTテスト値BT1をこのテスト値から新たに生成し,論理回路31L1の論理素子にパラレル的に入力する。論理回路31L1は,入力されたBISTテスト値BT1に対して論理演算を実行し,出力値OUTを論理回路31L1の後段の論理回路31L2をバイパスして,半導体集積回路検査装置20の検査部21に入力する。
【0079】
次いで,BIST回路31Bは,例えば,図3におけるテストパターンデータ識別番号71〜100のテスト値(符号D2のテスト値の一部)が論理回路31L2用のテスト値と特定する。
【0080】
すると,BIST回路31Bは,論理回路31L2をテストするためのBISTテスト値BT2をこのテスト値から新たに生成し,論理回路31L2の論理素子にパラレル的に入力する。論理回路31L2は,入力されたBISTテスト値BT2に対して論理演算を実行し,出力値OUTを,半導体集積回路検査装置20の検査部21に入力する。
【0081】
なお,このとき,BIST回路31Bは,論理回路31L2の後段に設けられたスイッチSw2をオン状態にする。
【0082】
すなわち,検査部22は,一連のテスト値DINを有するテストパターンに対する論理演算を前記のクロック信号CLKに基づき半導体集積回路31に実行させ,テストパターンのテスト値DINに対する半導体集積回路31の出力値OUTを取得する。
【0083】
そして,出力期待値判定部221は,テスト値DINに対する半導体集積回路31の出力期待値DOUTを予め保持し,この出力期待値DOUTと前記の出力値OUTとを比較し,一致しているか判定する。検査部22は,この判定により,半導体集積回路31の故障有無を検査し,故障判定結果を出力する。出力期待値DOUTと出力値OUTが一致している場合は,半導体集積回路31はパスであり,不一致の場合は,フェイルである。
【0084】
以上,説明した様に,半導体集積回路検査装置20は,半導体集積回路31のテストを実行する。
【0085】
[シュムプロット]
半導体集積回路検査装置20の検査部22は,半導体集積回路31の故障判定結果に基づき,シュムプロットを生成する処理も実行する。
【0086】
このシュムプロットは,図4で説明した最適クロック周期を算出する際に必要な情報である。CPU21は,シュムプロットを出力するように,検査部22に指示する。検査部22は,この指示に応答して,以下の処理を実行し,シュムプロットを出力する。
【0087】
すなわち,検査部22は,1つのテストパターンファイルにおけるテストパターンに対する論理演算を半導体集積回路31に実行させる度に,周波数_電圧変換部222により電源電圧を例えば3.00〜3.60Vの範囲で0.1V毎に連続的に変化させ,さらに,クロック信号CLKのクロック周期を例えば0〜30nsの範囲で0.5ns毎に連続的に変化させる。そして,検査部22の出力期待値判定部221は,前記した半導体集積回路31の故障判定結果を出力する。
【0088】
例えば,検査部22は,電源電圧3.00,20nsのクロック周期を有するクロック信号に基づき,1つのテストパターンファイルのテストパターンに対する論理演算を半導体集積回路31に実行させ,出力期待値判定部221により前記の故障判定結果(パス,フェイル)を得る。そして,検査部22は,電源電圧3.00のままで,20.5nsのクロック周期を有するクロック信号に基づき,同じテストパターンに対する論理演算を半導体集積回路31に実行させ,出力期待値判定部221により前記の故障判定結果を得る。なお,検査部22は,1つのテストパターンを実行させている途中で,前記した半導体集積回路31の故障判定結果を得るようにしてもよい。
【0089】
このようにして,検査部22の出力期待値判定部221は,各電源電圧および各クロック周期において,前記した半導体集積回路31のパス,フェイルを判定する。そして,検査部22は,各電源電圧および各クロック周期に対応した故障判定結果を図1に示したようにプロットし出力する。
【0090】
本実施の形態においては,半導体集積回路検査装置20は,シュムプロットを利用して分割テストパターン毎の最適クロック周期を算出し,テストパターンと,テストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。
【0091】
[新テストパターンファイルの生成処理]
次に,本実施の形態における新テストパターンファイルの生成処理について詳細に説明する。
【0092】
図6は,新テストパターンファイルの生成処理を説明するフロー図である。
【0093】
ステップS1:分割テストパターンファイル生成部211は,オリジナルテストパターンファイルを所定個数(m個)コピーする。このコピーテストパターンファイルは,オリジナルテストパターンファイルと同内容である。
【0094】
具体的には,分割テストパターンファイル生成部211は,ワークステーション10の記憶部12から,オリジナルテストパターンファイル121,所定個数情報を有する分割数情報122を読み出す。そして,読み出したオリジナルテストパターンファイル121から,所定個数(m個)のコピーテストパターンファイルを生成し,記憶部23に記憶する。この所定個数は,分割数情報122として記憶部12に記憶されているものである。mは2以上の整数である。
【0095】
以下の説明では,分割テストパターンファイル生成部211により,コピーテストパターンファイルが生成された順にこれらのコピーテストパターンファイルを1番目,2番目…k番目のコピーテストパターンファイルと呼ぶ。ここで,kは1〜mまでの整数である。
【0096】
ステップS2:分割テストパターンファイル生成部211は,コピーした各コピーテストパターンファイルにおいて,この各コピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値(X値)に変更する。
【0097】
この変更後のコピーテストパターンファイルを分割テストパターンファイルと呼ぶ。また,k番目のコピーテストパターンファイルの分割テストパターンファイルをk番目の分割テストパターンファイルと呼ぶ。
【0098】
この変更について,詳細に説明する。コピーテストパターンファイルは,TPD個のテストパターンデータを有しているとする。図3の例では,TPDは100である。
【0099】
そして,m個のコピーテストパターンファイルにおいて,k番目のコピーテストパターンファイルに対応するコピーテストパターンデータ,すなわちk番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する。
【0100】
前記したmが2,TDPが100の場合における分割テストパターンファイルについて,図7,図8を用いて説明する。
【0101】
図7は,1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。図7においては,符号D1に示すテストパターンデータが,1番目のコピーテストパターンファイルに対応するテストパターンデータ(識別番号1〜50)であり,符号D2に示すテストパターンデータが,それ以外のテストパターンデータ(識別番号51〜100)である。
【0102】
分割テストパターンファイル生成部211は,図7の符号D2に示すテストパターンデータの出力期待値をX値に変更する。
【0103】
出力期待値が不定値Xに変更された場合,不定値Xに対応するテスト値が半導体集積回路31に入力され,半導体集積回路31がこのテスト値に対して論理演算を実行して出力しても,出力期待値判定部221は,この出力値と不定値Xとを比較して,一致するか否かの判定は実行しない(Don’t care)。
【0104】
図8は,2番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。図8においては,符号D2に示すテストパターンデータが,2番目のコピーテストパターンファイルに対応するテストパターンデータ(識別番号51〜100)であり,符号D1に示すテストパターンデータが,それ以外のテストパターンデータ(識別番号1〜50)である。
【0105】
分割テストパターンファイル生成部211は,図8の符号D1に示すテストパターンデータの出力期待値をX値に変更する。
【0106】
このようにX値に変更されていないテストパターンデータのテスト値を有するテストパターンが,オリジナルテストパターンファイルにおけるテストパターンを複数の区間に分割した分割テストパターンである。
【0107】
なお,分割テストパターンファイル生成部211は,k番目の分割テストパターンファイルの名をTEST(k)に変更する。図7の例では,図7の分割テストパターンファイルは1番目の分割テストパターンファイルなので,分割テストパターンファイル生成部211は,TEST(1)と変更する。図8の例では,図8の分割テストパターンファイルは,2番目の分割テストパターンファイルなので,分割テストパターンファイル生成部211は,TEST(2)と変更する。
【0108】
そして,分割テストパターンファイル生成部211は,k番目の分割テストパターンファイルを分割テストパターンファイル23kとして記憶部23に記憶する。図2の例では,分割テストパターンファイル生成部211は,分割テストパターンファイル231,232として記憶部23に記憶する。
【0109】
このように,分割テストパターンファイルを作成することで,分割テストパターン毎(図4の符号D1,符号D2に示すテストパターン)に,ステップS3で説明するシュムプロットを得ることができる。
【0110】
ステップS3:最小周期抽出部212は,各分割テストパターンファイルのシュムプロットを取得する。
【0111】
具体的には,最小周期抽出部212は,分割テストパターンファイル生成部211が生成した各分割テストパターンファイルを検査部22に出力し,各分割テストパターンファイルについてのシュムプロットを出力するように検査部22に指示する。検査部22は,この指示に応答して,各分割テストパターンファイルのシュムプロットを出力する。なお,シュムプロットの出力については,前記したので省略する。
【0112】
このとき,前記したように,不定値Xに対応するテスト値が半導体集積回路31に入力され,半導体集積回路31がこのテスト値に対して論理演算を実行して出力値を出力しても,出力期待値判定部221は,この出力値と不定値Xとを比較して,一致するか否かの判定は実行しない。
【0113】
そのため,半導体集積回路31の電源電圧,および,クロック信号CLKの周期を変化させることによる,分割テストパターン毎の半導体集積回路の故障判定結果(シュムプロット)を得ることができる。
【0114】
図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用のテスト値と特定した。
【0115】
このとき,例えば、論理回路31L1は,周期が短いクロック信号に基づき動作,すなわち高速で動作し,論理回路31L2は,周期が長いクロック信号に基づき動作,すなわち低速で動作するとする。
【0116】
図7に示す分割テストパターンに対応する論理演算を半導体集積回路31に実行させてシュムプロットを取得するとする。図7において,符号D1に示すテストパターンの出力期待値は変更されず,符号D2に示すテストパターンの出力期待値がX値に変更されている。
【0117】
従って,前記したように,出力期待値判定部221は,テストパターンデータ識別番号1〜50のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。
【0118】
しかし,出力期待値判定部221は,テストパターンデータ識別番号51〜70のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。また,出力期待値判定部221は,テストパターンデータ識別番号71〜100のテスト値を有するテストパターンに対して論理回路31L2が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。
【0119】
すなわち,検査部22は,高速で動作する論理回路31L1のテストを実行する。そして,検査部22は,この比較結果に基づき,シュムプロットを出力する。
【0120】
図9は,1番目の分割テストパターンファイル(図7)についてのシュムプロットを説明する図である。このように,図9に示したシュムプロットの最小クロック周期は5nsであり,図1に示したシュムプロットの最小クロック周期(15ns)と比べて小さい。これは,高速で動作する論理回路31L1に対してテストを実行し,シュムプロットを得ているからである。
【0121】
これに対して,図8に示す分割テストパターンに対応する論理演算を半導体集積回路31に実行させてシュムプロットを取得するとする。図8において,符号D2に示すテストパターンの出力期待値は変更されず,符号D1に示すテストパターンの出力期待値がX値に変更されている。
【0122】
従って,前記したように,出力期待値判定部221は,テストパターンデータ識別番号1〜50のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。
【0123】
一方,出力期待値判定部221は,テストパターンデータ識別番号51〜70のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。また,出力期待値判定部221は,テストパターンデータ識別番号71〜100のテスト値を有するテストパターンに対して論理回路31L2が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。
【0124】
そして,検査部22は,この比較結果に基づき,シュムプロットを出力する。すなわち,検査部22は,高速で動作する論理回路31L1と低速で動作する論理回路31L2のテストを実行する。そして,検査部22は,この比較結果に基づき,シュムプロットを出力する。
【0125】
図10は,2番目の分割テストパターンファイル(図8)についてのシュムプロットを説明する図である。図10(A)は,このシュムプロットの第1の図,図10(A’)は,このシュムプロットの第2の図である。
【0126】
図10(A)に示したシュムプロットの最小クロック周期は15nsであり,図9に示したシュムプロットの最小クロック周期(05ns)と比べて大きい。これは,高速で動作する論理回路31L1と,低速で動作する論理回路31L2に対してテストを実行し,図8のテストパターンファイルのシュムプロットを得ているからである。この場合,論理回路31L2の動作速度がボトルネック(律速)となり,このシュムプロットの最小クロック周期が小さくならない。なお,図10(A’)については,後述する。
【0127】
このようにして,シュムプロットを取得した後,半導体集積回路検査装置20のCPU21は,取得したシュムプロットを各分割テストパターンファイルと対応付けて記憶部23に記憶する。図2の例では,分割テストパターンファイル231,232と対応付けて,シュム231s,232sとして記憶部23に記憶する。
【0128】
ステップS4:最小周期抽出部212は,各分割テストパターンファイルの最小クロック周期を抽出する。すなわち,最小周期抽出部212は,k番目の分割テストパターンファイルのシュムプロットからk番目の分割テストパターンファイルの最小クロック周期を抽出する。
【0129】
最小周期抽出部212は,例えば,シュムプロットにおける電源電圧Vの中央値において,”P”により示されるパスと”・”により示されるフェイルの境界におけるクロック周期,すなわち故障判定結果が故障無しの場合における最小クロック周期を抽出する。
【0130】
図9の例では,電源電圧Vの中央値は,3.30Vであり,前記の境界のクロック周期は,5nsである。よって,最小周期抽出部212は,図7の分割テストパターンファイルの最小クロック周期を5nsとして抽出する。図10(A)の例では,電源電圧の中央値は,3.30Vであり,前記の境界のクロック周期は,15nsである。よって,最小周期抽出部212は,図8の分割テストパターンファイルの最小クロック周期を15nsとして抽出する。
【0131】
なお,図10(A)に示すように,”P”と”・”との境界が,一定値(15ns)に位置せずに,例えば,図10(A’)に示すように,前記の境界が,電源電圧Vが大きくなるに従ってクロック周期が短くなる方向に,つまり図面に対して左側にずれることがある。このような場合でも,電源電圧の中央値に対応して,前記の境界のクロック周期を求める。
【0132】
そして,最小周期抽出部212は,分割テストパターンファイルと対応付けて分割テストパターンファイルの最小クロック周期を記憶部23に記憶する。
【0133】
ステップS5:最適周期算出部213は,各分割テストパターンファイルの最適クロック周期を算出する。すなわち,最適周期算出部213は,分割テストパターン毎のシュムプロットに基づき,分割テストパターン毎の最適クロック周期を算出する。
【0134】
具体的には,最適周期算出部213は,所定クロック周期を有するマージン幅情報123をワークステーション10の記憶部12から読み出す。そして,最適周期算出部213は,各分割テストパターンファイルの最小クロック周期にこの所定クロック周期を加算した周期を各分割テストパターンファイルの最適クロック周期として算出する。
【0135】
ここで,所定クロック周期を2nsとすると,最適周期算出部213は,図7の分割テストパターンファイルの最小クロック周期5nsと所定クロック周期2nsの加算値7nsを図7の分割テストパターンファイルの最適クロック周期として算出する。
【0136】
また,最適周期算出部213は,図8の分割テストパターンファイルの最小クロック周期15nsと所定クロック周期2nsの加算値17nsを図8の分割テストパターンファイルの最適クロック周期として算出する。
【0137】
そして,最小周期抽出部212は,算出された最適クロック周期を各分割テストパターンファイルと対応付けて記憶部23に記憶する。図2の例では,分割テストパターンファイル231,232と対応付けて,最適クロック周期231f,232fとして記憶部23に記憶する。
【0138】
ステップS6:新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。新テストパターンファイル生成部214は,例えば,図4に示した新テストパターンファイルを生成する。
【0139】
このような新テストパターンファイルを合成処理の一例について説明する。まず,新テストパターンファイル生成部214は,オリジナルテストパターンファイルのヘッダ部分のクロック周期欄に,k番目の分割テストパターンファイルの最適クロック周期と,この最適クロック周期のクロック周期識別番号を追加する。
【0140】
図4に示した新テストパターンファイルを例示してこの追加について説明する。新テストパターンファイル生成部214は,1番目の分割テストパターンファイルの最適クロック周期(07ns)のクロック周期識別番号を”2”(TCYCLE=2),2番目の分割テストパターンファイルの最適クロック周期(17ns) のクロック周期識別番号を”3”(TCYCLE=3)とする。
【0141】
そして,新テストパターンファイル生成部214は,符号P13 に示すヘッダ部分のクロック周期欄に,”TIMING : CYCLE = 7 ns : TCYCLE = 2 ;”を追加する。さらに,新テストパターンファイル生成部214は,ヘッダ部分のクロック周期欄に,”TIMING : CYCLE = 17 ns : TCYCLE = 3 ; “を追加する。
【0142】
そして,新テストパターンファイル生成部214は,この追加後のファイルにおいて,k番目の分割テストパターンファイルにおける識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータのクロック周期識別番号を,k番目の分割テストパターンファイルの最適クロック周期のクロック周期識別番号に変更する。なお,kは前記したように,1〜mの整数である。
【0143】
図4の例では,mは2,TPDは100である。新テストパターンファイル生成部214は,図4において,1〜50番目のテストパターンデータのクロック周期識別番号を”1”から”2”に変更する。さらに,新テストパターンファイル生成部214は,51〜100番目のテストパターンデータのクロック周期識別番号を”1”から”3”に変更する。
【0144】
そして,新テストパターンファイル生成部214は,生成した新テストパターンファイルを記憶部23に記憶する。ここでは,新テストパターンファイル生成部214は,生成した新テストパターンファイルを新テストパターンファイル241として記憶部23に記憶する。
【0145】
以上説明したように,最適周期算出部213は,テストパターンを複数の区間に分割した分割テストパターン毎に,分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路31に実行させることにより得られた半導体集積回路31の故障判定結果(シュムプロット)に基づき,分割テストパターン毎の最適クロック周期を算出する工程を実行する(ステップS3〜S5)。
【0146】
具体的には,最小周期抽出部212は,半導体集積回路31の電源電圧V,および,クロック信号CLKの周期を検査部22の周波数_電圧変更部222により変化させて,分割テストパターン毎の半導体集積回路31の故障判定結果を得る工程を実行する(ステップS3)。
【0147】
さらに,最適周期算出部213は,最小周期抽出部212により,分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期を得て(ステップS4),この最小周期に所定周期を加算した周期を,分割テストパターン毎の最適クロック周期として算出する工程を実行する(ステップS5)。
【0148】
最後に,新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する工程を実行する(ステップS6)。
【0149】
[新テストパターンファイルによるテスト]
以上説明した処理を経て新テストパターンファイルが作成されると,半導体集積回路検査装置20は,新テストパターンファイルに対する論理演算を故障検査対象となる半導体集積回路31と同型である多数の半導体集積回路311…31xに対して実行させ,半導体集積回路311…31xのテストを行う。
【0150】
図4の例で説明すると,半導体集積回路検査装置20は,同型の半導体集積回路311をDUTボード30にセットする。
【0151】
そして,CPU21は,新テストパターンファイル241を記憶部23から読み出し,検査部22に出力する。検査部22は,新テストパターンファイルのテストパターンに対する論理演算を同型の半導体集積回路311に実行させる。
【0152】
検査部22の周波数_電圧変更部222は,例えば,電源電圧Vとして3.30Vを同型の半導体集積回路311に供給する。そして,検査部22は,テストパターンデータのテスト値DINをテストパターンデータ識別番号の小さい順から順次,シリアル入力する。
【0153】
この入力に先だって,検査部22は,前記したように,入力対象のテストパターンデータのテスト値DINのクロック周期識別番号に対応するクロック周期を特定する。そして,この特定したクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。
【0154】
図4の例では,検査部22は,符号D1に示すテストパターンデータのテスト値DINを入力する場合は,このテストパターンデータのクロック周期識別番号に対応するクロック周期7nsを特定し,7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0155】
そして,符号D1に示すテストパターンデータのテスト値DINの入力が終了すると,検査部22は,符号D2に示すテストパターンデータのテスト値DINを入力する。検査部22は,この入力のタイミングに合わせ,このテストパターンデータのクロック周期識別番号に対応するクロック周期17nsを特定し,17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0156】
検査部22は,一連のテスト値を有する新テストパターンファイルのテストパターンに対する論理演算を前記のクロック信号CLKに基づき同型の半導体集積回路311に実行させ,このテストパターンに対する半導体集積回路311の出力値を取得する。そして,出力期待値判定部221は,このテストパターンに対する半導体集積回路311の出力期待値と前記の出力値とを比較し,同型の半導体集積回路311の故障有無を検査する。
【0157】
半導体集積回路検査装置20は,全ての同型の半導体集積回路312…31xについて,前記した処理により,故障有無を検査する。
【0158】
[他の新テストパターンファイル]
ところで,1つの分割テストパターンが,それぞれ異なる動作速度を有する複数の論理回路用のテストパターンとなることがある。なお,この分割テストパターンは,出力期待値がX値に変更されていないテストパターンデータのテスト値を有する。
【0159】
例えば,図5〜図10で説明した例においては,図8の符号D2に示す分割テストパターンが高速で動作する論理回路31L1用,および,低速で動作する論理回路31L2用のテストパターンであった。なお,図8のテストパターンデータ識別番号51〜70のテスト値が高速で動作する論理回路31L1用のテストパターンであり,テストパターンデータ識別番号71〜100のテスト値が低速で動作する論理回路31L2用のテストパターンであった。
【0160】
特に,半導体集積回路検査装置20が,動作速度がそれぞれ異なる3つ以上の論理回路を有する半導体集積回路のテストをする場合には,この1つの分割テストパターンが,それぞれ異なる動作速度を有する複数の論理回路用のテストパターンである可能性が大きくなる。
【0161】
その結果,この分割テストパターンの最適クロック周期が,異なる動作速度の論理回路の内,低速で動作する論理回路に対応する最適クロック周期になり,十分にテスト時間を短縮することができなくなる。
【0162】
そこで,多数の区間に分割した分割テストパターン毎の最短クロック周期を算出することが好ましい。このようにすると,各分割テストパターンが,1つの論理回路用のテストパターンとなる可能性(確率)が大きくなる。その結果,この分割テストパターンの最適クロック周期が,この論理回路に対応する最適クロック周期になり,十分にテスト時間を短縮することができる。
【0163】
また,1つの分割テストパターンが1つの論理回路用のテストパターンであっても,この分割テストパターンをさらに細かく分割すると,このさらに分割された分割テストパターン毎に最適クロック周期が異なることがある。これは,1つの論理回路におけるフリップフロップ回路間毎に配置された論理素子の密度が異なることに起因する。
【0164】
このような場合であっても,多数の区間に分割した分割テストパターン毎の最短クロック周期を算出すれば,分割テストパターンの最適クロック周期を高精度に算出できる。その結果,十分にテスト時間を短縮することができる。
【0165】
ここで,2つ以上,例えば,10区間に分割した分割テストパターン毎の最適クロック周期を算出する場合について説明する。
【0166】
具体的には,分割テストパターンファイル生成部211は,オリジナルテストパターンファイルを10個コピーする(ステップS1)。なお,このオリジナルテストパターンファイルは,半導体集積回路31以外の半導体集積回路のテスト用に作成されたテストパターンファイルであるとする。
【0167】
そして,分割テストパターンファイル生成部211は,k番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する(ステップS2)。
【0168】
図11は,1番目のコピーテストパターンファイルにおいて,符号D11に示すテストパターン識別番号1〜10番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値がX値に変更された場合を例示する図である。
【0169】
図12は,10番目のコピーテストパターンファイルにおいて,符号D12に示すテストパターン識別番号91〜100番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値がX値に変更された場合を例示する図である。
【0170】
次に,最小周期抽出部212は,検査部22を利用して,1番目〜10番目の分割テストパターンファイルのシュムプロットを取得する(ステップS3)。そして,最小周期抽出部212は,1番目〜10番目の分割テストパターンファイルの最小クロック周期を抽出し(ステップS4),最適周期算出部213は,1番目〜10番目の分割テストパターンファイルの最適クロック周期を算出する(ステップS5)。
【0171】
例えば,1,4,9番目の分割テストパターンファイルの最適クロック周期が12ns,2,8番目の分割テストパターンファイルの最適クロック周期が18ns,3,5,10番目の分割テストパターンファイルの最適クロック周期が20ns,6番目の分割テストパターンファイルの最適クロック周期が14ns,7番目の分割テストパターンファイルの最適クロック周期が16nsだとする。
【0172】
新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する(ステップS6)。
【0173】
具体的には,新テストパターンファイル生成部214は,オリジナルテストパターンファイルのヘッダ部分のクロック周期欄に,k番目の分割テストパターンファイルの最適クロック周期と,この最適クロック周期のクロック周期識別番号を追加する。
【0174】
例えば,新テストパターンファイル生成部214は,最適クロック周期18nsのクロック周期識別番号は”2”(TCYCLE=2),最適クロック周期16nsのクロック周期識別番号は”3”(TCYCLE=3),最適クロック周期14nsのクロック周期識別番号は”4”(TCYCLE=4),最適クロック周期12nsのクロック周期識別番号は”5”(TCYCLE=5)とする。
【0175】
図13は,本実施の形態における新テストパターンファイルの他の例を示す図である。
【0176】
図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 ;
を追加する。
【0177】
そして,新テストパターンファイル生成部214は,この追加後のファイルにおいて,ステップS6で説明した,クロック周期識別番号の変更を実行する。
【0178】
図13の例では,mは10,TPDは100である。従って,新テストパターンファイル生成部214は,1〜10,31〜40,81〜90番目のテストパターンデータのクロック周期識別番号を”1”から”5”に変更し,11〜20,71〜80番目のテストパターンデータのクロック周期識別番号を”1”から”2”に変更する。
【0179】
また,新テストパターンファイル生成部214は,51〜60番目のテストパターンデータのクロック周期識別番号を”1”から”4”に変更し,61〜70番目のテストパターンデータのクロック周期識別番号を”1”から”3”に変更する。なお,新テストパターンファイル生成部214は,21〜30,41〜50,91〜100番目のテストパターンデータのクロック周期識別番については変更しない。
【0180】
このように,多くの区間に分割した分割テストパターン毎に最小クロック周期を算出すれば,分割テストパターン毎の最適クロック周期をより高精度に算出することができる。
【0181】
[他の新テストパターンファイル生成方法]
ところで,分割テストパターン毎の最適クロック周期を算出する処理において,図6のフロー図で説明した例では,各分割テストパターンファイルを生成し,各分割テストパターンファイルの最適周期を算出することにより新テストパターンファイルを生成した。他にも,1つの分割テストパターンファイルを生成し,1つの分割テストパターンファイルが生成された後に,この分割テストパターンファイルの最適周期を算出し,次にもう1つめの分割テストパターンファイルを生成する処理を繰り返すことにより新テストパターンファイルを生成してもよい。
【0182】
図14は,新テストパターンファイルの生成処理を説明する他のフロー図である。なお,以下の説明において,ステップS11〜S15,S18の詳細説明については,図6のステップS1〜S5,S6で説明したので,省略している。
【0183】
ステップS11: 分割テストパターンファイル生成部211は,オリジナルテストパターンファイルを所定個数(m個)コピーする。
【0184】
ステップS12:分割テストパターンファイル生成部211は,k番目の分割テストパターンファイルを生成する。なお,分割テストパターンファイル生成部211が,初めてステップS12を実行する場合,kは1である。すなわち,分割テストパターンファイル生成部211は,k番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する。
【0185】
ステップS13: 最小周期抽出部212は,k番目の分割テストパターンファイルのシュムプロットを取得する。
【0186】
ステップS14: 最小周期抽出部212は,k番目の分割テストパターンファイルの最小クロック周期を抽出する。
【0187】
ステップS15: 最適周期算出部213は,k番目の分割テストパターンファイルの最適クロック周期を算出する。
【0188】
ステップS16: 最適周期算出部213は,m番目の分割テストパターンファイルの最適クロック周期を算出したか判定する。
【0189】
最適周期算出部213が,m番目の分割テストパターンファイルの最適クロック周期を算出していない場合(ステップS16/NO),kの値を1つカウントアップして(ステップS17),ステップS12に戻る。
【0190】
最適周期算出部213が,m番目の分割テストパターンファイルの最適クロック周期を算出した場合(ステップS16/YES),ステップS18に移る。
【0191】
ステップS18:新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。
【0192】
本実施の形態によれば,テストパターンにおいて分割されたテストパターン毎の最適クロック周期を算出することで,テスト時間を短縮することができる。さらに,テスト時間短縮により,テストに必要な電力を削減することができる。
【0193】
以上の実施の形態をまとめると,次の付記のとおりである。
【0194】
(付記1)
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路検査装置において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき,前記分割テストパターン毎の最適クロック周期を算出する算出部と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部を有する
ことを特徴とする半導体集積回路検査装置。
【0195】
(付記2)
付記1において,
テスト値と前記テスト値に対する前記半導体集積回路の出力期待値を有するテストパターンデータが連続して記録されたテストパターンファイルを所定個数コピーし,前記コピーした各コピーテストパターンファイルにおいて,前記各コピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更する分割テストパターンファイル生成部を有し,
前記算出部は,前記不定値に変更されていないテストパターンデータのテスト値を有するテストパターンを前記分割テストパターンとして,前記分割テストパターン毎の最適クロック周期を算出する
ことを特徴とする半導体集積回路検査装置。
【0196】
(付記3)
前記半導体集積回路は,複数の論理回路と,前記半導体集積回路検査装置から入力された前記テストパターンの前記テスト値に対応するテスト値を,前記テストパターンの前記テスト値に応じて,前記複数の論理回路の何れかに入力するBIST回路とを有する
ことを特徴とする半導体集積回路検査装置。
【0197】
(付記4)
付記1〜3の何れかにおいて,
前記算出部は,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得て,さらに,前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する
ことを特徴とする半導体集積回路検査装置。
【0198】
(付記5)
付記4において,
前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる
ことを特徴とする半導体集積回路検査装置。
【0199】
(付記6)
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路の検査方法において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得る工程と,
前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する工程と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する工程とを有する
ことを特徴とする半導体集積回路の検査方法。
【0200】
(付記7)
付記6において,
さらに,前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる工程を有する
ことを特徴とする半導体集積回路の検査方法。
【符号の説明】
【0201】
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…スイッチ。
【技術分野】
【0001】
本発明は,半導体集積回路検査装置,および,半導体集積回路の検査方法に関する。
【背景技術】
【0002】
半導体集積回路の製造工程で物理的な欠陥が生じていないかを検査するため,出荷前の不良品検査(テストとも言う)が行われている。このテスト方法の一例として,複数のテスト値を有するテストパターンを利用する方法がある。このテスト方法は,以下のように行われる。まず,テストパターンを検査対象の半導体集積回路(DUT:Device Under Test)に入力し,テストパターンに対する論理演算を所定のクロック周期を有するクロック信号に基づきこの半導体集積回路に実行させる。
【0003】
そして,テストパターンに対する半導体集積回路の出力期待値と,テストパターンに対する半導体集積回路の出力論理(以下,出力値と記す)とを比較する。さらに,前記の出力値と前記の出力期待値とが一致する場合は,半導体集積回路に故障無し(パスとも言う)と判定し,不一致の場合は,故障有り(フェイルとも言う)と判定する。このようなテスト方法を行う際のテスト時間を短縮する技術が様々提案されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−7589号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
このテスト時間を短縮する方法として,検査対象の半導体集積回路にテストパターンを入力する際に,この半導体集積回路に入力するクロック信号の周期を短くする,すなわちこの半導体集積回路に入力するクロック信号の周波数を高くする方法がある。検査対象の半導体集積回路は,このクロック信号に基づいてテストパターンに対する論理演算を実行する。
【0006】
この方法を実行する場合,いわゆるシュムプロットによるマージン解析が行われる。このシュムプロットとは,例えば,故障検査対象の半導体集積回路の電源電圧,および,この半導体集積回路に入力するクロック信号の周期を変化させて,テストパターンに対する論理演算をこの半導体集積回路に実行させ,この半導体集積回路のテスト結果,すなわちパス,フェイルを記録したものである。
【0007】
図1は,シュムプロットの一例を示す図である。縦軸は電源電圧,横軸はクロック周期を示し,”P”は検査対象の半導体集積回路がパスであることを示し,”・”は半導体集積回路がフェイルであることを示す。
【0008】
半導体集積回路検査装置は,電源電圧を例えば3.00〜3.60Vの範囲で0.1V毎に連続的に変化させ,さらに,クロック信号の周期を例えば0〜30nsの範囲で0.5ns毎に連続的に変化させて,テストパターンに対する論理演算を検査対象の半導体集積回路に実行させる。そして,半導体集積回路検査装置は,前記した検査対象の半導体集積回路のパス,フェイルを判定する。そして,各電源電圧および各クロック周期に対応した判定結果を図1に示したようにプロットし出力する。
【0009】
図1の例では,電源電圧3.30Vにおいて,クロック信号の周期を変化させた場合に,テストパターンに対する論理演算を検査対象の半導体集積回路に実行させると,クロック信号の周期が15ns以上では検査対象の半導体集積回路はパスする。一方,クロック信号の周期が15ns未満では検査対象の半導体集積回路はフェイルする。
【0010】
図1においては,検査対象の半導体集積回路がパスになるクロック信号の最小クロック周期は15nsであることがわかる。また,図1においては,検査対象の半導体集積回路のテストを行う上で規定されているクロック信号の周期は20nsである。この規定クロック周期20nsは,検査対象の半導体集積回路のテストを実行する上で基準となるクロック信号の周期であり,検査対象の半導体集積回路の種類によって異なる。
【0011】
ここで,この最小クロック周期から規定クロック周期の範囲におけるクロック周期を動作可能範囲とする(符号M1参照)。検査対象の半導体集積回路のテストの際に,この動作可能範囲に示すクロック周期を有するクロック信号を入力すれば,正しい検査結果を得ることができる。
【0012】
そこで,検査対象の半導体集積回路のテストの際に,検査対象の半導体集積回路に入力するクロック信号の周期を規定クロック周期(20ns)よりも短く設定する。このとき,クロック信号の最小クロック周期(15ns)ではなく,クロック信号の最小クロック周期(15ns)から一定のマージン幅(余裕),例えば2nsを持たせる。この場合,クロック信号の周期を17nsと設定する。通常,マージン幅は,プロセスばらつきによる周期変動幅より大きい値を設定する。
【0013】
設定後のクロック周期(17ns)を有するクロック信号を入力して,検査対象の半導体集積回路のテストを実行すれば,設定前のクロック周期(20ns)を有するクロック信号を入力して検査対象の半導体集積回路のテストを実行する場合と比べて,テスト時間を15%((20-17)/20)×100)短縮することができる。このようにしてテスト時間を短縮できれば,検査対象となる半導体集積回路の個数が多ければ多いほど,テスト時間の短縮効果が増すことになる。
【0014】
しかし,半導体集積回路の回路規模が増大するのに伴い,テストパターン量(テストパターン長とも言う)が増大しており,さらなるテスト時間の短縮が必要である。
【0015】
したがって,本発明の目的は,テスト時間をより短縮するテストパターンを作成する半導体集積回路検査装置,および,半導体集積回路の検査方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
半導体集積回路検査装置の第1の側面は,テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路検査装置において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき,前記分割テストパターン毎の最適クロック周期を算出する算出部と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する生成部を有する
ことを特徴とする。
【発明の効果】
【0017】
第1の側面によれば,テストパターンを複数の区間に分割した分割テストパターン毎の最適クロック周期を算出することで,テスト時間をより短縮できる。
【図面の簡単な説明】
【0018】
【図1】シュムプロットの一例を示す図である。
【図2】本実施の形態の半導体集積回路検査装置,半導体集積回路検査装置に接続するワークステーション,DUTボードの一例ブロック図である。
【図3】オリジナルテストパターンファイルの一例を説明する図である。
【図4】本実施の形態における新テストパターンファイルの一例を示す図である。
【図5】半導体集積回路の構成を示す一例ブロック図である。
【図6】新テストパターンファイルの生成処理を説明するフロー図である。
【図7】1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図8】2番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図9】1番目の分割テストパターンファイル(図7)についてのシュムプロットを説明する図である。
【図10】2番目の分割テストパターンファイル(図8)についてのシュムプロットを説明する図である。
【図11】1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図12】10番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。
【図13】本実施の形態における新テストパターンファイルの他の例を示す図である。
【図14】新テストパターンファイルの生成処理を説明する他のフロー図である。
【発明を実施するための形態】
【0019】
図2は,本実施の形態の半導体集積回路検査装置,半導体集積回路検査装置に接続するワークステーション,DUTボードの一例ブロック図である。
【0020】
[ワークステーション]
ワークステーション10は,半導体集積回路の設計支援機能を有する装置であり,例えば,論理合成,テスト容易化設計,レイアウト設計,論理シミュレーション,ATPG(Automatic Test Pattern Generator)機能を有する。
【0021】
このテスト容易化設計において,例えば,半導体集積回路31におけるスキャンテストを実行するため,半導体集積回路31のフリップフロップ回路をシリアル接続してスキャンチェーンを形成させるための制御回路が検査対象となる半導体集積回路31などに組み込まれる。他にも,BIST(Built In Self Test)回路が,半導体集積回路31などに組み込まれる。また,このATPGにより,検査対象となる半導体集積回路31のテストパターンを自動的に生成することができる。
【0022】
CPU11は,半導体集積回路の設計支援機能を有するプログラムを実行する処理や,記憶部12を制御する。
【0023】
記憶部12は,前記したATPGにより生成された半導体集積回路31のテストパターン(オリジナルテストパターンファイル121)や,分割数情報122,マージン幅情報123を記憶する。分割数情報122,マージン幅情報123については,後述する。なお,ワークステーション10と半導体集積回路検査装置20とは,接続インターフェイス(図示しない)を介して相互に接続している。
【0024】
[半導体集積回路検査装置]
半導体集積回路検査装置20は,テストパターンに対する半導体集積回路31の出力期待値と,テストパターンに対する半導体集積回路31の出力値OUTとを比較し,半導体集積回路31の故障有無を検査し,故障判定結果を出力する。
【0025】
半導体集積回路検査装置20は,半導体集積回路31の故障検査に係る各種処理を制御するCPU21,半導体集積回路31の故障検査処理を実行する検査部22,後述するプログラムや,各種データを記憶する記憶部23を有する。CPU21は,検査部22,記憶部23を制御する。
【0026】
また,CPU21は,プログラム(ソフトウェア)として動作する,分割テストパターンファイル生成部211,最小周期抽出部212,最適周期算出部213,新テストパターンファイル生成部214を有する。ソフトウェアとして動作する,分割テストパターンファイル生成部211,最小周期抽出部212,最適周期算出部213,新テストパターンファイル生成部214は,プログラムファイルとして,例えば記憶部23に記憶され,必要に応じてCPU21が記憶部23から読み出し実行するものであり,詳細については後述する。
【0027】
検査部22は,テストパターンに対する論理演算を所定の周期を有するクロック信号CLKに基づき検査対象の半導体集積回路31に実行させる。このテストパターンは,後述するように,複数のテスト値DIN(0又は1)を有する。
【0028】
出力期待値判定部221は,テストパターン(テスト値DIN)に対する半導体集積回路31の出力期待値と,このテストパターンに対する半導体集積回路31の出力値OUTとを比較し,一致しているか判定する。
【0029】
周波数_電圧変更部222は,半導体集積回路31にクロック信号CLKを入力する処理,さらに,半導体集積回路31に電源電圧Vを供給する処理を実行すると共に,クロック信号CLKのクロック周期,および,電源電圧Vの電圧値を変更する。
【0030】
半導体集積回路検査装置20とDUTボード30とは,クロック信号用ラインや,電源電圧供給ラインや,データラインを介して接続している。周波数_電圧変更部222は,クロック信号用ラインを介してクロック信号CLKをDUTボード30の半導体集積回路31に入力し,電源電圧供給ラインを介して電源電圧VをDUTボード30の半導体集積回路31に供給する。また,データラインを介してテスト値DINが半導体集積回路31に入力され,出力値OUTが検査部22に入力される。
【0031】
[DUTボード,半導体集積回路]
DUTボード30は,検査対象の半導体集積回路31がセットされ,半導体集積回路31の外部入出力端子(図示しない)と,半導体集積回路検査装置20の外部入出力端子(図示しない)とを接続する接続機能を有する。
【0032】
半導体集積回路311…31xは,半導体集積回路31と同型の半導体集積回路であり,半導体集積回路31と同内容の論理演算を実行する半導体集積回路である。すなわち,半導体集積回路311…31xも故障検査対象の半導体集積回路である。
【0033】
[オリジナルテストパターンファイル]
図3は,オリジナルテストパターンファイルの一例を説明する図である。このオリジナルテストパターンファイルは,半導体集積回路31をテストするためのテストパターンを有し,例えば,ワークステーション10の記憶部12にオリジナルテストパターンファイル121として記憶されているものである。このオリジナルテストパターンファイルは,ワークステーション10のCPU11が実行するATPGにより生成されたものである。
【0034】
符号P1〜P4で示す部分は,テストパターンファイルのヘッダ部であり,符号D1,D2で示す部分は,テストパターンデータ部であり,符号P5で示す部分は,テストパターンファイルのフッタ部である。まず,符号D1,D2で示すテストパターンデータ部について説明する。
【0035】
符号D1,D2で示すテストパターンデータ部における1つのテストパターンデータは,”P, DIN, DOUT, @TCYCLE, ID”に示す5つの要素を有する。
【0036】
P(Positive Pulse)はクロック信号CLKを示し,DINはテストパターンのテスト値を示し,DOUTはテスト値DINに対する半導体集積回路31の出力期待値を示す。なお,出力期待値の”H”は1,”L”は0を示す。出力期待値の”X”は不定値を示す。
【0037】
@TCYCLEは,このテスト値DINに対する論理演算を半導体集積回路31に実行させる際に半導体集積回路31に入力するクロック信号CLKのクロック周期を識別するクロック周期識別番号を示す。このクロック周期識別番号は,符号P2に示す”TIMING : CYCLE = 20 ns : TCYCLE=1 ;”の”TCYCLE=1”に対応するものである。
【0038】
符号P2は,”TCYCLE=1”(クロック周期識別番号1)で指定されたテストパターンデータのテスト値DINを周期20nsのクロック信号CLKに同期して故障検査対象の半導体集積回路31に入力することを示す文字列である。すなわち,検査部22は,”TCYCLE=1”で指定されたテストパターンデータのテスト値DINに対する論理演算を周期20nsのクロック信号CLKに基づき,半導体集積回路31に実行させる。
【0039】
IDはテストパターンデータの識別番号であり,テストパターンファイルにおけるテストパターンデータの配列順番を示す。すなわち,この識別番号は,テストパターンにおけるテスト値DINの配列順番を示す。
【0040】
符号D101に示すテストパターンデータについて説明すると,テスト値が1,出力期待値がL(0),クロック周期識別番号が”1”であることを示す。このクロック周期識別番号から,このテスト値に対する論理演算を半導体集積回路31に実行させる際に半導体集積回路31に入力するクロック信号CLKのクロック周期が,20nsであることがわかる(符号P2参照)。そして,このテストパターンデータの識別番号は”15”であることを示す。
【0041】
このように,テストパターンファイルは,テスト値DINとテスト値DINに対する故障検査対象の半導体集積回路の出力期待値DOUTを有するテストパターンデータが連続して記録されている。また,テストパターンは,このように連続するテストパターンデータのテスト値を有する。
【0042】
図3のテストパターンファイルにおけるテストパターンは,100個のテストパターンデータのテスト値を有する構成である。この100個のテストパターンデータのテスト値が,検査部22により,半導体集積回路31に順次入力される。
【0043】
なお,符号P1で示す文字列は,テストパターンファイルの名称を示し,符号P3で示す文字列は,テストパターンデータ部のタグ情報を示し,符号P4で示す文字列は,テストパターンデータの形式を定義した文字列である。
【0044】
ところで,図1で説明したように,クロック周期を一律に短縮して,図3に示したテストパターンファイルのテストパターンに対する論理演算を20nsではなく17nsのクロック周期を有するクロック信号CLKに基づき半導体集積回路31に実行させて,テストを行わせるとする。この場合には,前述したようにテスト時間を15%短縮できる。
【0045】
ここで,発明者は,テストパターンを複数の区間に分割した分割テストパターン毎(図3の符号D1,D2参照)に,短縮できるクロック周期の長さが異なることを見出した。例えば,符号D1に示すテストパターンについては,クロック周期を前記した17nsよりも短い周期に短縮できる。すなわち,分割テストパターン毎に短縮できるクロック周期の長さを細かく算出することができる。本実施の形態の半導体集積回路検査装置20は,かかる発明者の認識のもと提案された。
【0046】
[新テストパターンファイル]
半導体集積回路検査装置20による新テストパターンファイルの生成について説明する。まず,半導体集積回路検査装置20の最適周期算出部213は,テストパターンを複数の区間に分割した分割テストパターン毎に,分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路31に実行させる。そして,最適周期算出部213は,この実行により得られた半導体集積回路31の故障判定結果に基づき,分割テストパターン毎の最適クロック周期を算出する。この算出は,分割テストパターン毎の半導体集積回路31の故障判定結果(シュムプロット)を得ることにより行われる。
【0047】
次いで,新テストパターンファイル生成部214は,このテストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有するテストパターンファイルを新たに作成する。そして,半導体集積回路検査装置20は,この新テストパターンファイルにおける分割テストパターン毎の最適クロック周期に基づき,分割テストパターンに対する論理演算を同型の半導体集積回路311…31xに実行させる。このように分割テストパターン毎に最適なクロック周期を算出すれば,テスト時間を大幅に短縮することができる。
【0048】
図4は,本実施の形態における新テストパターンファイルの一例を示す図である。この新テストパターンファイルは,前記した生成処理により生成されたファイルであるが,この生成処理については,後述する。
【0049】
図3,図4においては,例えばテストパターンを2つに分割して,符号D1,符号D2に示す分割テストパターンとしている。そして,分割テストパターン毎にこの分割テストパターンに対する論理演算を検査対象となる半導体集積回路に実行させる際の最適クロック周期が算出される。ここでは,符号D1に示す分割テストパターンの最適クロック周期は07ns,符号D2に示す分割テストパターンの最適クロック周期は17nsとして算出されたとする。
【0050】
そして,図4の符号P13に示すように,この最適クロック周期とこのクロック周期を識別するクロック周期識別番号が新たにヘッダ部分に記録される。ここでは,クロック周期07nsの識別番号は2(TCYCLE=2)であり,クロック周期17nsの識別番号は3(TCYCLE=3)である。この新たに記録されたクロック周期が最適クロック周期である。なお,符号P11に示すように,新テストパターンファイルのファイル名が”NEW_TEST(0)”として記録されている。
【0051】
また,図4の符号D1に示すテストパターンデータのクロック周期識別番号が識別番号2に変更され,図4の符号D2に示すテストパターンデータのクロック周期識別番号が識別番号3に変更されている。
【0052】
検査部22は,この符号D1に示すテストパターンデータのテスト値(分割テストパターン)をテストパターンデータ識別番号の小さい順に同型の半導体集積回路311に入力する。このとき,検査部22は,クロック周期識別番号2に対応する7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0053】
次いで,検査部22は,この符号D2に示すテストパターンデータのテスト値(分割テストパターン)をテストパターンデータ識別番号の小さい順に同型の半導体集積回路311に入力する。このとき,検査部22は,クロック周期識別番号3に対応する17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0054】
そして,前記したように,検査部22の出力期待値判定部221により,同型の半導体集積回路311のパス,フェイルが判定される。
【0055】
例えば,図3に示したテストパターンファイルのテストパターンに対する論理演算を20nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させて,テストを行った場合に必要な期間がT[msec]とする。
【0056】
図1で説明したように,クロック周期を一律に短縮して17nsとすれば,前記した様に,テスト時間を15%短縮できるので,テスト時間は0.85T[msec]である。
【0057】
一方,図4で説明した新テストパターンにおいて,符号D1に対応するテストパターンに対する論理演算を7nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させる。さらに,符号D2に対応するテストパターンに対する論理演算を17nsのクロック周期を有するクロック信号CLKに基づき同型の半導体集積回路311に実行させる。このようにすると,同型の半導体集積回路311のテスト時間は,(T/2)(7/20) + (T/2)(17/20) = 0.60T[msec]であり,テスト時間を40%短縮できる。すなわち,クロック周期を一律に短縮する場合と比べて,テスト時間の短縮効果が大きい。
【0058】
特に,検査対象となる同型の半導体集積回路(311…31x)の個数が多ければ多いほどこのテスト時間の短縮効果が大きくなる。また,テスト時間の短縮により,テストに必要な電力も削減することができる。
【0059】
[半導体集積回路のテスト]
本実施の形態におけるテスト時間を短縮できるテストパターンの生成の詳細について説明する前に,半導体集積回路31のテストの詳細について説明する。
【0060】
図5は,半導体集積回路31の構成を示す一例ブロック図である。半導体集積回路31は,テスト制御を行う回路である例えばBIST回路31Bと,論理和(OR)素子,論理積(AND)素子などの論理素子とフリップフロップ回路などを有し,所定の論理演算を実行する論理回路31L1〜31Ln(nは整数)と,スイッチSw2〜Swnとを有する。なお,前記したように,同型の半導体集積回路311…31xも,半導体集積回路31と同様の回路構成を有する。
【0061】
BIST回路31B,スイッチSw2〜Swnは,前記したテスト容易化設計において半導体集積回路31に組み込まれた回路である。
【0062】
通常動作時において,BIST回路31Bは非活性化状態であり,スイッチSw2〜Swnはオン状態である。また,通常動作時において,論理回路31L1は,外部回路(図示しない)から入力された入力値NDINを,後段の論理回路31L2〜31Lnの何れかに入力するセレクタとして機能する。論理回路31L2〜31Lnは,論理回路31L1からの入力値NDINに対して所定の論理演算を実行し,出力値OUTとして出力する。
【0063】
一方,テスト時において,半導体集積回路検査装置20の検査部22は,クロック信号CLKを半導体集積回路31のBIST回路31Bに入力する。このクロック信号CLKの入力によりBIST回路31Bは活性化状態になる。なお,このクロック信号CLKは,論理回路31L1〜31Lnにも入力される。さらに,検査部22は,テストパターンのテスト値DINをBIST回路31Bに入力する。
【0064】
BIST回路31Bは,入力されたテストパターンのテスト値DINを解析し,入力されたテスト値DINが論理回路31L1〜31Lnの中のどの論理回路用のテスト値か特定する。すなわち,BIST回路31Bは,このテスト値を入力する論理回路を特定する。
【0065】
そして,BIST回路31Bは,特定した論理回路をテストするためのBISTテスト値をこのテスト値から新たに生成し,この論理回路に入力する。このように,BIST回路31Bは,半導体集積回路検査装置20から入力されたテストパターンのテスト値に対応するテスト値を,テストパターンのテスト値に応じて,複数の論理回路31L1〜31Lnの何れかに入力する。
【0066】
また,BIST回路31Bは,この特定した論理回路の後段に設けられたスイッチSWのみをオン状態にして,それ以外のスイッチSWをオフ状態にする制御信号Cs2〜CSnをスイッチSw2〜Swnに出力する。
【0067】
なお,BIST回路31Bは,論理回路31L1を特定した場合には,制御信号CS1を論理回路31L1に出力し,論理回路31L1の出力を後段の論理回路31L2〜31Lnをバイパスして,半導体集積回路検査装置20の検査部21に入力するように指示する。同時に,BIST回路31Bは,全てのスイッチSw2〜Swnをオフ状態にする制御信号Cs2〜CSnをスイッチSw2〜Swnに出力する。
【0068】
テスト時においては,論理回路31L1〜31Lnは,BIST回路31Bからそれぞれに入力されるBISTテスト値BT1〜BTnに対して所定の論理演算を実行し,出力値OUTとして出力する。
【0069】
半導体集積回路31のテストについて具体的に説明する。以下の説明においては,例えば,図5において,半導体集積回路31は,論理回路として2つの論理回路31L1,31L2を有し,さらに,スイッチSw2を有しているとする。
【0070】
この場合,論理回路31L1はセレクタとして機能せずに,通常動作時において,入力値NDINに対して所定の論理演算を実行し,出力を後段の論理回路31L2に入力する。一方,テスト時において,論理回路31L1は,BIST回路31Bの制御信号CS1により,出力を後段の論理回路31L2をバイパスして,半導体集積回路検査装置20の検査部21に入力する。
【0071】
半導体集積回路検査装置20のCPU21は,半導体集積回路31をテストするためのオリジナルテストパターンファイルをワークステーション10の記憶部12から読み出す。このオリジナルテストパターンファイルは,記憶部12のオリジナルテストパターンファイル121である。そして,半導体集積回路検査装置20のCPU21は,このオリジナルテストパターンファイルを装置内の記憶部23に記憶し,さらに,検査部22に出力する。
【0072】
検査部22は,オリジナルテストパターンファイルのテストパターンに対する論理演算を半導体集積回路31に実行させる。このとき,検査部22は,検査対象の半導体集積回路31をテストモードに移行させる。例えば,検査部22は,クロックCLKをBIST回路31Bに入力してBIST回路31Bを活性化状態に移行させ,さらに,半導体集積回路31のフリップフロップ回路をシリアル接続してスキャンチェーンを形成させる。
【0073】
図3のオリジナルテストパターンファイルについて説明すると,検査部22の周波数_電圧変更部222は,例えば,電源電圧Vとして3.30Vを半導体集積回路31に供給する。そして,検査部22は,テストパターンデータのテスト値DINをテストパターンデータ識別番号の小さい順から順次,シリアル入力する。なお,このテスト値DINは,前記したように,半導体集積回路31のBIST回路31Bに入力される。
【0074】
この入力に先だって,検査部22は,入力対象のテスト値DINを有するテストパターンデータのクロック周期識別番号に対応するクロック周期を特定する。そして,この特定したクロック周期を有するクロック信号CLKを半導体集積回路31に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,前記の指示に基づく,クロック周期を有するクロック信号CLKを半導体集積回路31に入力する。なお,このクロック信号CLKは,前記したように,半導体集積回路31のBIST回路31Bに入力される。
【0075】
図3の例では,検査部22は,クロック周期20nsを特定し,20nsのクロック周期を有するクロック信号CLKを半導体集積回路31に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,20nsのクロック周期を有するクロック信号CLKを半導体集積回路31に入力する。
【0076】
BIST回路31Bは,シリアル的に入力されたテストパターンのテスト値DINを解析する。ここで,図3の符号D1,D2に示すテスト値を有するテストパターンがBIST回路31Bに入力される。
【0077】
BIST回路31Bは,例えば,図3におけるテストパターンデータ識別番号1〜70のテスト値(符号D1の全部のテスト値と符号D2のテスト値の一部)が論理回路31L1用のテスト値と特定する。
【0078】
すると,BIST回路31Bは,論理回路31L1をテストするためのBISTテスト値BT1をこのテスト値から新たに生成し,論理回路31L1の論理素子にパラレル的に入力する。論理回路31L1は,入力されたBISTテスト値BT1に対して論理演算を実行し,出力値OUTを論理回路31L1の後段の論理回路31L2をバイパスして,半導体集積回路検査装置20の検査部21に入力する。
【0079】
次いで,BIST回路31Bは,例えば,図3におけるテストパターンデータ識別番号71〜100のテスト値(符号D2のテスト値の一部)が論理回路31L2用のテスト値と特定する。
【0080】
すると,BIST回路31Bは,論理回路31L2をテストするためのBISTテスト値BT2をこのテスト値から新たに生成し,論理回路31L2の論理素子にパラレル的に入力する。論理回路31L2は,入力されたBISTテスト値BT2に対して論理演算を実行し,出力値OUTを,半導体集積回路検査装置20の検査部21に入力する。
【0081】
なお,このとき,BIST回路31Bは,論理回路31L2の後段に設けられたスイッチSw2をオン状態にする。
【0082】
すなわち,検査部22は,一連のテスト値DINを有するテストパターンに対する論理演算を前記のクロック信号CLKに基づき半導体集積回路31に実行させ,テストパターンのテスト値DINに対する半導体集積回路31の出力値OUTを取得する。
【0083】
そして,出力期待値判定部221は,テスト値DINに対する半導体集積回路31の出力期待値DOUTを予め保持し,この出力期待値DOUTと前記の出力値OUTとを比較し,一致しているか判定する。検査部22は,この判定により,半導体集積回路31の故障有無を検査し,故障判定結果を出力する。出力期待値DOUTと出力値OUTが一致している場合は,半導体集積回路31はパスであり,不一致の場合は,フェイルである。
【0084】
以上,説明した様に,半導体集積回路検査装置20は,半導体集積回路31のテストを実行する。
【0085】
[シュムプロット]
半導体集積回路検査装置20の検査部22は,半導体集積回路31の故障判定結果に基づき,シュムプロットを生成する処理も実行する。
【0086】
このシュムプロットは,図4で説明した最適クロック周期を算出する際に必要な情報である。CPU21は,シュムプロットを出力するように,検査部22に指示する。検査部22は,この指示に応答して,以下の処理を実行し,シュムプロットを出力する。
【0087】
すなわち,検査部22は,1つのテストパターンファイルにおけるテストパターンに対する論理演算を半導体集積回路31に実行させる度に,周波数_電圧変換部222により電源電圧を例えば3.00〜3.60Vの範囲で0.1V毎に連続的に変化させ,さらに,クロック信号CLKのクロック周期を例えば0〜30nsの範囲で0.5ns毎に連続的に変化させる。そして,検査部22の出力期待値判定部221は,前記した半導体集積回路31の故障判定結果を出力する。
【0088】
例えば,検査部22は,電源電圧3.00,20nsのクロック周期を有するクロック信号に基づき,1つのテストパターンファイルのテストパターンに対する論理演算を半導体集積回路31に実行させ,出力期待値判定部221により前記の故障判定結果(パス,フェイル)を得る。そして,検査部22は,電源電圧3.00のままで,20.5nsのクロック周期を有するクロック信号に基づき,同じテストパターンに対する論理演算を半導体集積回路31に実行させ,出力期待値判定部221により前記の故障判定結果を得る。なお,検査部22は,1つのテストパターンを実行させている途中で,前記した半導体集積回路31の故障判定結果を得るようにしてもよい。
【0089】
このようにして,検査部22の出力期待値判定部221は,各電源電圧および各クロック周期において,前記した半導体集積回路31のパス,フェイルを判定する。そして,検査部22は,各電源電圧および各クロック周期に対応した故障判定結果を図1に示したようにプロットし出力する。
【0090】
本実施の形態においては,半導体集積回路検査装置20は,シュムプロットを利用して分割テストパターン毎の最適クロック周期を算出し,テストパターンと,テストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。
【0091】
[新テストパターンファイルの生成処理]
次に,本実施の形態における新テストパターンファイルの生成処理について詳細に説明する。
【0092】
図6は,新テストパターンファイルの生成処理を説明するフロー図である。
【0093】
ステップS1:分割テストパターンファイル生成部211は,オリジナルテストパターンファイルを所定個数(m個)コピーする。このコピーテストパターンファイルは,オリジナルテストパターンファイルと同内容である。
【0094】
具体的には,分割テストパターンファイル生成部211は,ワークステーション10の記憶部12から,オリジナルテストパターンファイル121,所定個数情報を有する分割数情報122を読み出す。そして,読み出したオリジナルテストパターンファイル121から,所定個数(m個)のコピーテストパターンファイルを生成し,記憶部23に記憶する。この所定個数は,分割数情報122として記憶部12に記憶されているものである。mは2以上の整数である。
【0095】
以下の説明では,分割テストパターンファイル生成部211により,コピーテストパターンファイルが生成された順にこれらのコピーテストパターンファイルを1番目,2番目…k番目のコピーテストパターンファイルと呼ぶ。ここで,kは1〜mまでの整数である。
【0096】
ステップS2:分割テストパターンファイル生成部211は,コピーした各コピーテストパターンファイルにおいて,この各コピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値(X値)に変更する。
【0097】
この変更後のコピーテストパターンファイルを分割テストパターンファイルと呼ぶ。また,k番目のコピーテストパターンファイルの分割テストパターンファイルをk番目の分割テストパターンファイルと呼ぶ。
【0098】
この変更について,詳細に説明する。コピーテストパターンファイルは,TPD個のテストパターンデータを有しているとする。図3の例では,TPDは100である。
【0099】
そして,m個のコピーテストパターンファイルにおいて,k番目のコピーテストパターンファイルに対応するコピーテストパターンデータ,すなわちk番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する。
【0100】
前記したmが2,TDPが100の場合における分割テストパターンファイルについて,図7,図8を用いて説明する。
【0101】
図7は,1番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。図7においては,符号D1に示すテストパターンデータが,1番目のコピーテストパターンファイルに対応するテストパターンデータ(識別番号1〜50)であり,符号D2に示すテストパターンデータが,それ以外のテストパターンデータ(識別番号51〜100)である。
【0102】
分割テストパターンファイル生成部211は,図7の符号D2に示すテストパターンデータの出力期待値をX値に変更する。
【0103】
出力期待値が不定値Xに変更された場合,不定値Xに対応するテスト値が半導体集積回路31に入力され,半導体集積回路31がこのテスト値に対して論理演算を実行して出力しても,出力期待値判定部221は,この出力値と不定値Xとを比較して,一致するか否かの判定は実行しない(Don’t care)。
【0104】
図8は,2番目のコピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更した分割テストパターンファイルの一例を示す図である。図8においては,符号D2に示すテストパターンデータが,2番目のコピーテストパターンファイルに対応するテストパターンデータ(識別番号51〜100)であり,符号D1に示すテストパターンデータが,それ以外のテストパターンデータ(識別番号1〜50)である。
【0105】
分割テストパターンファイル生成部211は,図8の符号D1に示すテストパターンデータの出力期待値をX値に変更する。
【0106】
このようにX値に変更されていないテストパターンデータのテスト値を有するテストパターンが,オリジナルテストパターンファイルにおけるテストパターンを複数の区間に分割した分割テストパターンである。
【0107】
なお,分割テストパターンファイル生成部211は,k番目の分割テストパターンファイルの名をTEST(k)に変更する。図7の例では,図7の分割テストパターンファイルは1番目の分割テストパターンファイルなので,分割テストパターンファイル生成部211は,TEST(1)と変更する。図8の例では,図8の分割テストパターンファイルは,2番目の分割テストパターンファイルなので,分割テストパターンファイル生成部211は,TEST(2)と変更する。
【0108】
そして,分割テストパターンファイル生成部211は,k番目の分割テストパターンファイルを分割テストパターンファイル23kとして記憶部23に記憶する。図2の例では,分割テストパターンファイル生成部211は,分割テストパターンファイル231,232として記憶部23に記憶する。
【0109】
このように,分割テストパターンファイルを作成することで,分割テストパターン毎(図4の符号D1,符号D2に示すテストパターン)に,ステップS3で説明するシュムプロットを得ることができる。
【0110】
ステップS3:最小周期抽出部212は,各分割テストパターンファイルのシュムプロットを取得する。
【0111】
具体的には,最小周期抽出部212は,分割テストパターンファイル生成部211が生成した各分割テストパターンファイルを検査部22に出力し,各分割テストパターンファイルについてのシュムプロットを出力するように検査部22に指示する。検査部22は,この指示に応答して,各分割テストパターンファイルのシュムプロットを出力する。なお,シュムプロットの出力については,前記したので省略する。
【0112】
このとき,前記したように,不定値Xに対応するテスト値が半導体集積回路31に入力され,半導体集積回路31がこのテスト値に対して論理演算を実行して出力値を出力しても,出力期待値判定部221は,この出力値と不定値Xとを比較して,一致するか否かの判定は実行しない。
【0113】
そのため,半導体集積回路31の電源電圧,および,クロック信号CLKの周期を変化させることによる,分割テストパターン毎の半導体集積回路の故障判定結果(シュムプロット)を得ることができる。
【0114】
図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用のテスト値と特定した。
【0115】
このとき,例えば、論理回路31L1は,周期が短いクロック信号に基づき動作,すなわち高速で動作し,論理回路31L2は,周期が長いクロック信号に基づき動作,すなわち低速で動作するとする。
【0116】
図7に示す分割テストパターンに対応する論理演算を半導体集積回路31に実行させてシュムプロットを取得するとする。図7において,符号D1に示すテストパターンの出力期待値は変更されず,符号D2に示すテストパターンの出力期待値がX値に変更されている。
【0117】
従って,前記したように,出力期待値判定部221は,テストパターンデータ識別番号1〜50のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。
【0118】
しかし,出力期待値判定部221は,テストパターンデータ識別番号51〜70のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。また,出力期待値判定部221は,テストパターンデータ識別番号71〜100のテスト値を有するテストパターンに対して論理回路31L2が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。
【0119】
すなわち,検査部22は,高速で動作する論理回路31L1のテストを実行する。そして,検査部22は,この比較結果に基づき,シュムプロットを出力する。
【0120】
図9は,1番目の分割テストパターンファイル(図7)についてのシュムプロットを説明する図である。このように,図9に示したシュムプロットの最小クロック周期は5nsであり,図1に示したシュムプロットの最小クロック周期(15ns)と比べて小さい。これは,高速で動作する論理回路31L1に対してテストを実行し,シュムプロットを得ているからである。
【0121】
これに対して,図8に示す分割テストパターンに対応する論理演算を半導体集積回路31に実行させてシュムプロットを取得するとする。図8において,符号D2に示すテストパターンの出力期待値は変更されず,符号D1に示すテストパターンの出力期待値がX値に変更されている。
【0122】
従って,前記したように,出力期待値判定部221は,テストパターンデータ識別番号1〜50のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行しない。
【0123】
一方,出力期待値判定部221は,テストパターンデータ識別番号51〜70のテスト値を有するテストパターンに対して論理回路31L1が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。また,出力期待値判定部221は,テストパターンデータ識別番号71〜100のテスト値を有するテストパターンに対して論理回路31L2が論理演算して出力した出力値OUTとこのテストパターンの出力期待値DOUTとの比較を実行する。
【0124】
そして,検査部22は,この比較結果に基づき,シュムプロットを出力する。すなわち,検査部22は,高速で動作する論理回路31L1と低速で動作する論理回路31L2のテストを実行する。そして,検査部22は,この比較結果に基づき,シュムプロットを出力する。
【0125】
図10は,2番目の分割テストパターンファイル(図8)についてのシュムプロットを説明する図である。図10(A)は,このシュムプロットの第1の図,図10(A’)は,このシュムプロットの第2の図である。
【0126】
図10(A)に示したシュムプロットの最小クロック周期は15nsであり,図9に示したシュムプロットの最小クロック周期(05ns)と比べて大きい。これは,高速で動作する論理回路31L1と,低速で動作する論理回路31L2に対してテストを実行し,図8のテストパターンファイルのシュムプロットを得ているからである。この場合,論理回路31L2の動作速度がボトルネック(律速)となり,このシュムプロットの最小クロック周期が小さくならない。なお,図10(A’)については,後述する。
【0127】
このようにして,シュムプロットを取得した後,半導体集積回路検査装置20のCPU21は,取得したシュムプロットを各分割テストパターンファイルと対応付けて記憶部23に記憶する。図2の例では,分割テストパターンファイル231,232と対応付けて,シュム231s,232sとして記憶部23に記憶する。
【0128】
ステップS4:最小周期抽出部212は,各分割テストパターンファイルの最小クロック周期を抽出する。すなわち,最小周期抽出部212は,k番目の分割テストパターンファイルのシュムプロットからk番目の分割テストパターンファイルの最小クロック周期を抽出する。
【0129】
最小周期抽出部212は,例えば,シュムプロットにおける電源電圧Vの中央値において,”P”により示されるパスと”・”により示されるフェイルの境界におけるクロック周期,すなわち故障判定結果が故障無しの場合における最小クロック周期を抽出する。
【0130】
図9の例では,電源電圧Vの中央値は,3.30Vであり,前記の境界のクロック周期は,5nsである。よって,最小周期抽出部212は,図7の分割テストパターンファイルの最小クロック周期を5nsとして抽出する。図10(A)の例では,電源電圧の中央値は,3.30Vであり,前記の境界のクロック周期は,15nsである。よって,最小周期抽出部212は,図8の分割テストパターンファイルの最小クロック周期を15nsとして抽出する。
【0131】
なお,図10(A)に示すように,”P”と”・”との境界が,一定値(15ns)に位置せずに,例えば,図10(A’)に示すように,前記の境界が,電源電圧Vが大きくなるに従ってクロック周期が短くなる方向に,つまり図面に対して左側にずれることがある。このような場合でも,電源電圧の中央値に対応して,前記の境界のクロック周期を求める。
【0132】
そして,最小周期抽出部212は,分割テストパターンファイルと対応付けて分割テストパターンファイルの最小クロック周期を記憶部23に記憶する。
【0133】
ステップS5:最適周期算出部213は,各分割テストパターンファイルの最適クロック周期を算出する。すなわち,最適周期算出部213は,分割テストパターン毎のシュムプロットに基づき,分割テストパターン毎の最適クロック周期を算出する。
【0134】
具体的には,最適周期算出部213は,所定クロック周期を有するマージン幅情報123をワークステーション10の記憶部12から読み出す。そして,最適周期算出部213は,各分割テストパターンファイルの最小クロック周期にこの所定クロック周期を加算した周期を各分割テストパターンファイルの最適クロック周期として算出する。
【0135】
ここで,所定クロック周期を2nsとすると,最適周期算出部213は,図7の分割テストパターンファイルの最小クロック周期5nsと所定クロック周期2nsの加算値7nsを図7の分割テストパターンファイルの最適クロック周期として算出する。
【0136】
また,最適周期算出部213は,図8の分割テストパターンファイルの最小クロック周期15nsと所定クロック周期2nsの加算値17nsを図8の分割テストパターンファイルの最適クロック周期として算出する。
【0137】
そして,最小周期抽出部212は,算出された最適クロック周期を各分割テストパターンファイルと対応付けて記憶部23に記憶する。図2の例では,分割テストパターンファイル231,232と対応付けて,最適クロック周期231f,232fとして記憶部23に記憶する。
【0138】
ステップS6:新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。新テストパターンファイル生成部214は,例えば,図4に示した新テストパターンファイルを生成する。
【0139】
このような新テストパターンファイルを合成処理の一例について説明する。まず,新テストパターンファイル生成部214は,オリジナルテストパターンファイルのヘッダ部分のクロック周期欄に,k番目の分割テストパターンファイルの最適クロック周期と,この最適クロック周期のクロック周期識別番号を追加する。
【0140】
図4に示した新テストパターンファイルを例示してこの追加について説明する。新テストパターンファイル生成部214は,1番目の分割テストパターンファイルの最適クロック周期(07ns)のクロック周期識別番号を”2”(TCYCLE=2),2番目の分割テストパターンファイルの最適クロック周期(17ns) のクロック周期識別番号を”3”(TCYCLE=3)とする。
【0141】
そして,新テストパターンファイル生成部214は,符号P13 に示すヘッダ部分のクロック周期欄に,”TIMING : CYCLE = 7 ns : TCYCLE = 2 ;”を追加する。さらに,新テストパターンファイル生成部214は,ヘッダ部分のクロック周期欄に,”TIMING : CYCLE = 17 ns : TCYCLE = 3 ; “を追加する。
【0142】
そして,新テストパターンファイル生成部214は,この追加後のファイルにおいて,k番目の分割テストパターンファイルにおける識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータのクロック周期識別番号を,k番目の分割テストパターンファイルの最適クロック周期のクロック周期識別番号に変更する。なお,kは前記したように,1〜mの整数である。
【0143】
図4の例では,mは2,TPDは100である。新テストパターンファイル生成部214は,図4において,1〜50番目のテストパターンデータのクロック周期識別番号を”1”から”2”に変更する。さらに,新テストパターンファイル生成部214は,51〜100番目のテストパターンデータのクロック周期識別番号を”1”から”3”に変更する。
【0144】
そして,新テストパターンファイル生成部214は,生成した新テストパターンファイルを記憶部23に記憶する。ここでは,新テストパターンファイル生成部214は,生成した新テストパターンファイルを新テストパターンファイル241として記憶部23に記憶する。
【0145】
以上説明したように,最適周期算出部213は,テストパターンを複数の区間に分割した分割テストパターン毎に,分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき半導体集積回路31に実行させることにより得られた半導体集積回路31の故障判定結果(シュムプロット)に基づき,分割テストパターン毎の最適クロック周期を算出する工程を実行する(ステップS3〜S5)。
【0146】
具体的には,最小周期抽出部212は,半導体集積回路31の電源電圧V,および,クロック信号CLKの周期を検査部22の周波数_電圧変更部222により変化させて,分割テストパターン毎の半導体集積回路31の故障判定結果を得る工程を実行する(ステップS3)。
【0147】
さらに,最適周期算出部213は,最小周期抽出部212により,分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期を得て(ステップS4),この最小周期に所定周期を加算した周期を,分割テストパターン毎の最適クロック周期として算出する工程を実行する(ステップS5)。
【0148】
最後に,新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する工程を実行する(ステップS6)。
【0149】
[新テストパターンファイルによるテスト]
以上説明した処理を経て新テストパターンファイルが作成されると,半導体集積回路検査装置20は,新テストパターンファイルに対する論理演算を故障検査対象となる半導体集積回路31と同型である多数の半導体集積回路311…31xに対して実行させ,半導体集積回路311…31xのテストを行う。
【0150】
図4の例で説明すると,半導体集積回路検査装置20は,同型の半導体集積回路311をDUTボード30にセットする。
【0151】
そして,CPU21は,新テストパターンファイル241を記憶部23から読み出し,検査部22に出力する。検査部22は,新テストパターンファイルのテストパターンに対する論理演算を同型の半導体集積回路311に実行させる。
【0152】
検査部22の周波数_電圧変更部222は,例えば,電源電圧Vとして3.30Vを同型の半導体集積回路311に供給する。そして,検査部22は,テストパターンデータのテスト値DINをテストパターンデータ識別番号の小さい順から順次,シリアル入力する。
【0153】
この入力に先だって,検査部22は,前記したように,入力対象のテストパターンデータのテスト値DINのクロック周期識別番号に対応するクロック周期を特定する。そして,この特定したクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。
【0154】
図4の例では,検査部22は,符号D1に示すテストパターンデータのテスト値DINを入力する場合は,このテストパターンデータのクロック周期識別番号に対応するクロック周期7nsを特定し,7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,7nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0155】
そして,符号D1に示すテストパターンデータのテスト値DINの入力が終了すると,検査部22は,符号D2に示すテストパターンデータのテスト値DINを入力する。検査部22は,この入力のタイミングに合わせ,このテストパターンデータのクロック周期識別番号に対応するクロック周期17nsを特定し,17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力するように周波数_電圧変更部222に指示する。周波数_電圧変更部222は,この指示に応答して,17nsのクロック周期を有するクロック信号CLKを同型の半導体集積回路311に入力する。
【0156】
検査部22は,一連のテスト値を有する新テストパターンファイルのテストパターンに対する論理演算を前記のクロック信号CLKに基づき同型の半導体集積回路311に実行させ,このテストパターンに対する半導体集積回路311の出力値を取得する。そして,出力期待値判定部221は,このテストパターンに対する半導体集積回路311の出力期待値と前記の出力値とを比較し,同型の半導体集積回路311の故障有無を検査する。
【0157】
半導体集積回路検査装置20は,全ての同型の半導体集積回路312…31xについて,前記した処理により,故障有無を検査する。
【0158】
[他の新テストパターンファイル]
ところで,1つの分割テストパターンが,それぞれ異なる動作速度を有する複数の論理回路用のテストパターンとなることがある。なお,この分割テストパターンは,出力期待値がX値に変更されていないテストパターンデータのテスト値を有する。
【0159】
例えば,図5〜図10で説明した例においては,図8の符号D2に示す分割テストパターンが高速で動作する論理回路31L1用,および,低速で動作する論理回路31L2用のテストパターンであった。なお,図8のテストパターンデータ識別番号51〜70のテスト値が高速で動作する論理回路31L1用のテストパターンであり,テストパターンデータ識別番号71〜100のテスト値が低速で動作する論理回路31L2用のテストパターンであった。
【0160】
特に,半導体集積回路検査装置20が,動作速度がそれぞれ異なる3つ以上の論理回路を有する半導体集積回路のテストをする場合には,この1つの分割テストパターンが,それぞれ異なる動作速度を有する複数の論理回路用のテストパターンである可能性が大きくなる。
【0161】
その結果,この分割テストパターンの最適クロック周期が,異なる動作速度の論理回路の内,低速で動作する論理回路に対応する最適クロック周期になり,十分にテスト時間を短縮することができなくなる。
【0162】
そこで,多数の区間に分割した分割テストパターン毎の最短クロック周期を算出することが好ましい。このようにすると,各分割テストパターンが,1つの論理回路用のテストパターンとなる可能性(確率)が大きくなる。その結果,この分割テストパターンの最適クロック周期が,この論理回路に対応する最適クロック周期になり,十分にテスト時間を短縮することができる。
【0163】
また,1つの分割テストパターンが1つの論理回路用のテストパターンであっても,この分割テストパターンをさらに細かく分割すると,このさらに分割された分割テストパターン毎に最適クロック周期が異なることがある。これは,1つの論理回路におけるフリップフロップ回路間毎に配置された論理素子の密度が異なることに起因する。
【0164】
このような場合であっても,多数の区間に分割した分割テストパターン毎の最短クロック周期を算出すれば,分割テストパターンの最適クロック周期を高精度に算出できる。その結果,十分にテスト時間を短縮することができる。
【0165】
ここで,2つ以上,例えば,10区間に分割した分割テストパターン毎の最適クロック周期を算出する場合について説明する。
【0166】
具体的には,分割テストパターンファイル生成部211は,オリジナルテストパターンファイルを10個コピーする(ステップS1)。なお,このオリジナルテストパターンファイルは,半導体集積回路31以外の半導体集積回路のテスト用に作成されたテストパターンファイルであるとする。
【0167】
そして,分割テストパターンファイル生成部211は,k番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する(ステップS2)。
【0168】
図11は,1番目のコピーテストパターンファイルにおいて,符号D11に示すテストパターン識別番号1〜10番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値がX値に変更された場合を例示する図である。
【0169】
図12は,10番目のコピーテストパターンファイルにおいて,符号D12に示すテストパターン識別番号91〜100番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値がX値に変更された場合を例示する図である。
【0170】
次に,最小周期抽出部212は,検査部22を利用して,1番目〜10番目の分割テストパターンファイルのシュムプロットを取得する(ステップS3)。そして,最小周期抽出部212は,1番目〜10番目の分割テストパターンファイルの最小クロック周期を抽出し(ステップS4),最適周期算出部213は,1番目〜10番目の分割テストパターンファイルの最適クロック周期を算出する(ステップS5)。
【0171】
例えば,1,4,9番目の分割テストパターンファイルの最適クロック周期が12ns,2,8番目の分割テストパターンファイルの最適クロック周期が18ns,3,5,10番目の分割テストパターンファイルの最適クロック周期が20ns,6番目の分割テストパターンファイルの最適クロック周期が14ns,7番目の分割テストパターンファイルの最適クロック周期が16nsだとする。
【0172】
新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する(ステップS6)。
【0173】
具体的には,新テストパターンファイル生成部214は,オリジナルテストパターンファイルのヘッダ部分のクロック周期欄に,k番目の分割テストパターンファイルの最適クロック周期と,この最適クロック周期のクロック周期識別番号を追加する。
【0174】
例えば,新テストパターンファイル生成部214は,最適クロック周期18nsのクロック周期識別番号は”2”(TCYCLE=2),最適クロック周期16nsのクロック周期識別番号は”3”(TCYCLE=3),最適クロック周期14nsのクロック周期識別番号は”4”(TCYCLE=4),最適クロック周期12nsのクロック周期識別番号は”5”(TCYCLE=5)とする。
【0175】
図13は,本実施の形態における新テストパターンファイルの他の例を示す図である。
【0176】
図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 ;
を追加する。
【0177】
そして,新テストパターンファイル生成部214は,この追加後のファイルにおいて,ステップS6で説明した,クロック周期識別番号の変更を実行する。
【0178】
図13の例では,mは10,TPDは100である。従って,新テストパターンファイル生成部214は,1〜10,31〜40,81〜90番目のテストパターンデータのクロック周期識別番号を”1”から”5”に変更し,11〜20,71〜80番目のテストパターンデータのクロック周期識別番号を”1”から”2”に変更する。
【0179】
また,新テストパターンファイル生成部214は,51〜60番目のテストパターンデータのクロック周期識別番号を”1”から”4”に変更し,61〜70番目のテストパターンデータのクロック周期識別番号を”1”から”3”に変更する。なお,新テストパターンファイル生成部214は,21〜30,41〜50,91〜100番目のテストパターンデータのクロック周期識別番については変更しない。
【0180】
このように,多くの区間に分割した分割テストパターン毎に最小クロック周期を算出すれば,分割テストパターン毎の最適クロック周期をより高精度に算出することができる。
【0181】
[他の新テストパターンファイル生成方法]
ところで,分割テストパターン毎の最適クロック周期を算出する処理において,図6のフロー図で説明した例では,各分割テストパターンファイルを生成し,各分割テストパターンファイルの最適周期を算出することにより新テストパターンファイルを生成した。他にも,1つの分割テストパターンファイルを生成し,1つの分割テストパターンファイルが生成された後に,この分割テストパターンファイルの最適周期を算出し,次にもう1つめの分割テストパターンファイルを生成する処理を繰り返すことにより新テストパターンファイルを生成してもよい。
【0182】
図14は,新テストパターンファイルの生成処理を説明する他のフロー図である。なお,以下の説明において,ステップS11〜S15,S18の詳細説明については,図6のステップS1〜S5,S6で説明したので,省略している。
【0183】
ステップS11: 分割テストパターンファイル生成部211は,オリジナルテストパターンファイルを所定個数(m個)コピーする。
【0184】
ステップS12:分割テストパターンファイル生成部211は,k番目の分割テストパターンファイルを生成する。なお,分割テストパターンファイル生成部211が,初めてステップS12を実行する場合,kは1である。すなわち,分割テストパターンファイル生成部211は,k番目のコピーテストパターンファイルにおいて識別番号((TPD/m)×(k-1)+1)番目〜((TPD/m)×k)番目で示されるテストパターンデータ以外のテストパターンデータの出力期待値をX値に変更する。
【0185】
ステップS13: 最小周期抽出部212は,k番目の分割テストパターンファイルのシュムプロットを取得する。
【0186】
ステップS14: 最小周期抽出部212は,k番目の分割テストパターンファイルの最小クロック周期を抽出する。
【0187】
ステップS15: 最適周期算出部213は,k番目の分割テストパターンファイルの最適クロック周期を算出する。
【0188】
ステップS16: 最適周期算出部213は,m番目の分割テストパターンファイルの最適クロック周期を算出したか判定する。
【0189】
最適周期算出部213が,m番目の分割テストパターンファイルの最適クロック周期を算出していない場合(ステップS16/NO),kの値を1つカウントアップして(ステップS17),ステップS12に戻る。
【0190】
最適周期算出部213が,m番目の分割テストパターンファイルの最適クロック周期を算出した場合(ステップS16/YES),ステップS18に移る。
【0191】
ステップS18:新テストパターンファイル生成部214は,テストパターンと,このテストパターンに係る分割テストパターン毎の最適クロック周期を有する新テストパターンファイルを生成する。
【0192】
本実施の形態によれば,テストパターンにおいて分割されたテストパターン毎の最適クロック周期を算出することで,テスト時間を短縮することができる。さらに,テスト時間短縮により,テストに必要な電力を削減することができる。
【0193】
以上の実施の形態をまとめると,次の付記のとおりである。
【0194】
(付記1)
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路検査装置において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき,前記分割テストパターン毎の最適クロック周期を算出する算出部と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部を有する
ことを特徴とする半導体集積回路検査装置。
【0195】
(付記2)
付記1において,
テスト値と前記テスト値に対する前記半導体集積回路の出力期待値を有するテストパターンデータが連続して記録されたテストパターンファイルを所定個数コピーし,前記コピーした各コピーテストパターンファイルにおいて,前記各コピーテストパターンファイルに対応するテストパターンデータ以外のテストパターンデータの出力期待値を不定値に変更する分割テストパターンファイル生成部を有し,
前記算出部は,前記不定値に変更されていないテストパターンデータのテスト値を有するテストパターンを前記分割テストパターンとして,前記分割テストパターン毎の最適クロック周期を算出する
ことを特徴とする半導体集積回路検査装置。
【0196】
(付記3)
前記半導体集積回路は,複数の論理回路と,前記半導体集積回路検査装置から入力された前記テストパターンの前記テスト値に対応するテスト値を,前記テストパターンの前記テスト値に応じて,前記複数の論理回路の何れかに入力するBIST回路とを有する
ことを特徴とする半導体集積回路検査装置。
【0197】
(付記4)
付記1〜3の何れかにおいて,
前記算出部は,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得て,さらに,前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する
ことを特徴とする半導体集積回路検査装置。
【0198】
(付記5)
付記4において,
前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる
ことを特徴とする半導体集積回路検査装置。
【0199】
(付記6)
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路の検査方法において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得る工程と,
前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する工程と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する工程とを有する
ことを特徴とする半導体集積回路の検査方法。
【0200】
(付記7)
付記6において,
さらに,前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる工程を有する
ことを特徴とする半導体集積回路の検査方法。
【符号の説明】
【0201】
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…スイッチ。
【特許請求の範囲】
【請求項1】
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路検査装置において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき,前記分割テストパターン毎の最適クロック周期を算出する算出部と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部を有する
ことを特徴とする半導体集積回路検査装置。
【請求項2】
請求項1において,
前記算出部は,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得て,さらに,前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する
ことを特徴とする半導体集積回路検査装置。
【請求項3】
請求項2において,
前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる
ことを特徴とする半導体集積回路検査装置。
【請求項4】
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路の検査方法において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得る工程と,
前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する工程と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する工程とを有する
ことを特徴とする半導体集積回路の検査方法。
【請求項5】
請求項4において,
さらに,前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる工程を有する
ことを特徴とする半導体集積回路の検査方法。
【請求項1】
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路検査装置において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記分割テストパターンに対する論理演算を異なる周期のクロック信号に基づき前記半導体集積回路に実行させることにより得られた前記半導体集積回路の故障判定結果に基づき,前記分割テストパターン毎の最適クロック周期を算出する算出部と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する新テストパターンファイル生成部を有する
ことを特徴とする半導体集積回路検査装置。
【請求項2】
請求項1において,
前記算出部は,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得て,さらに,前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する
ことを特徴とする半導体集積回路検査装置。
【請求項3】
請求項2において,
前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる
ことを特徴とする半導体集積回路検査装置。
【請求項4】
テストパターンに対する論理演算を所定の周期を有するクロック信号に基づき検査対象の半導体集積回路に実行させ,前記テストパターンに対する前記半導体集積回路の出力期待値と,前記テストパターンに対する前記半導体集積回路の出力論理とを比較し,前記半導体集積回路の故障有無を検査し,故障判定結果を出力する半導体集積回路の検査方法において,
前記テストパターンを複数の区間に分割した分割テストパターン毎に,前記半導体集積回路の電源電圧,および,前記クロック信号の周期を変化させて,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させて,前記分割テストパターン毎の前記半導体集積回路の故障判定結果を得る工程と,
前記分割テストパターン毎の故障判定結果が故障無しの場合における最小クロック周期に所定周期を加算した周期を,前記分割テストパターン毎の最適クロック周期として算出する工程と,
前記テストパターンと,前記テストパターンに係る前記分割テストパターン毎の最適クロック周期を有するテストパターンファイルを生成する工程とを有する
ことを特徴とする半導体集積回路の検査方法。
【請求項5】
請求項4において,
さらに,前記新たに生成されたテストパターンファイルにおける前記分割テストパターン毎の最適クロック周期に基づき,前記分割テストパターンに対する論理演算を前記半導体集積回路に実行させる工程を有する
ことを特徴とする半導体集積回路の検査方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−40855(P2013−40855A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−177992(P2011−177992)
【出願日】平成23年8月16日(2011.8.16)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願日】平成23年8月16日(2011.8.16)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]