(57)【特許請求の範囲】
【請求項１】
スキャン設計された半導体集積回路のテストパターン生成方法であって、
ドントケアを含む複数のテストパターンからなる原テストパターン系列からテストパターンを順次選択するステップと、
前記半導体集積回路のレイアウト領域を略等分割した各領域について、前記選択したテストパターンにドントケア値を設定して当該テストパターンが前記半導体集積回路に印加された場合の消費電力を見積もるステップと、
前記選択したテストパターンについて、ドントケア値の変更および前記各領域の消費電力の見積もりを繰り返して、前記各領域の消費電力のばらつきが極小となるようなドントケア値を探索するステップと、
前記探索によって得られたドントケア値を前記選択したテストパターンのドントケア値として決定し、ドントケアを含まない複数のテストパターンからなる第１の新テストパターン系列を生成するステップとを備えている
ことを特徴とするテストパターン生成方法。
【請求項２】
請求項１のテストパターン生成方法において、
前記第１の新テストパターン系列に含まれる各テストパターンが前記半導体集積回路に順次印加された場合の前記半導体集積回路の温度変化を見積もり、テスト時の前記半導体集積回路の時間的温度変動が小さくなるように前記第１の新テストパターン系列に含まれる各テストパターンの印加順序を並べ替えて第２の新テストパターン系列を生成するステップを備えている
ことを特徴とするテストパターン生成方法。
【請求項３】
請求項２のテストパターン生成方法において、
前記第２の新テストパターン系列を生成するステップは、
前記第１の新テストパターン系列に含まれる各テストパターンが前記半導体集積回路に順次印加された場合の前記半導体集積回路の消費電力の平均値を見積もるステップと、
前記見積もった前記半導体集積回路の消費電力の平均値から、前記第１の新テストパターン系列が前記半導体集積回路に印加された場合の前記半導体集積回路の平均温度を見積もるステップと、
前記半導体集積回路の温度を前記見積もった平均温度に設定して前記半導体集積回路のテストが開始された場合に当該テスト終了時の前記半導体集積回路の温度が前記見積もった平均温度を基準とする所定の相対温度の範囲に収まるように、前記第１の新テストパターン系列を１または複数のテストパターンからなる複数のサブ系列に分割するステップと、
テスト時の前記半導体集積回路の時間的温度変動が小さくなるように前記サブ系列を並べ替えるステップとを有する
ことを特徴とするテストパターン生成方法。
【請求項４】
請求項３のテストパターン生成方法において、
前記サブ系列を並べ替えるステップは、
前記半導体集積回路の温度を前記見積もった平均温度に設定して前記半導体集積回路のテストが開始されて第ｎ番目までのサブ系列の印加が終わった場合の前記半導体集積回路の温度を見積もるステップと、
前記見積もった温度が前記所定の相対温度近傍にあるときには、第ｎ＋１番目のサブ系列として残りのサブ系列の中からより少ないテストパターンを含むものを選択し、それ以外のときにはより多くのテストパターンを含むものを選択するステップとを有する
ことを特徴とするテストパターン生成方法。
【請求項５】
コンピュータにスキャン設計された半導体集積回路のテストパターンを生成させるためのプログラムであって、
ドントケアを含む複数のテストパターンからなる原テストパターン系列からテストパターンを順次選択する手段、
前記半導体集積回路のレイアウト領域を略等分割した各領域について、前記選択したテストパターンにドントケア値を設定して当該テストパターンが前記半導体集積回路に印加された場合の消費電力を見積もる手段、
前記選択したテストパターンについて、ドントケア値の変更および前記各領域の消費電力の見積もりを繰り返して、前記各領域の消費電力のばらつきが極小となるようなドントケア値を探索する手段、
前記探索によって得られたドントケア値を前記選択したテストパターンのドントケア値として決定し、ドントケアを含まない複数のテストパターンからなる第１の新テストパターン系列を生成する手段、
としてコンピュータを機能させるためのプログラム。
【請求項６】
請求項５のプログラムにおいて、
前記第１の新テストパターン系列に含まれる各テストパターンが前記半導体集積回路に順次印加された場合の前記半導体集積回路の温度変化を見積もり、テスト時の前記半導体集積回路の時間的温度変動が小さくなるように前記第１の新テストパターン系列に含まれる各テストパターンの印加順序を並べ替えて第２の新テストパターン系列を生成する手段、
としてコンピュータを機能させるためのプログラム。
【請求項７】
コンピュータにスキャン設計された半導体集積回路のテストパターンを生成させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
ドントケアを含む複数のテストパターンからなる原テストパターン系列からテストパターンを順次選択する手段、
前記半導体集積回路のレイアウト領域を略等分割した各領域について、前記選択したテストパターンにドントケア値を設定して当該テストパターンが前記半導体集積回路に印加された場合の消費電力を見積もる手段、
前記選択したテストパターンについて、ドントケア値の変更および前記各領域の消費電力の見積もりを繰り返して、前記各領域の消費電力のばらつきが極小となるようなドントケア値を探索する手段、
前記探索によって得られたドントケア値を前記選択したテストパターンのドントケア値として決定し、ドントケアを含まない複数のテストパターンからなる第１の新テストパターン系列を生成する手段、
としてコンピュータを機能させるためのプログラムを記録した記録媒体。
【請求項８】
請求項７の記録媒体において、
前記第１の新テストパターン系列に含まれる各テストパターンが前記半導体集積回路に順次印加された場合の前記半導体集積回路の温度変化を見積もり、テスト時の前記半導体集積回路の時間的温度変動が小さくなるように前記第１の新テストパターン系列に含まれる各テストパターンの印加順序を並べ替えて第２の新テストパターン系列を生成する手段、
としてコンピュータを機能させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のテストパターン生成方法に関し、特に、スキャン設計されたＣＭＯＳ同期式半導体集積回路のテストに用いるテストパターン生成技術に関する。
【背景技術】
【０００２】
製造された半導体集積回路はすべて良品というわけではなく、信号線の値が０または１に固定される縮退故障を含む不良品もある。したがって、製品の出荷前に半導体集積回路の全信号線に対して縮退故障の有無をチェックする製品テストの実施は必要である。さらに近年ではプロセスの微細化が進み、縮退故障の有無だけではなく、信号線の値の変化が規定時間内に伝播するかといった遅延故障のチェックも必要である。このように、半導体集積回路のテストは性能評価、信頼性にかかわる重要な事項であり、テストコストが設計・製造コスト全体の半分を占める場合もある。【０００３】
半導体集積回路のテスト容易化の一手法としてスキャン設計がある。スキャン設計された半導体集積回路のテストは、スキャンインによってテストパターンをスキャンフリップフロップにセットし、そのテストパターンを組み合わせ回路に印加してテスト応答をスキャンフリップフロップにキャプチャし、キャプチャしたテスト応答を次のテストパターンのスキャンインと同時にスキャンアウトすることで行う。【０００４】
スキャンフリップフロップの値が変わるとスキャンフリップフロップを構成するトランジスタばかりではなく、スキャンフリップフロップの出力を受ける組み合わせ回路のトランジスタまでもが値を変える。これにより、半導体集積回路内で大量の電力が消費され、回路温度が上昇する。特に、同時に動作する、すなわち、同時に値を変えるスキャンフリップフロップの割合は、通常動作時には高々２０％程度であるのに対してテスト時には約５０％にもなる。このため、テスト時の発熱は通常動作時に比べて大きくなる。ＣＭＯＳトランジスタの動作速度は温度に依存するため、より精度の高いテスト結果を得るにはテスト時の回路温度制御が不可欠である。【０００５】
スキャンテストのためのテストパターン系列はＡＴＰＧ（Automatic Test Pattern Generation）ツールによって自動作成することができる。半導体集積回路の設計時に生成したテストパターン系列は出荷前の製造テストや出荷後のフィールドテストなどに使用される。通常、ＡＴＰＧツールで生成されたテストパターン系列にはドントケアが含まれており、ドントケア値の決め方および各テストパターンの印加順序次第でテスト時の半導体集積回路の消費電力、ひいては温度が大きく変わる。従来、テスト時の半導体集積回路のピーク消費電力および平均消費電力を抑える低消費電力テストや発熱を抑える低発熱テストのためのテストパターン生成方法が知られている。また、テスト時の半導体集積回路の消費電力の変動を抑える消費電力均一化テストのためのテストパターン生成方法が知られている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Sudarshan Bahukudumbi, Krishnendu Chakrabarty, "Power Management for Wafer-Level Test During Burn-In," ats, pp.231-236, 2008 17th Asian Test Symposium, 2008
【発明の概要】
【発明が解決しようとする課題】
【０００７】
テストパターンが印加された半導体集積回路はその全体が均一に活性化するわけではなく、活発に動作して高温になる領域とそうでない領域とに分かれる。また、活動領域の消費電力のばらつきは印加されるテストパターンに応じてさまざまに変わる。そして、今後、半導体集積回路のシステム化、大規模化がさらに進むと、テスト時の半導体集積回路の空間的温度ばらつきはより顕著になると予想される。このことは、高速化・精細化が進む半導体集積回路のテストにとって大きな問題になると懸念されている。【０００８】
従来技術には、半導体集積回路の外部から温度を制御する試みはあるが、新たな装置の追加が必要となるため効率的でない。また、回路温度の均一化してテスト精度を高めるには、単なる消費電力均一化ではなく、消費電力の空間的・時間的ばらつきを考慮する必要がある。【０００９】
また、従来技術には、回路全体の消費電力の時間的ばらつきを軽減するものがある。しかし、回路内の空間的消費電力のばらつきや回路温度の空間的・時間的ばらつきが考慮されておらず、最近の半導体集積回路に要求される精緻なテストに十分対応しているとは言いがたい。【００１０】
上記問題に鑑み、本発明は、新たな装置の追加を必要とせずに、テストパターンの工夫により、半導体集積回路の空間的な温度の均一化、さらには時間的な温度の均一化を実現することを課題とする。
【課題を解決するための手段】
【００１１】
一例として、スキャン設計された半導体集積回路のテストパターン生成方法は、ドントケアを含む複数のテストパターンからなる原テストパターン系列からテストパターンを順次選択するステップと、前記半導体集積回路のレイアウト領域を略等分割した各領域について、前記選択したテストパターンにドントケア値を設定して当該テストパターンが前記半導体集積回路に印加された場合の消費電力を見積もるステップと、前記選択したテストパターンについて、ドントケア値の変更および前記各領域の消費電力の見積もりを繰り返して、前記各領域の消費電力のばらつきが極小となるようなドントケア値を探索するステップと、前記探索によって得られたドントケア値を前記選択したテストパターンのドントケア値として決定し、ドントケアを含まない複数のテストパターンからなる第１の新テストパターン系列を生成するステップとを備えている。【００１２】
これによると、テスト時の半導体集積回路の消費電力が各領域で均一になるように、原テストパターン系列における各テストパターンのドントケア値が決定され、ドントケアを含まない第１のテストパターン系列が生成される。したがって、生成された第１のテストパターン系列でテストを行うことでテスト時の半導体集積回路の温度を空間的に均一化することができる。【００１３】
好ましくは、上記テストパターン生成方法は、前記第１の新テストパターン系列に含まれる各テストパターンが前記半導体集積回路に順次印加された場合の前記半導体集積回路の温度変化を見積もり、テスト時の前記半導体集積回路の時間的温度変動が小さくなるように前記第１の新テストパターン系列に含まれる各テストパターンの印加順序を並べ替えて第２の新テストパターン系列を生成するステップを備えているものとする。【００１４】
これによると、生成された第２のテストパターン系列でテストを行うことで、カバレッジを下げることなくテスト時の半導体集積回路の温度を時間的に均一化することができる。
【発明の効果】
【００１５】
本発明によると、テスト時の半導体集積回路の消費電力を空間的さらには時間的に均一化するようなテストパターンを生成することができる。したがって、本発明に係る方法で生成されたテストパターンを用いることで製造テストおよびフィールドテストのいずれにおいても微少な回路遅延を精度よく検出することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の一実施形態に係るテストパターン生成方法の概略フローチャートである。
【図２】図２は、各テストパターンのドントケア値決定の詳細フローチャートである。
【図３】図３は、従来のテストパターン系列および本発明に係るテストパターン系列のそれぞれの熱シミュレーション結果を示す図である。
【図４】図４は、テストパターンの印加順序並べ替えの詳細フローチャートである。
【図５】図５は、テストパターン系列の分割を説明するための模式図である。
【図６】図６は、サブ系列の並べ替えを説明するための模式図である。
【発明を実施するための形態】
【００１７】
＜空間的温度均一化＞
図１は、本発明の一実施形態に係るテストパターン生成方法の概略フローを示す。なお、下記のテストパターン生成方法は、コンピュータ読み取り可能な記録媒体に記録されたプログラムをコンピュータに実行させることにより実施することができる。
【００１８】
まず、ドントケアを含む複数のテストパターンからなるテストパターン系列１０を用意する。テストパターン系列１０は一般的なＡＴＰＧツールを用いて作成することができる。そして、テストパターン系列１０における各テストパターンについて、テスト時の半導体集積回路の各領域の消費電力のばらつきが小さくなるようにドントケア値を決定して、ドントケアを含まない複数のテストパターンからなるテストパターン系列２０を生成する（Ｓ１）。すなわち、与えられたドントケアを含む複数のテストパターンからなるテストパターン系列１０についてテスト時の半導体集積回路の消費電力が空間的に均一になるように各テストパターンのドントケア値を決定し、ドントケアを含まない複数のテストパターンからなるテストパターン系列２０を生成する。
【００１９】
半導体集積回路の各領域とは、半導体集積回路のレイアウト領域を等面積または概ね等面積に分割した場合の各領域のことを指す。例えば、半導体集積回路のレイアウト領域を縦横８×８からなる６４領域に分割する。なお、当該分割は半導体集積回路の空間的消費電力のばらつきを見積もるために便宜的に行うものである。したがって、半導体集積回路をどの程度の数およびどのような形状の領域に分割するかは必要とされる空間的消費電力均一化の粒度に応じて適宜決定すればよい。
【００２０】
図２は、各テストパターンのドントケア値決定の詳細フローを示す。まず、ｍ＝１に設定して（Ｓ１０２）、テストパターン系列１０からｍ番目のテストパターンを選択する（Ｓ１０４）。ここで選択されるテストパターンはドントケアを含むテストパターンである。ｍはテストパターン系列１０から選択されるテストパターンを特定するためのインデックスである。そして、ステップＳ１０４で選択したテストパターンの各ドントケアビットに初期値を設定する（Ｓ１０６）。各ドントケアビットの初期値は任意であるが、好ましくはテスト時の半導体集積回路の消費電力を低減するための低消費電力テストで採用される値を設定する。
【００２１】
次に、ｎ＝０、Ｆｌｉｐ＝ＦＡＬＳＥに設定する（Ｓ１０８）。ｎはテストパターンのドントケアビットのビット位置を特定するためのインデックスであり、Ｆｌｉｐは後述するようにすべてのドントケアビットの検証前後でドントケア値に変化があったかどうかを示すフラグである。ｎ、Ｆｌｉｐの初期設定が終わると、ステップＳ１０４で選択したテストパターンについてｎビット目のドントケアビットの値を反転する（Ｓ１１０）。そして、ステップＳ１１０終了後のドントケア値を有するテストパターンが半導体集積回路に印加された場合における半導体集積回路の各領域の消費電力を見積もる（Ｓ１１２）。当該見積もりはシミュレーションによって行う。このとき、当該テストパターンのスキャンインだけではなく、直前のテスト応答のスキャンアウトも考慮して各領域の消費電力を見積もることが望ましい。
【００２２】
ステップＳ１１２でテスト時の半導体集積回路の各領域の消費電力を見積もった後、各領域の消費電力のばらつきを算出し、一時的に記憶しておく（Ｓ１１３）。当該ばらつきは、例えば、消費電力分布の分散値や消費電力の最大値と最小値との差分などを指標とすることができる。そして、一時的に記憶していたばらつきとステップＳ１１３で新たに算出したばらつきとを比較する（Ｓ１１４）。ここで、後者の方が大きい、すなわち、ｎビット目のドントケアビットの値の反転前後で半導体集積回路の各領域の消費電力のばらつきが増大するようであれば（Ｓ１１４のＹｅｓ）、ｎビット目のドントケアビットの値を元に戻す（Ｓ１１６）。一方、前者の方が大きい、すなわち、ｎビット目のドントケアビットの値の反転前後で半導体集積回路の各領域の消費電力のばらつきが減少するようであれば（Ｓ１１４のＮｏ）、一時的に記憶されるばらつきを更新して、Ｆｌｉｐ＝ＴＲＵＥに設定する（Ｓ１１８）。
【００２３】
ステップＳ１１６またはＳ１１８が終了すると、ステップＳ１０４で選択したテストパターンについてすべてのドントケアビットの検証が終了したかどうかを確認する（Ｓ１２０）。もし未検証のドントケアビットが残っているなら（Ｓ１２０のＮｏ）、ｎをインクリメントして（Ｓ１２２）、ステップＳ１１０に戻る。一方、すべてのドントケアビットの検証が終了したなら（Ｓ１２０のＹｅｓ）、Ｆｌｉｐの状態を確認する（Ｓ１２４）。
【００２４】
ステップＳ１０４で選択したテストパターンのすべてのドントケアビットの検証前後でドントケア値に変化があった場合、Ｆｌｉｐ＝ＴＲＵＥとなっている。もし、Ｆｌｉｐ＝ＴＲＵＥであれば（Ｓ１２４のＹｅｓ）、ステップＳ１０８に戻り、ステップＳ１０４で選択したテストパターンについて再度すべてのドントケアビットの検証を行う。このように、ステップＳ１０４で選択したテストパターンのドントケア値が変化しなくなるまでステップＳ１０８からＳ１２４までの処理を繰り返すことにより、テスト時の半導体集積回路の各領域の消費電力のばらつきを極小にするドントケア値をヒューリスティックに見つけることができる。
【００２５】
ステップＳ１０８からＳ１２４までの処理を繰り返した結果、ステップＳ１０４で選択したテストパターンのドントケア値が変化しなくなると、ステップＳ１２４においてＦｌｉｐ＝ＦＡＬＳＥとなっている。その場合（Ｓ１２４のＮｏ）、ステップＳ１２４終了時点のドントケア値をステップＳ１０４で選択したテストパターンのドントケア値として決定する（Ｓ１２６）。
【００２６】
その後、テストパターン系列１０のすべてのテストパターンの検証が終了したかどうかを確認する（Ｓ１２８）。もし未検証のテストパターンが残っているなら（Ｓ１２８のＮｏ）、ｍをインクリメントして（Ｓ１３０）、ステップＳ１０４に戻る。一方、すべてのテストパターンの検証が終了したなら（Ｓ１２８のＹｅｓ）、ドントケアを含まない複数のテストパターンからなるテストパターン系列２０を生成して処理を終了する（Ｓ１３２）。
【００２７】
ステップＳ１１２での半導体集積回路の各領域の消費電力の見積もりは、論理、電力、温度の各シミュレーションを行うことで可能であるが、１個のドントケアビットの値を変えるごとにこれらシミュレーションを行うのは時間がかかり過ぎて現実的ではない。そこで、次のような高速消費電力見積もりを行うとよい。
【００２８】
高速消費電力見積もりでは、ドントケアビットの値が仮決定されたテストパターン系列が半導体集積回路に印加された場合の各領域のＦＦ平均遷移率およびその周辺領域のＦＦ平均遷移率から各領域の消費電力を見積もる。ここで、ＦＦ平均遷移率とは、各領域に属する複数のスキャンフリップフロップのそれぞれの遷移率の平均のことをいう。例えば、ある領域に４つのスキャンフリップフロップがあり、これら４つのスキャンフリップフロップの保持値が“００００”であるとしたとき、テストパターンとして“１１０１”をスキャンインすると４つのスキャンフリップフロップの保持値は“００００”→“１０００”→“０１００”→“１０１０”→“１１０１”と変化する。すなわち、各スキャンフリップフロップの保持値は、４クロックの間にそれぞれ３回、３回、２回、１回ずつ変化する。したがって、この場合の各スキャンフリップフロップの遷移率は、それぞれ、３／４、３／４、２／４、１／４であり、この領域のＦＦ平均遷移率はこれらの平均値である９／１６である。このように、各領域のＦＦ平均遷移率は半導体集積回路に印加されるテストパターン系列から一意に決まる。
【００２９】
具体的には、領域ｉの消費電力Ｐｉは次式に従って高速見積もりすることができる。
Ｐｉ＝（１＋Ｄ（ｉ，ＳＡｉ，ａｄｊ））×Ｐｂａｓｅ（ｉ，ＳＡｉ）
【００３０】
ここで、ＳＡｉは、領域ｉのＦＦ平均遷移率である。ＳＡｉ，ａｄｊは、ＳＡｉに対する領域ｉの周辺領域のＦＦ平均遷移率の平均値の相対値である。例えば、ＳＡｉが３０％、領域ｉの周辺領域のＦＦ平均遷移率の平均値が５０％の場合にはＳＡｉ，ａｄｊは２０％であり、ＳＡｉが３０％、領域ｉの周辺領域のＦＦ平均遷移率の平均値が２０％の場合にはＳＡｉ，ａｄｊは−１０％である。なお、周辺領域の個数は領域ｉの位置によって異なる。例えば、半導体集積回路のレイアウト領域をマトリクス状に分割することを想定すると、半導体集積回路のレイアウト領域の角に位置する領域ｉは３個の周辺領域に囲まれ、半導体集積回路のレイアウト領域の辺に接する領域ｉは５個の周辺領域に囲まれ、それ以外の領域ｉは８個の周辺領域に囲まれる。
【００３１】
Ｐｂａｓｅ（ｉ，ＳＡｉ）は、すべての領域のＦＦ平均遷移率をＳＡｉとしたときの領域ｉの消費電力（基準消費電力）である。基準消費電力は、既存のパターン非依存静的電力解析ツールを用いて算出することができる。当該ツールに領域ｉのＦＦ平均遷移率を入力すると、領域ｉに含まれる信号線の値の遷移率が見積もられ、領域ｉに属するスキャンフリップフロップと組み合わせ回路の消費電力が見積もられる。
【００３２】
なお、基準消費電力をツールを用いて毎回算出するのは時間がかかるため、あらかじめいくつかの代表値を用意しておき、中間値については代表値の線形補間によって算出するようにしてもよい。例えば、各領域ごとにＦＦ平均遷移率を０％から１００％まで１０％刻みに変化させて基準消費電力の代表値を算出し、当該算出した代表値をテーブルなどに保存しておいてもよい。これにより、各領域の消費電力の見積もりの際にはテーブルから値を読み出して必要に応じて線形補間をすればよいため、より高速に消費電力を見積もることができる。
【００３３】
１＋Ｄ（ｉ，ＳＡｉ，ａｄｊ）は、基準消費電力に対する補正係数であり、Ｄ（ｉ，ＳＡｉ，ａｄｊ）は、領域ｉの消費電力補正率である。消費電力補正率が正値ならＰｉはＰｂａｓｅ（ｉ，ＳＡｉ）よりも大きくなり、消費電力補正率が負値ならＰｉはＰｂａｓｅ（ｉ，ＳＡｉ）よりも小さくなる。Ｄ（ｉ，ＳＡｉ，ａｄｊ）は、例えば、次式のように定義される。
Ｄ（ｉ，ＳＡｉ，ａｄｊ）＝（Ｐｄ（ｉ，ＳＡｉ，ａｄｊ）−Ｐｄ（ｉ，０））／Ｐｄ（ｉ，０）
【００３４】
ここで、Ｐｄ（ｉ，ＳＡｉ，ａｄｊ）は、領域ｉのＦＦ平均遷移率を任意の値ＳＡに固定して周辺領域のＦＦ平均遷移率の平均値の相対値をＳＡｉ，ａｄｊにしたときの領域ｉの消費電力（補正消費電力）である。補正消費電力も、既存のパターン非依存静的電力解析ツールを用いて算出することができる。
【００３５】
なお、補正消費電力をツールを用いて毎回算出するのは時間がかかるため、あらかじめいくつかの代表値を用意しておき、中間値については代表値の線形補間によって算出するようにしてもよい。例えば、各領域ごとにＳＡを３０％に固定してＳＡｉ，ａｄｊを−３０％から＋７０％まで１０％刻みに変化させて補正消費電力の代表値を算出し、当該算出した代表値をテーブルなどに保存しておいてもよい。これにより、各領域の消費電力の見積もりの際にはテーブルから値を読み出して必要に応じて線形補間をすればよいため、より高速に消費電力を見積もることができる。
【００３６】
次に、上記のテストパターン生成方法の効果について説明する。図３（ａ）は、一般的なＡＴＰＧツールなどで作成されたテストパターン系列を使用して半導体集積回路のテストを行った場合の熱シミュレーション結果を示す。図３（ｂ）は、上記のテストパターン生成方法で生成されたテストパターン系列２０を使用して半導体集積回路のテストを行った場合の熱シミュレーション結果を示す。いずれも半導体集積回路は縦横８×８の６４領域に分割され、温度はグレースケールによって示されている。濃度が濃いほど温度が高いことを示す。
【００３７】
図３（ａ）および図３（ｂ）から明らかなように、従来のテストパターン系列を使用するケースでは半導体集積回路の空間的温度ばらつきが大きいのに対して、上記のテストパターン生成方法に従って生成されたテストパターン系列２０を使用するケースでは半導体集積回路の空間的温度ばらつきが小さくなっている。すなわち、テストパターン系列２０を使用することでテスト時の半導体集積回路の温度が空間的に均一化されている。このように、テスト時の半導体集積回路の空間的消費電力均一化を考慮して各テストパターンのドントケア値を決定することによって、テスト時の半導体集積回路の空間的温度均一化を実現するテストパターン系列を得ることができる。
【００３８】
＜時間的温度均一化＞
空間的な温度均一化を実現するテストパターン系列２０が得られたなら、次は、時間的な温度均一化を実現するように、テストパターン系列２０を変形することが望ましい。以下、時間的温度均一化のためのテストパターン生成方法の一例について説明する。
【００３９】
図１に戻り、ステップＳ１でのドントケア値決定後に、テストパターン系列２０における各テストパターンが半導体集積回路に印加された場合の半導体集積回路の温度変化を見積もり、テスト時の半導体集積回路の時間的温度変動が小さくなるように各テストパターンの印加順序を並べ替えてテストパターン系列３０を生成する（Ｓ２）。すなわち、今度はテスト時の半導体集積回路の温度が時間的に均一になるように各テストパターンの印加順序を並べ替える。
【００４０】
図４は、テストパターンの印加順序並べ替えの詳細フローを示す。まず、テストパターン系列２０における各テストパターンが順次印加された場合の半導体集積回路の消費電力の平均値を見積もる（Ｓ２０２）。そして、見積もった平均値から、テストパターン系列２０が印加された場合の半導体集積回路の平均温度を見積もる（Ｓ２０４）。
【００４１】
平均温度は、テスト時の半導体集積回路の消費電力が上記平均値で一定である場合の半導体集積回路の収束温度として見積もることができる。消費電力が一定であるときの半導体集積回路の収束温度を予測することは容易である。各テストパターンに係る半導体集積回路の消費電力は各領域の消費電力の平均値、すなわち、半導体集積回路の空間的な平均消費電力を採用する。なお、上述した空間的温度均一化の過程で半導体集積回路の各領域の消費電力のばらつきを算出する際に消費電力の平均値も算出しておけばここで改めて消費電力の平均値を見積もる必要はない。
【００４２】
次に、テスト開始時の半導体集積回路の温度を見積もった平均温度に設定するパターン系列を求める（Ｓ２０６）。テスト環境の違いによってテスト開始時の半導体集積回路の温度はさまざまであるため、テストパターン系列を印加する前に、半導体集積回路の温度を見積もった平均温度に設定する。
【００４３】
半導体集積回路の温度を見積もった平均温度に設定するためのパターン系列は半導体集積回路のテストのためのパターン系列ではないため、消費電力の空間的均一性を満たし半導体集積回路の温度を急激に変化させるパターンを含むパターン系列を用意するとよい。テスト実行時には、温度センサーなどで測定された半導体集積回路の温度に応じて、当該パターン系列のうち半導体集積回路に印加する入力系列長を調整することで半導体集積回路の温度を見積もった平均温度に設定することが可能となる。なお、半導体集積回路の温度を急激に見積もった平均温度に設定するには、クロック周波数を上げて消費電力を上昇させてもよい。
【００４４】
なお、半導体集積回路の温度を見積もった平均温度に設定するパターン系列は必ずしも下述のテストパターン系列をサブ系列に分割する前に求める必要はない。当該パターン系列は半導体集積回路に実際にテストパターン系列３０を印加する前に半導体集積回路の温度を見積もった平均温度にまで上げておくためのものであるため、ここで説明するテストパターン生成方法とは独立に実際のテスト開始までの任意のタイミングで生成すればよい。
【００４５】
次に、温度シミュレーションを行って、テストパターン系列２０を複数のサブ系列に分割する（Ｓ２０８）。サブ系列とは、テストパターン系列２０の部分であって、１または複数のテストパターンからなる。サブ系列は、半導体集積回路の温度を見積もった平均温度に設定して半導体集積回路のテストが開始された場合に当該テスト終了時の半導体集積回路の温度が見積もった平均温度を基準とする所定の相対温度の範囲に収まるような、すなわち、上限温度または下限温度に達するようなテストパターンの集合である。上下限の温度範囲はユーザーが任意に指定（例えば、±３°Ｃなど）することができる。
【００４６】
次に、図５を参照して具体的なテストパターン系列２０の分割方法について説明する。横軸はテスト時間、縦軸は半導体集積回路の温度を表す。図中の実線はサブ系列の印加による半導体集積回路の温度変化を示し、破線はテストパターン系列２０を区切らずにテストを継続した場合の半導体集積回路の温度変化を示す。半導体集積回路の温度を見積もった平均温度に設定して半導体集積回路のテストを開始し、テストパターン系列２０で決められている順にテストパターンを印加していった場合に半導体集積回路の温度が指定範囲を超えたところでテストパターン系列２０を区切り、それまでに印加した系列をサブ系列とする。そして、テストパターン系列２０からサブ系列を削除し、テストパターン系列２０が空になるまで上記処理を繰り返す。
【００４７】
図４に戻り、サブ系列の分割が終了したならば、テスト時の半導体集積回路の時間的温度変動が小さくなるように各サブ系列の印加順序を並べ替えてテストパターン系列３０を生成する（Ｓ２１０）。基本的には、半導体集積回路の温度を上昇させるようなサブ系列および半導体集積回路の温度を下降させるようなサブ系列が交互に印加されるようにサブ系列を並べ替えることでテスト時の半導体集積回路の時間的温度変動を小さくすることができる。すなわち、テストパターン系列３０を用いることでテスト時の半導体集積回路の温度変動を空間的および時間的に均一化することができる。
【００４８】
好ましくは、サブ系列の並べ替えは、各サブ系列の印加による半導体集積回路の温度上昇率および下降率をも考慮して行う。図６を参照してサブ系列の並べ替えの一例を説明する。
【００４９】
まず、半導体集積回路の温度を見積もった平均温度に設定して半導体集積回路のテストが開始されてからあるサブ系列のテストが終了したときの半導体集積回路の温度を見積もる。そして、当該温度が上下限温度に近い危険領域にあるか上下限温度に達するまでにまだ余裕のある安全領域にあるかによって、次に印加すべきサブ系列の選択方法を変える。
【００５０】
具体的には、当該温度が危険領域にあるときには、残りのサブ系列のうちより少ないテストパターンを含むもの、すなわち、より短時間で半導体集積回路の温度を見積もった平均温度近くにまで戻すことのできるサブ系列を選択する。一方、当該温度が安全領域にあるときには、残りのサブ系列のうちより多くのテストパターンを含むものを選択する。これは、テスト応答に係る半導体集積回路の消費電力を考慮して、テストパターンのスキャンインとその直前のテスト応答のスキャンアウトとでスキャンフリップフロップの値変化がなるべく少なくなるように最適化されていたテストパターン系列２０のテストパターン印加順序をなるべく維持するためである。なお、危険領域にある半導体集積回路の温度を下げるには、クロック信号を停止する、あるいは温度を急速に下げるようなダミーパターンを印加してもよい。
【００５１】
以上、本実施形態によると、テスト時の半導体集積回路の消費電力を空間的さらには時間的に均一化するようなテストパターンを生成することができる。そして、そのようなテストパターンを用いることで製造テストおよびフィールドテストのいずれにおいても微少な回路遅延を精度よく検出することができる。通常、半導体集積回路にはテスト精度や経年劣化対策として数％〜１０％程度の周波数動作マージンが設定されるが、製造テストにおいて高精度な遅延故障の検出が可能となることで、動作マージンを低減して歩留まりを向上することができる。また、半導体集積回路にＢＩＳＴ（Built-In Self Test）回路を組み込んでフィールドテストにおいて高精度な遅延故障を検出することで、半導体集積回路の経年劣化を未然に検知することができる。
【００５２】
なお、空間的温度均一化が達成されるようなテストパターン系列があらかじめ用意されている、あるいは半導体集積回路の規模が小さいなどの理由で空間的温度均一化が不要であれば、空間的温度均一化のための処理を省略して、時間的温度均一化の処理のみを実施してもよい。
【産業上の利用可能性】
【００５３】
本発明に係るテストパターン生成方法は、テスト時の半導体集積回路の消費電力を空間的さらには時間的に均一化するようなテストパターンを生成することができるため、大規模半導体集積回路やＳｏＣ（System on Chip）などのテストパターン生成に有用である。
【図１】
0005843358.tif 000002
【図２】
0005843358.tif 000003
【図３】
0005843358.tif 000004
【図４】
0005843358.tif 000005
【図５】
0005843358.tif 000006
【図６】
0005843358.tif 000007