(57)【要約】【課題】半導体集積回路をスキャンテスト時のＩＲドロップによる誤動作を回避し、効率の良いスキャンテストを実現する。【解決手段】半導体集積回路をスキャンテストするためのテストパターンを生成するテストパターン生成装置１００は、危険箇所抽出部１１０と、テストパターンの生成を実行するパターン生成実行部であるＡＴＰＧ１５０を備える。危険箇所抽出部１１０は、半導体集積回路から、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所を抽出し、ＡＴＰＧ１５０は、危険箇所抽出部１１０により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成する。【選択図】図１
2008224315.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路をスキャンテストするためのテストパターンを生成するテストパターン生成装置であって、
前記半導体集積回路から、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所を抽出する危険箇所抽出部と、
該危険箇所抽出部により抽出された前記危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するパターン生成実行部とを備えることを特徴とするテストパターン生成装置。
【請求項２】
前記パターン生成実行部は、複数のインスタンスが含まれる前記危険箇所に対して、該複数のインスタンスが同時に変化することがないようにテストパターンを生成することを特徴とする請求項１に記載のテストパターン生成装置。
【請求項３】
前記危険箇所抽出部は、
前記半導体集積回路を複数のブロックに分割し、各前記ブロックのＩＲドロップ量を算出するＩＲドロップ量算出部と、
該ＩＲドロップ量算出部により算出された前記ＩＲドロップ量が所定の基準値より大きいブロックを前記危険箇所として抽出する抽出実行部とを備えることを特徴とする請求項１または２に記載のテストパターン生成装置。
【請求項４】
前記ＩＲドロップ量算出部は、前記半導体集積回路を同じサイズの複数のブロックに分割することを特徴とする請求項３に記載のテストパターン生成装置。
【請求項５】
前記ＩＲドロップ量算出部は、前記半導体集積回路における集積度の高さに応じて、集積度が高い場所ほどブロックのサイズが小さくなるように、前記半導体集積回路を複数のブロックに分割することを特徴とする請求項３に記載のテストパターン生成装置。
【請求項６】
前記ＩＲドロップ量算出部は、各前記ブロック内のスキャンフリップフロップの数を取得し、前記数が所定の閾値より大きいブロックに対してのみＩＲドロップ量を算出することを特徴とする請求項３から５のいずれか1項に記載のテストパターン生成装置。
【請求項７】
前記抽出実行部は、抽出した前記危険箇所のうちの隣接する危険箇所を統合して１つの危険箇所とする統合部を有することを特徴とする請求項３から６のいずれか1項に記載のテストパターン生成装置。
【請求項８】
前記抽出実行部は、
危険箇所として抽出したブロックをさらに複数の小ブロックに再分割し、
再分割によって得られた各前記小ブロックに対して、前記ＩＲドロップ量算出部にＩＲドロップ量の算出を行わせ、
前記ＩＲドロップ量算出部により算出されたＩＲドロップ量が前記所定の基準値より大きい小ブロックを抽出して、再分割前の前記ブロックの代わりになる危険箇所とする絞込部を備えることを特徴とする請求項３から７のいずれか1項に記載のテストパターン生成装置。
【請求項９】
半導体集積回路をスキャンテストするためのテストパターンを生成するテストパターン生成方法において、
前記半導体集積回路から、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所を抽出する危険箇所抽出工程と、
抽出された前記危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するパターン生成実行工程とを有することを特徴とするテストパターン生成方法。
【請求項１０】
前記パターン生成実行工程は、複数のインスタンスが含まれる前記危険箇所に対して、該複数のインスタンスが同時に変化することがないようにテストパターンを生成する工程であることを特徴とする請求項９に記載のテストパターン生成方法。
【請求項１１】
前記危険箇所抽出工程は、
前記半導体集積回路を複数のブロックに分割するブロック分割工程と、
各前記ブロックのＩＲドロップ量を算出するＩＲドロップ量算出工程と、
算出された前記ＩＲドロップ量が所定の基準値より大きいブロックを前記危険箇所として抽出する抽出実行工程とを有することを特徴とする請求項９または１０に記載のテストパターン生成方法。
【請求項１２】
前記ブロック分割工程は、前記半導体集積回路を同じサイズの複数のブロックに分割することを特徴とする請求項１１に記載のテストパターン生成方法。
【請求項１３】
前記ブロック分割工程は、前記半導体集積回路における集積度の高さに応じて、集積度が高い場所ほどブロックのサイズが小さくなるように、前記半導体集積回路を複数のブロックに分割することを特徴とする請求項１１に記載のテストパターン生成方法。
【請求項１４】
前記ブロック分割工程により得られた各ブロックのスキャンフリップフロップの数を取得する工程をさらに備え、
前記ＩＲドロップ量算出工程は、前記数が所定の閾値より大きいブロックに対してのみＩＲドロップ量を算出することを特徴とする請求項１１から１３のいずれか1項に記載のテストパターン生成方法。
【請求項１５】
前記抽出実行工程により抽出した前記危険箇所のうちの隣接する危険箇所を統合して１つの危険箇所とする統合工程をさらに有することを特徴とする請求項１１から１４のいずれか1項に記載のテストパターン生成方法。
【請求項１６】
危険箇所として抽出したブロックをさらに複数の小ブロックに再分割し、
再分割によって得られた各前記小ブロックに対して、前記ＩＲドロップ量算出工程を実行させて各前記小ブロックのＩＲドロップ量を得、
ＩＲドロップ量が前記所定の基準値より大きい小ブロックを抽出して、再分割前の前記ブロックの代わりになる危険箇所とする絞込工程をさらに有することを特徴とする請求項１１から１５のいずれか1項に記載のテストパターン生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路をテストする技術に関し、具体的には半導体集積回路に対してスキャンテストをするためのテスタパターンの生成技術に関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）に対してスキャンテストをするために、スキャンテストパターン（以下単にテストパターンという）を生成する必要がある。近年、テストパターン数の削減やテスト時間の短縮などの目的に応じて、高圧縮のテストパターンを生成することが行われている。
【０００３】
しかし、高圧縮のテストパターンほど、ＬＳＩ内部の動作率も高くなる傾向がある。そのため、ロジックテスト時において、電源のＩＲドロップ（以下単にＩＲドロップともいう）に起因してテストスキャンチェーンの誤動作が生じ、テストの結果、良品を不良品として判定し歩留まりを低下させてしまう恐れがある。
【０００４】
そこで、ＬＳＩ内部の動作率を下げたテストパターンを生成することが考えられるが、電源のＩＲドロップによる影響は、ＬＳＩのレイアウトと関係するので、ＬＳＩのレイアウトを考慮せずに単純に動作率を下げるようにテストパターンを生成するのでは、実質的な誤動作回避効果に限界がある。
【０００５】
特許文献１には、ＩＲドロップとレイアウトを考慮したテストパターン生成の技術が開示されており、特許文献１における図１に対応する図１８は、この技術を適用した半導体集積回路テスト設計支援装置を示す。
【０００６】
図１８に示す半導体集積回路テスト設計支援装置において、ＲＣネットワーク解析部４は、電源電圧を供給する配線の物理的形状、電源からの距離、電源系統を解析してＲＣネットワーク解析結果５を出力する。スキャン回路グルーピング部６は、ＲＣネットワーク解析結果５と後述するＩＲドロップ解析結果９に基づいて、同時にスキャンテスト動作可能なスキャンフリップフロップ群をグルーピングしてスキャン回路グループ情報７を出力する。ＩＲドロップ解析部８は、スキャン回路グループ情報７に基づいて、同一グループのスキャンフリップフロップがスキャンテスト中に一斉に動作するものとして、グループ毎にＩＲドロップが発生するか否かを解析してＩＲドロップ解析結果９を得る。ＩＲドロップ解析結果判定部１０は、ＩＲドロップ解析結果９と判定値１８を比較し、ＩＲドロップによるスキャンフリップフロップの誤動作が発生するか否かを判定する。
【０００７】
誤動作が発生すると判定された場合には、スキャン回路グルーピング部６による再グルーピングが行われ、再グルーピングにより得られたグループ毎に、ＩＲドロップ解析部８とＩＲドロップ解析結果判定部１０の処理が行われる。このような再グルーピング、ＩＲドロップの解析、ＩＲドロップ解析結果の判定は、各グループに誤動作が発生しないと判定されるまで繰り返される。
【０００８】
ＩＲドロップ解析結果判定部１０により誤動作が発生しないと判定されると、スキャンチェーン挿入部１１は、そのときのスキャン回路グループ情報７に基づいて、論理接続情報１のスキャンチェーンを変更する。このスキャンチェーンの変更は、スキャンモードの制御またはクロックの制御により行われる。変更後のスキャンチェーンに対して、複数のスキャンチェーンが同時に動作しないようにテストパターンを生成する。
【０００９】
すなわちこの技術は、スキャンテスト時に、ＩＲドロップに起因するスキャンチェーンの誤動作の発生を回避するようにスキャンチェーンを構成し、構成したスキャンチェーンを基にテストパターンを生成する。
【特許文献１】特開２００６−６６８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１に記載の技術は、スキャンチェーンの構成を変更して再レイアウトすることによってＩＲドロップに起因する誤動作の回避を図っている。そのため、レイアウト完了までのＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ：開発時間）が増加してしまうという問題がある。
【００１１】
また、クロック制御回路を用いてスキャンチェーンを変更する場合には、レイアウト上のＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）からやり直す必要があり、大幅なレイアウトのＴＡＴ増加につながる。
【００１２】
また、テストパターン生成時に、ＩＲドロップによる誤動作を回避するために動作させないチェーンが存在するため、テストパターンのパターン長およびテスト時間の増加が発生してしまう。
【００１３】
ＩＲドロップによる誤動作を回避しつつこれらの問題を解決することは、効率の良いスキャンテストを実現するうえでの大きな課題になっている
【課題を解決するための手段】
【００１４】
本発明の１つの態様は、半導体集積回路をスキャンテストするためのテストパターンを生成するテストパターン生成装置である。このテストパターン生成装置は、半導体集積回路から、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所を抽出する危険箇所抽出部と、該危険箇所抽出部により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するパターン生成実行部とを備える。
【００１５】
なお、上記テストパターン生成装置を方法、システム、プログラムに置き換えたものも、本発明の態様としては有効である。
【発明の効果】
【００１６】
本発明にかかる技術によれば、半導体集積回路のスキャンテストの際に、スキャンチェーンの変更をせずに電源のＩＲドロップに起因するテスト時の誤動作を回避することができ、効率の良いスキャンテストが実現できる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態について説明する。
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態にかかるテストパターン生成装置１００を示す。テストパターン生成装置１００は、ＬＳＩチップ（以下単にチップという）をスキャンテストするためのテストパターンを生成するものであり、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所をチップから抽出する危険箇所抽出部１１０と、危険箇所抽出部１１０により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するパターン生成実行部１５０を備える。以下の説明において、パターン生成実行部１５０をＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）１５０という。
【００１８】
なお、本実施の形態のテストパターン生成装置１００の処理対象のチップは、レイアウト（ユーザ回路のレイアウトとスキャンチェーンのレイアウト）が完了したチップであり、危険箇所抽出部１１０は、このチップのレイアウトデータ、動作率、回路情報（ネットリスト、クロック情報、周波数情報、チップ内の各機能要素の消費電力など）、プロセスパラメータ、パケッジ（以下ＰＫＧという）のＬＣＲ（コイル、容量、抵抗）情報を用いて危険箇所の抽出を行う。
【００１９】
図１に示すように、危険箇所抽出部１１０は、ＩＲドロップ量算出部１２０と抽出実行部１３０を備える。
【００２０】
ＩＲドロップ量算出部１２０は、まず、チップをメッシュ状に複数のブロックに等分割する。図２は、ＩＲドロップ量算出部１２０によるブロック分けの例を示す。図示の例では、ブロック（ＢＫ）の数が３×３の９個であるが、チップの規模や構造に応じて変更可能であり、ここの例示に限られることが無い。
【００２１】
ＩＲドロップ量算出部１２０は、図２に例示する各ブロックに対して、ＩＲドロップ量を計算する。ＩＲドロップ量の算出手法は、従来の種々の方法を用いればよく、例えば、電源配線のＲＣネットワーク情報（レイアウトデータに含まれる）とチップの動作率、ＰＫＧのＬＣＲ情報、プロセスパラメータ、およびブロックに含まれる機能要素の消費電力（回路情報に含まれる）から静的ＩＲドロップ量を算出してもよいし、ブロック内の各機能要素の周波数情報からノイズを抽出して動的ＩＲドロップ量を算出してもよい。
【００２２】
図３は、図２に示す各ブロックに対して算出されたＩＲドロップ量の例を示す。ＩＲドロップ量算出部１２０は、図３に示す算出結果を抽出実行部１３０に出力する。
【００２３】
抽出実行部１３０は、ＩＲドロップ量算出部１２０により得られた図３のような算出結果に基づいて、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所の抽出を実行する。具体的には、ブロックのＩＲドロップ量と所定の基準値と比較し、基準値より大きいＩＲドロップ量を有するブロックを危険箇所として抽出する。
【００２４】
ここで、「基準値」は、テスト時に誤動作が生じる可能性の有無を判定するための閾値であり、チップの規模や構造に応じて変更可能である。ここで、例として、「６０ｍｖ」とする。そのため、基準値「６０ｍｖ」と比較した結果、ブロックＢＫ５のＩＲドロップ量（７０ｍｖ）が基準値より大きいので、抽出実行部１３０は、図４に示すように、ブロックＢＫ５（図中黒いブロック）を危険箇所として判定する。
【００２５】
抽出実行部１３０は、危険箇所として判定したブロックを識別する情報（例えばブロックの識別番号ここではＢＫ５）と、該ブロック内に含まれたインスタンスを示すインスタンス情報とを危険箇所リストとして生成してＡＴＰＧ１５０に出力する。なお、抽出実行部１３０は、レイアウトデータを参照して危険箇所となるブロックのインスタンス情報を取得する。
【００２６】
図５は、抽出実行部１３０により出力された危険箇所リストの例を示す。図示のように、抽出実行部１３０から出力された危険箇所リストは、危険箇所として判定されたブロックの識別情報（ＢＫ５）と、このブロック内の各インスタンス（ｉｎｓｔＡ、ｉｎｓｔＢ、ｉｎｓｔＣ、・・・）とが対応付けられてリストアップされている。
【００２７】
図６は、危険箇所抽出部１１０における処理の流れを示すフローチャートである。図示のように、危険箇所の抽出にあたり、まず、ＩＲドロップ量算出部１２０は、チップをメッシュ状に複数のブロックに等分割して、各ブロックのＩＲドロップ量を算出する（Ｓ１０、Ｓ１４）。抽出実行部１３０は、ＩＲドロップ量算出部１２０により得られたブロックのＩＲドロップ量と基準値を比較し、ＩＲドロップ量が基準値より大きいブロックを危険箇所として判定すると共に、レイアウトデータを参照して、該ブロック内のインスタンス情報を取得して、対応付けて危険箇所リストに追加する（Ｓ１８：Ｙｅｓ、Ｓ２４）。一方、ＩＲドロップ量が基準値以下のブロックに対しては、危険箇所ではないとして判定する（Ｓ１８：Ｎｏ）。抽出実行部１３０は、ステップＳ１８〜ステップＳ２４までの処理を各ブロックに対して行い（Ｓ２８：Ｎｏ、Ｓ３０、Ｓ１８〜Ｓ２４）、最後のブロックの処理が完了すれば（Ｓ２８：Ｙｅｓ）、危険箇所リストをＡＴＰＧ１５０に出力して、危険箇所抽出処理を終了する（Ｓ４０）。
【００２８】
次にＡＴＰＧ１５０の動作を説明する。ＡＴＰＧ１５０は、回路情報に含まれるネットリストと、危険箇所抽出部１１０から出力された危険箇所リストを用いてテストパターンを生成する。図７は、ＡＴＰＧ１５０による処理の流れを示すフローチャートである。
【００２９】
図７に示すように、ＡＴＰＧ１５０は、まず、回路情報に基づいてチップ全体について故障定義する（Ｓ５０）。「故障定義」は、チップ内のノードが「検出」状態なのか、「未検出」状態なのかを定義することを意味し、通常、チップ内のすべてのノードに対して行われる。以下の説明において、故障定義されたノードを「故障定義箇所」という。また、「検出」とは、スキャンテスト時にその故障定義箇所にテストパターンを適用することにより該故障定義箇所と対応する素子の状態（正常に動作するか否か）を取得することが可能な状態を意味し、「未検出」は、「検出」の逆であり、スキャンテスト時にその故障定義箇所にテストパターンを適用しても該故障定義箇所と対応する素子の状態を取得することができない状態を意味する。
【００３０】
ここで、デフォルト設定として、ＡＴＰＧ１５０は、チップ内のすべてのノードを故障定義箇所とし、それらの状態を「未検出」に設定する。なお、ＡＴＰＧ１５０は、各故障定義箇所と、該故障定義箇所が「検出」なのか「未検出」なのかとを対応付けて故障定義ファイルとして保持する。
【００３１】
ＡＴＰＧ１５０は、「未検出」に定義されたすべての故障定義箇所に対してテストパターンを生成すると共に、テストパターンを生成したことにより検出された故障定義箇所（以下「検出箇所」という）の状態が「未検出」から「検出」になるように故障定義ファイルを更新する（Ｓ５２）。
【００３２】
そして、ＡＴＰＧ１５０は、検出箇所を危険箇所リストと照合する（Ｓ５４）。この照合は、危険箇所リストのそれぞれのブロック内に、検出箇所があるか否か、ある場合にはその数を取得する処理である。
【００３３】
１つのブロックの中に、検出箇所が１つ以下である場合には、ＡＴＰＧ１５０は、処理をステップＳ５２に戻し、他の「未検出」故障定義箇所についてステップＳ５２からの処理を行う（Ｓ５６：Ｎｏ、Ｓ５２〜）。一方、１つのブロックの中に、検出箇所が２つ以上含まれる場合には、ＡＴＰＧ１５０は、さらに、テストパターンの生成が可能か否かの判定をする（Ｓ５６：Ｙｅｓ、Ｓ５８）。
【００３４】
検出箇所が、動作するインスタンスに対応するため、検出箇所の数も、動作するインスタンスの数に対応する。１つのブロックの中に複数個の動作するインスタンスが含まれているときに、回路構成上に同時に動作しなくてはいけないなどの制限条件から、テストパターンが生成不可となる場合がある。ＡＴＰＧ１５０は、ステップＳ５８において、テストパターンが生成可能か否かを判断し、生成可能と判断した場合には、該ブロック内の各検出箇所の状態が「検出」から「未検出」になるように故障定義ファイルを更新し、処理をステップＳ５２に戻す（Ｓ５８：Ｎｏ、Ｓ６０、Ｓ５２〜）。なお、故障定義ファイルにおいてこれらの検出箇所の状態が「検出」になっていたのは、ステップＳ５２においてテストパターンの生成ができていたことから「検出」に変更されたためである。
【００３５】
一方、ステップＳ５８において、生成不可能と判断した場合には、ＡＴＰＧ１５０は、故障定義ファイルにおいて該当する検出箇所の状態を「検出」から「検出不可」に変更して故障定義ファイルを更新する（Ｓ５８：Ｙｅｓ、Ｓ７２）。また、ＡＴＰＧ１５０は、「検出不可」とした故障定義箇所を示すパターン生成不可リストに追加する（Ｓ７４）。
【００３６】
ステップＳ５２〜ステップＳ７４の処理は、故障定義ファイルに「未検出」状態の故障定義箇所が無くなるまで繰り返される（Ｓ７６：ＹＥＳ、Ｓ５２〜）。これにより、故障定義ファイルにあるすべての故障定義箇所が「検出」か「検出不可」になっている。
【００３７】
故障定義ファイルに「未検出」状態の故障定義箇所が無くなれば（Ｓ７６：Ｎｏ）、ＡＴＰＧ１５０は、テストパターンと、パターン生成不可リストを出力して、処理を終了する（Ｓ８０）。
【００３８】
すなわち、ＡＴＰＧ１５０は、危険箇所リストにリストアップされたブロックに対して、該ブロック内に複数の動作するインスタンスが含まれる場合には、これらのインスタンスが同時に変化させないことにより該ブロック内のインスタンスの動作率を抑制するようにテストパターンを生成している。
【００３９】
そのため、テストパターン生成装置１００により出力されるテストパターンは、テスト時にＩＲドロップによる誤動作の発生を生じさせないものとなる。
【００４０】
このように、本実施の形態のテストパターン生成装置１００は、チップを複数のブロックに分け、これらのブロックのうちの、電源のＩＲドロップに起因して誤動作が生じうるブロックを危険箇所として抽出し、危険箇所として抽出されたブロック内に動作するインスタンスが複数ある場合にはこれらのインスタンスの動作率を抑制するようにテストパターンを生成することによって、電源のＩＲドロップに起因する誤動作の防止を図っている。レイアウト設計に対するフィードバックを発生させないため、ＩＲドロップによる誤動作をスキャンチェーンの再レイアウトにより回避する特許文献１の技術より、ＴＡＴを抑制することができ、効率の良いスキャンテストができる。
【００４１】
また、ユーザ回路のレイアウトが完了した後に、テストのためにスキャンチェーンのレイアウトを修正すると、場合によってはユーザ回路のレイアウトに影響を及ぼす可能性がある。本実施の形態のテストパターン生成装置１００は、スキャンチェーンのレイアウトを変更しないので、ユーザ回路のレイアウトに影響を与えることも無い。
【００４２】
また、特許文献１の技術では、ＩＲドロップによる誤動作回避のために動作が停止させられるスキャンチェーンがあるため、テストパターンのパターン長とテスト時間が増加してしまうという問題がある。それに対して、本実施の形態のテストパターン生成装置１００によれば、全チェーン動作可能であるのでテストパターンのパターン長とテスト時間が増加する問題を防ぐことができる。
【００４３】
さらに、特許文献１の技術は、スキャンモードの制御またはクロックの制御によりスキャンチェーンを変更するために、これらの制御のための回路が必要であり、必然的に回路規模が大きくなるという問題がある。それに対して、本実施の形態のテストパターン生成装置１００は、これらの回路の追加を必要としないため、回路規模の増大が無しにＩＲドロップによる誤動作の発生を防ぐことができる。
【００４４】
また、チップを複数のブロックに等分割、すなわち同じ大きさの複数のブロックにチップを分割しているので、ブロックの位置を特定するための演算が簡単である。
【００４５】
＜第２の実施の形態＞
図８は、本発明の第２の実施の形態にかかるテストパターン生成装置２００を示す。テストパターン生成装置２００も、チップをスキャンテストするためのテストパターンを生成するものであり、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所をチップから抽出する危険箇所抽出部１１０と、危険箇所抽出部１１０により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するＡＴＰＧ１５０を備える。ここで、図１に示す第１の実施の形態のテストパターン生成装置１００のものと同様の構成または機能を有する部分に対して図８において同一の符号を付与すると共に、それらの詳細な説明を省略する。
【００４６】
図８に示す第２の実施の形態のテストパターン生成装置２００は、危険箇所抽出部２１０がテストパターン生成装置１００における危険箇所抽出部１１０異なる。図示のように、危険箇所抽出部２１０は、ＩＲドロップ量算出部１２０と抽出実行部２３０を有し、抽出実行部２３０は、危険箇所抽出部１１０における抽出実行部１３０と異なり、統合部２４０を備えている。
【００４７】
図９と図１０は、危険箇所抽出部２１０が行う処理を示すフローチャートである。図９に示すように、危険箇所の抽出にあたり、まず、ＩＲドロップ量算出部１２０は、チップをメッシュ状に複数のブロックに等分割して、各ブロックのＩＲドロップ量を算出する（Ｓ１０、Ｓ１４）。抽出実行部２３０は、ＩＲドロップ量算出部１２０により得られたブロックのＩＲドロップ量と基準値を比較し、ＩＲドロップ量が基準値より大きいブロックを危険箇所として判定すると共に、レイアウトデータを参照して、該ブロック内のインスタンス情報を取得して、危険箇所リストに追加する（Ｓ１８：Ｙｅｓ、Ｓ２４）。一方、ＩＲドロップ量が基準値以下のブロックに対しては、危険箇所ではないとして判定する（Ｓ１８：Ｎｏ）。抽出実行部２３０は、ステップＳ１８〜ステップＳ２４までの処理をチップの各ブロックに対して行い（Ｓ２８：Ｎｏ、Ｓ３０、Ｓ１８〜Ｓ２４）、最後のブロックの処理が完了すれば（Ｓ２８：Ｙｅｓ）、統合部２４０によるブロック統合処理が行われる（Ｓ１１０）。
【００４８】
すなわち、危険箇所抽出部２１０により行われるステップＳ１０〜ステップＳ３０までの処理は、危険箇所抽出部１１０における危険箇所抽出部１１０が行われる処理と同じである。
【００４９】
図１０は、統合部２４０が行う危険箇所を統合する処理を示すフローチャートである。図示のように、統合部２４０は、まず、上記ステップＳ３０までの処理により得られた危険箇所リストを参照し、危険箇所とされるブロックが複数あるか否かを確認する（Ｓ１１４）。危険箇所のブロックが１以下であれば、危険箇所リストをそのままＡＴＰＧ１５０に出力する（Ｓ１１０：Ｎｏ、Ｓ１３０）。一方、危険箇所のブロックが複数あれば、統合部２４０は、レイアウトデータを参照して、さらにこれらの複数の危険箇所のブロックのうち、隣接するブロックがあるか否かを確認する（Ｓ１１８）。
【００５０】
隣接する危険箇所のブロックが無ければ、統合部２４０は、危険箇所リストをそのままＡＴＰＧ１５０に出力する（Ｓ１１８：Ｎｏ、Ｓ１３０）。一方、隣接する危険箇所のブロックがあれば、統合部２４０は、隣接する危険箇所のブロックを１つのブロックとして統合して危険箇所リストを更新する（Ｓ１１８：Ｙｅｓ、Ｓ１２４、Ｓ１２８）。統合に当たり、具体的には、隣接する危険箇所のブロックを１つのブロックとしてブロック番号を付与し直すと共に、これらの危険箇所に含まれる各インスタンスを、ブロック番号が新しく付与されたブロックに対応付けるようにして危険箇所リストを更新する。統合部２４０は、統合が完了すれば、更新した危険箇所リストをＡＴＰＧ１５０に出力して、危険箇所の抽出を終了する（Ｓ１３０）。
【００５１】
図１１は、隣接する危険箇所のブロックが無い場合（Ｓ１１８：Ｎｏ）に危険箇所抽出部２１０から出力された危険箇所リストの例を示す。図示の例では、インスタンスｉｎｓｔＧとｉｎｓｔＨが含まれるブロックＢＫ１と、インスタンスｉｎｓｔＣが含まれるブロックＢＫ６がチップの危険箇所として抽出されている。この場合、ＢＫ１とＢＫ６が隣接していないので、危険箇所抽出部２１０から出力された危険箇所リストは、ＢＫ１とＢＫ２に対して、それぞれに含まれるインスタンスが対応付けたものである。
【００５２】
図１２は、隣接する危険箇所のブロックがある場合（Ｓ１１８：Ｙｅｓ）に危険箇所抽出部２１０から出力された危険箇所リストの例を示す。図示の例では、インスタンスｉｎｓｔＡとｉｎｓｔＢが含まれるブロックＢＫ５と、インスタンスｉｎｓｔＣが含まれるブロックＢＫ６がチップの危険箇所として抽出されている。この場合、ＢＫ５とＢＫ６が隣接しているため、危険箇所抽出部２１０から出力された危険箇所リストは、ＢＫ５とＢＫ６を統合したブロックを示すＢＫ５６に対して、それに含まれるインスタンス（ｉｎｓｔＡ、ｉｎｓｔＢ、ｉｎｓｔＣ）が対応付けたものとなる。
【００５３】
ＡＴＰＧ１５０は、回路情報に含まれるネットリストと、危険箇所抽出部１１０から出力された危険箇所リストを用いてテストパターンを生成する。なお、危険箇所リストに含まれるブロックの番号が統合されたブロックの番号である場合には、統合されたブロックを１つのブロックに見なしてテストパターンを生成する。ＡＴＰＧ１５０によるテストパターンの生成がテストパターン生成装置１００におけるＡＴＰＧ１５０と同様であるので、ここで詳細な説明を省略する。
【００５４】
チップ上において、同時に動作する機能要素がブロックを跨る場合があるので、危険箇所が隣接しているときに、これらの危険箇所毎にインスタンスの動作率を抑制したとしても、ＩＲドロップによる誤動作の発生を実質的に回避できない場合がある。本実施の形態のテストパターン生成装置２００は、危険箇所のブロックが隣接しているときに、隣接するブロックを１つの危険箇所として統合し、統合後のブロック内のインスタンスの動作率を抑制するようにテストパターンを生成するようにしている。そのため、テストパターン生成装置１００と同じ効果を得ることができると共に、ＩＲドロップによる影響をより確実に回避することができる。
【００５５】
＜第３の実施の形態＞
図１３は、本発明の第３の実施の形態にかかるテストパターン生成装置３００を示す。テストパターン生成装置３００も、チップをスキャンテストするためのテストパターンを生成するものであり、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所をチップから抽出する危険箇所抽出部３１０と、危険箇所抽出部３１０により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するＡＴＰＧ１５０を備える。ここで、図１に示す第１の実施の形態のテストパターン生成装置１００のものと同様の構成または機能を有する部分に対して図１３において同一の符号を付与すると共に、それらの詳細な説明を省略する。
【００５６】
危険箇所抽出部３１０は、ＩＲドロップ量算出部３２０と抽出実行部３３０を有し、抽出実行部３３０は、さらに統合部３４０と絞込部３５０を備える。
【００５７】
図１４のフローチャートを参照して危険箇所抽出部３１０の動作を説明する。図１４に示すように、危険箇所の抽出にあたり、まず、危険箇所抽出部３１０は、チップをメッシュ状に複数のブロックに等分割して、各ブロックのＩＲドロップ量を算出する（Ｓ３１０、Ｓ３１４）。抽出実行部３３０は、ＩＲドロップ量算出部３２０により得られたブロックのＩＲドロップ量と基準値を比較し、ＩＲドロップ量が基準値より大きいブロックを危険箇所として判定すると共に、レイアウトデータを参照して、該ブロック内のインスタンス情報を取得して、危険箇所リストに追加する（Ｓ３１８：Ｙｅｓ、Ｓ３２４）。一方、ＩＲドロップ量が基準値以下のブロックに対しては、危険箇所ではないとして判定する（Ｓ３１８：Ｎｏ）。抽出実行部３３０は、ステップＳ３１８〜ステップＳ３２４までの処理をチップの各ブロックに対して行い（Ｓ３２８：Ｎｏ、Ｓ３３０、Ｓ３１８〜Ｓ３２４）、最後のブロックの処理が完了すれば（Ｓ３２８：Ｙｅｓ）、統合部３４０によるブロック統合処理が行われる（Ｓ３４０）。ステップＳ３４０の統合処理は、統合部３４０により行われる。統合部３４０は、ここまでの処理により得られた危険箇所リストとレイアウトデータを参照し、隣接する危険箇所のブロックがあればそれらを１つのブロックとして統合して危険箇所リストを更新して絞込部３５０に出力する。なお、隣接する危険箇所のブロックが無ければ、危険箇所リストをそのまま絞込部３５０に出力する。
【００５８】
なお、ここまでの処理は、統合部３４０が危険箇所リストを絞込部３５０に出力する点を除いて、図８に示すテストパターン生成装置２００における抽出実行部２３０の処理と同じである。
【００５９】
絞込部３５０は、まず、統合部３４０から出力された危険箇所リストを参照して、絞込みをするか否かの判定をする。絞込みの詳細については後述するが、本実施の形態において、絞込部３５０は、下記の２つの要素を満たすか否かに基づいて、絞込みをするかの判定をする。
【００６０】
１．ブロックの大きさが所定の閾値Ｍ以下である。
【００６１】
２．ブロック内のインスタンスの数が所定の閾値Ｎ（Ｎ：１以上の自然数）以下である。
【００６２】
絞込部３５０は、上記の２つの要素のいずれか１つを満たしていれば、絞込みをしないと判定する一方、上記の２つの要素のいずれも満たさない場合には、絞込みをすると判定する。なお、閾値ＭとＮは、チップの規模と構造に応じて変更可能である。
【００６３】
絞込部３５０は、統合部３４０から出力された危険箇所リストに含まれたブロックのうちに、絞込みをすると判定したブロックが無ければ、統合部３４０から出力された危険箇所リストをそのままＡＴＰＧ１５０に出力する（Ｓ３５０：Ｎｏ、Ｓ３７０）。一方、絞込みをすると判定したブロックがあれば、このブロックを対象危険箇所として、さらに小さいブロックに等分割して、新たに得られた複数の小ブロックに対してブロック番号を付与し直す（Ｓ３５０：Ｙｅｓ、Ｓ３６０）。そして、処理をステップＳ３１４に戻してステップＳ３１４からの処理を、これらの小ブロックに対して行わせる（Ｓ３１４〜）。
【００６４】
図１５は、危険箇所抽出部３１０の処理を具体例で示している。まず、ＩＲドロップ量算出部３２０によるブロック分割と、抽出実行部３３０による危険箇所の抽出によって、チップが９個のブロック（ＢＫ１〜ＢＫ９）に分割され、危険箇所と判定されるブロックが抽出され、危険箇所リストが作成される。図１５の（ａ）欄に示すように、ここで、ブロックＢＫ５とＢＫ６が危険箇所として抽出されている。
【００６５】
統合部３４０は、この危険箇所リストとレイアウトデータに基づいて、隣接する危険箇所があればこれらの危険箇所を１つのブロックとして統合して危険箇所リストを更新する一方、隣接する危険箇所が無ければ、危険箇所リストをそのまま絞込部３５０に出力する。図１５に示す例では、危険箇所となるブロックＢＫ５とブロックＢＫ６が隣接しているため、統合部３４０は、ＢＫ５とＢＫ６を１つのブロック（例えばＢＫ５６）に統合すると共に、危険箇所リストを更新して絞込部３５０に出力する。
【００６６】
絞込部３５０は、統合部３４０から出力された危険箇所リストに含まれたブロックのうちの、絞込みをすると判定したブロックに対して絞込み処理を行う。図１５の（ｂ）欄に示すように、絞込部３５０は、統合部３４０の統合により得られたＢＫ５６をさらに複数の小ブロック（ＢＫ５６１〜ＢＫ５６１８）に等分割する。
【００６７】
そして、ＢＫ５６１〜ＢＫ５６１８に対して、ＩＲドロップ量算出部３２０によるＩＲドロップ量の算出、およびＩＲドロップ量と基準値との比較によって、図１５の（ｃ）欄に示すように、ブロックＢＫ５６７、ＢＫ５６１１、ＢＫ５６１５が危険箇所として抽出される。これに伴って危険箇所リストも更新される。
【００６８】
ここで、ブロックＢＫ５６７、ＢＫ５６１１、ＢＫ５６１５が隣接していないブロックであるため、統合部３４０による統合がなされないことになる。また、ここで、ブロックＢＫ５６７、ＢＫ５６１１、ＢＫ５６１５に対して絞込みをしない判定がなされたとする。この場合、図１５の（ｄ）欄に示す危険箇所リストがＡＴＰＧ１５０に出力される。
【００６９】
ＡＴＰＧ１５０の処理については、ここで説明を省略する。
【００７０】
このように、本実施の形態のテストパターン生成装置３００によれば、テストパターン生成装置１００、テストパターン生成装置２００と同じ効果を得ることができると共に、絞込処理を行うことによって、動作率を抑制する必要のある箇所を減らすことができるため、ＡＴＰＧ１５０によりテストパターンを生成する時間を短縮することができる。さらに、生成するテストパターンのパターン長を短くできる共に、検出率の低下を防ぐことができる。
【００７１】
＜第４の実施の形態＞
図１６は、本発明の第４の実施の形態にかかるテストパターン生成装置４００を示す。テストパターン生成装置４００も、チップをスキャンテストするためのテストパターンを生成するものであり、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所をチップから抽出する危険箇所抽出部４１０と、危険箇所抽出部１１０により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するＡＴＰＧ１５０を備える。ここで、図１に示す第１の実施の形態のテストパターン生成装置１００のものと同様の構成または機能を有する部分に対して図１６において同一の符号を付与すると共に、それらの詳細な説明を省略する。
【００７２】
危険箇所抽出部４１０は、ＩＲドロップ量算出部４２０と抽出実行部４４０を備える。
【００７３】
ＩＲドロップ量算出部４２０は、非対象ブロック排除部４３０を備える点においてのみ、上述した各実施の形態のテストパターン生成装置におけるＩＲドロップ量算出部と異なる。非対象ブロック排除部４３０は、チップをメッシュ状に等分割して得た複数のブロックから、ＩＲドロップによる影響で誤動作が発生する可能性の低いブロックをＩＲドロップ量の計算対象から除外するものである。具体的には、非対象ブロック排除部４３０は、回路情報とレイアウトデータを参照して、回路構成を解析することによって各ブロック内に含まれるスキャンフリップフロップ（ＦＦ）の数を調査する。そして、各ブロックに対して、それに含まれるＦＦの数を１以上の所定の閾値と比較し、ＦＦの数が閾値以下であるブロックを、誤動作する可能性が低いブロックとして、ＩＲドロップ量の計算対象すなわち危険箇所抽出の対象から除外する。なお、この閾値の値も、チップの規模と構成に応じて変更可能である。
【００７４】
そして、ＩＲドロップ量算出部４２０は、非対象ブロック排除部４３０により除外されていないブロックに対してのみＩＲドロップ量の算出を行って、抽出実行部４４０に出力する。
【００７５】
抽出実行部４４０は、ＩＲドロップ量算出部４２０からＩＲドロップ量が出力されたブロックから、危険箇所の抽出を実行する。抽出実行部４４０は、上述した各実施の形態のテストパターン生成装置における抽出実行部のいずれであってもよく、ここで説明を省略する。
【００７６】
このように、本実施の形態のテストパターン生成装置４００によれば、ＩＲドロップの影響で誤動作が生じる可能性の大小はＦＦの数と関連することに着目し、ＦＦの数が少ないブロックをＩＲドロップ量の算出すなわち危険箇所の抽出の対象ブロックから排除することによって、ＩＲドロップ量の算出時間を短縮することができる。特に、絞込みを行うテストパターン生成装置３００のような構成を有する場合には、絞込処理が複数回実行される可能性があるため、ＴＡＴ短縮の効果が顕著である。
【００７７】
＜第５の実施の形態＞
図１７は、本発明の第５の実施の形態にかかるテストパターン生成装置５００を示す。テストパターン生成装置５００も、チップをスキャンテストするためのテストパターンを生成するものであり、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所をチップから抽出する危険箇所抽出部５１０と、危険箇所抽出部５１０により抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパターンを生成するＡＴＰＧ１５０を備える。ここで、図１に示す第１の実施の形態のテストパターン生成装置１００のものと同様の構成または機能を有する部分に対して図１７において同一の符号を付与すると共に、それらの詳細な説明を省略する。
【００７８】
危険箇所抽出部５１０は、ＩＲドロップ量算出部５２０と抽出実行部１３０を備える。
【００７９】
ＩＲドロップ量算出部５２０は、ブロックサイズ決定部５３０を備える点においてのみ、上述した各実施の形態のテストパターン生成装置におけるＩＲドロップ量算出部と異なる。
【００８０】
ブロックサイズ決定部５３０は、レイアウトデータを参照して、回路の集積度に応じて、集積度が高い場所ほどブロックのサイズが小さくなるようにブロックのサイズを決定する。そして、ＩＲドロップ量算出部４２０は、ブロックサイズ決定部５３０により決められたブロックサイズに従ってチップを複数のブロックに分割して、各ブロックのＩＲドロップ量を算出する。抽出実行部１３０は、ＩＲドロップ量算出部４２０により得られた各ブロックのＩＲドロップ量に基づいて危険箇所の抽出を行って危険箇所リストを得、ＡＴＰＧ１５０によるテストパターンの生成に供する。抽出実行部１３０とＡＴＰＧ１５０による処理の詳細な説明は、ここで省略する。
【００８１】
このように、本実施の形態のテストパターン生成装置５００は、集積度の高い場所ほどブロックのサイズが小さく、集積度の低い場所ほどブロックのサイズが大きくなるようにチップを分割してＩＲドロップ量の算出を行っている。そのため、ＩＲドロップの影響による誤動作を確実に回避できる共に、ＩＲドロップの算出にかかる時間を短縮することができる。その結果、テストパターン生成装置１００などと同じ効果を得ることができると共に、ＴＡＴをより短縮することができる。
【００８２】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対して、さまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１の実施の形態にかかるテストパターン生成装置を示す図である。
【図２】図１に示すテストパターン生成装置におけるＩＲドロップ量算出部によるチップ分割の例を示す図である。
【図３】図２に例示した各ブロックに対してＩＲドロップ量算出部が算出したＩＲドロップ量の例を示す図である。
【図４】図３に示す例を用いて、図１における抽出実行部により抽出された危険箇所を示す図である。
【図５】図４に例に対応した危険箇所リストの例を示す図である。
【図６】図１に示すテストパターン生成装置における危険箇所抽出部の処理の流れを示すフローチャートである。
【図７】図１に示すテストパターン生成装置におけるパターン生成実行部による処理の流れを示すフローチャートである。
【図８】本発明の第２の実施の形態にかかるテストパターン生成装置を示す図である。
【図９】図８に示すテストパターン生成装置における危険箇所抽出部の処理の流れを示すフローチャートである（その１）。
【図１０】図８に示すテストパターン生成装置における危険箇所抽出部の処理の流れを示すフローチャートである（その２）。
【図１１】図８に示すテストパターン生成装置における危険箇所抽出部が出力した危険箇所リストの例を示す図である（その１）。
【図１２】図８に示すテストパターン生成装置における危険箇所抽出部が出力した危険箇所リストの例を示す図である（その２）。
【図１３】本発明の第３の実施の形態にかかるテストパターン生成装置を示す図である。
【図１４】図１３に示すテストパターン生成装置における危険箇所抽出部の処理の流れを示すブロック図である。
【図１５】図１３に示すテストパターン生成装置における危険箇所抽出部による処理の具体例を説明するための図である。
【図１６】本発明の第４の実施の形態にかかるテストパターン生成装置を示す図である。
【図１７】本発明の第５の実施の形態にかかるテストパターン生成装置を示す図である。
【図１８】従来技術の例を示す図である。
【符号の説明】
【００８４】
１００  テストパターン生成装置
１１０  危険箇所抽出部
１２０  ＩＲドロップ量算出部
１３０  抽出実行部
１５０  ＡＴＰＧ
２００  テストパターン生成装置
２１０  危険箇所抽出部
２３０  抽出実行部
２４０  統合部
３００  テストパターン生成装置
３１０  危険箇所抽出部
３２０  ＩＲドロップ量算出部
３３０  抽出実行部
３４０  統合部
３５０  絞込部
４００  テストパターン生成装置
４１０  危険箇所抽出部
４２０  ＩＲドロップ量算出部
４３０  非対象ブロック排除部
４４０  抽出実行部
５００  テストパターン生成装置
５１０  危険箇所抽出部
５２０  ＩＲドロップ量算出部
５３０  ブロックサイズ決定部
【図１】
2008224315.tif 000003
【図２】
2008224315.tif 000004
【図３】
2008224315.tif 000005
【図４】
2008224315.tif 000006
【図５】
2008224315.tif 000007
【図６】
2008224315.tif 000008
【図７】
2008224315.tif 000009
【図８】
2008224315.tif 000010
【図９】
2008224315.tif 000011
【図１０】
2008224315.tif 000012
【図１１】
2008224315.tif 000013
【図１２】
2008224315.tif 000014
【図１３】
2008224315.tif 000015
【図１４】
2008224315.tif 000016
【図１５】
2008224315.tif 000017
【図１６】
2008224315.tif 000018
【図１７】
2008224315.tif 000019
【図１８】
2008224315.tif 000020