(57)【特許請求の範囲】
【請求項１】
集積回路の１チップに含まれる回路を機能単位で複数のブロックに分割し、それぞれのブロックについて、マスクパターンを作成した際のフロアプラン又はレイアウト情報からマスクパターン密度を抽出し、得られたマスクパターン密度と各ブロックの故障数とから各ブロックの故障の重みを算出し、各ブロックの故障の重みに応じて各ブロックでのサンプリング率を算出し、それぞれのブロックに対して決定したサンプリング率を用いて故障検証装置がランダムサンプリングでの故障検証を行い、最後に各ブロックの故障検証結果を集計して１チップの結果を算出する集積回路の故障検証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路の効率的かつ高精度な故障検証方法に関する。
【０００２】
【従来の技術】
集積回路の製造プロセスにおいて、例えばマスクに微細な異物が付着すると、その付着部分でパターンブリッジ等の不良が生じ得る。このような不良は一般に、集積回路の検査工程で、所定のテストパターンを用いて入出力信号を調べることにより検出される。このようなテストパターンを回路図等の情報に基づいて自動的に生成する自動テストパターン生成装置（ＡＴＰＧ）も良く知られている。
【０００３】
しかし、高度の集積回路にあっては、コストに見合う検査時間の制限から、実行するテストパターンの数も限られる。そこで、いかに短時間で効率的に集積回路の不良（以下、故障という）を検出するかが重要である。そこで、あるテストパターンで集積回路の故障をどの程度の確率で検出できるか、すなわち故障検出率の評価を行うことが必要になる。このような故障検出率の評価を本明細書では故障検証ということにする。
【０００４】
従来から、故障検証を高速に行う方法としてサンプリング手法が理論的に証明され、運用されている。この手法では、例えば集積回路に予（あらかじ）め人為的に故障状態を作っておき、これを検査機（又は故障検出器）にかけてその故障が正常に検出されるか否かを調べる（故障シミュレーション）。そして、あり得る全ての故障からランダムに複数の故障をサンプリングし、これらの複数の故障について上記の故障シミュレーションを行い、その故障検出結果から故障検出率を推定する。あるいは、自動テストパターン生成装置が、生成したテストパターンの組合せによる故障検出率を上記のようにして推定する機能を有することもある。
【０００５】
上記のサンプリング手法により推定された故障検出率と実際の故障検出率、すなわち全ての故障をシミュレートしたときの故障検出率との誤差を小さくするにはサンプリング数を大きくすればよいが、前述のように、コストに見合う検査時間の制限がある。そこで、上記の誤差が所定の許容範囲内に収まるようにサンプリング数を決めることになる。通常、集積回路の規模が大きいほど、あり得る故障の数が多くなることから、従来は、回路規模と故障検出率とに基づいてサンプリング率を決定していた。
【０００６】
【発明が解決しようとする課題】
しかしながら、チップ上の物理的な領域において、故障の発生原因となる現象、例えばマスクへの異物の付着が生じたとき、これが故障に結び付くのは、マスクパターンが存在する部分に異物が付着したときである。チップ上にはマスクパターンが存在しない部分があり、この部分に異物が付着しても故障にはつながらない。
【０００７】
通常、マスクパターンはチップ上に均一に存在しないで、マスクパターンが密である部分と疎である部分とがチップ上に生じている。したがって、故障の発生原因となる現象がチップ上でほぼ均一に発生するとしても、実際の故障が発生する確率はチップ上で均一ではなく、マスクパターンが密である部分は疎である部分に比べて故障発生率が高くなる。
【０００８】
従来の故障検出率は回路のネットリストとテストパターンのみを用いて算出していたので、算出された故障検出率が、実際の故障発生率の指標としての精度を保証できないおそれがあった。
【０００９】
そこで、本発明は、チップ内におけるマスクパターン密度の分布に着目し、物理的な故障発生率に応じた新たな故障検出率を算出することにより、高精度かつ高効率の検査を可能ならしめ、故障（初期不良）の低減に寄与することを目的とする。
【００１０】
【課題を解決するための手段】
本発明による故障検証方法は、検査対象の集積回路のマスクパターンを作成した際のフロアプラン又はレイアウト情報からマスクパターン密度を抽出し、得られたマスクパターン密度と故障シミュレータ又は自動テストパターン生成装置から得られる故障検出率とに基づいて、算出手段が物理的な故障発生率に応じた新たな故障検出率を算出することを特徴としている。
【００１１】
より具体的な構成として本発明による故障検証方法は、集積回路の１チップに含まれる回路を機能単位で複数のブロックに分割し、それぞれのブロックについて、マスクパターンを作成した際のフロアプラン又はレイアウト情報からマスクパターン密度を抽出し、得られたマスクパターン密度と各ブロックの故障数とから各ブロックの故障の重みを算出し、各ブロックの故障の重みに応じて各ブロックでのサンプリング率を算出し、物理的な故障発生率に応じた故障のサンプリング値を決定し、それぞれのブロックに対して決定したサンプリング率を用いて故障検証装置がランダムサンプリングでの故障検証を行い、最後に各ブロックの故障検証結果を集計して１チップの結果を算出する工程を備えている。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
図１に示すように、矩形のチップ上にマスクパターンが存在する部分と存在しない部分とが分布している場合を仮定する。図１中、網かけされた「マスク有り部分」がマスクパターンの存在する部分であり、白地の「マスク無し部分」がマスクパターンの存在しない部分である。
【００１３】
また、矩形のチップ全体を上下左右に分割して４つのブロックＡ，Ｂ，Ｃ，Ｄとすると、各ブロックにおけるマスクパターン密度、すなわち、全面積にマスクパターンが占める割合が異なっている。図１の場合、マスクパターン密度はブロックＢが最も高く、Ｄ、Ｃ、Ａの順に低くなっている。マスクパターン密度の低い部分は、故障の発生原因となる現象が起こっても故障発生率が低い。これに対して、マスクパターン密度の高い部分は、同じ故障の発生原因となる現象による故障発生率が高くなる。例えば、図１の場合、ブロックＢはブロックＡよりマスクパターン密度が高いので、故障の発生原因となる現象による故障発生率はブロックＢのほうがブロックＡより高くなる。
【００１４】
一般に、チップの物理的な領域を基準とした故障発生率とマスクパターン密度との関係は、図２に示すように比例関係となる。このように、故障発生率はマスクパターンのレイアウト状態に応じて異なり、正確な故障発生率を求めるためにはマスクパターンの密度を考慮する必要がある。
【００１５】
本発明の故障検証方法によれば、マスクパターンを作成する際のフロアプラン又はレイアウト情報から得られる物理的なパラメータを考慮することにより、従来の故障検出率よりも高精度の故障検出率を算出することができる。本発明の故障検証方法の具体的な処理手順を図３に沿って説明する。
【００１６】
まず、処理３０３で集積回路のマスクパターンを作成した際のフロアプラン又はレイアウト情報からレイアウトパラメーターを抽出する。得られたレイアウトパラメーター３０４と、従来の故障検出装置３０１から得られる故障検出率３０２との両方に基づいて、マスク密度を考慮する算出手段３０５が、物理的な故障発生率に応じた高精度の故障検出率３０６を新たに算出する。
【００１７】
次に、本発明の別の実施形態について説明する。この実施形態は、サンプリング手法に本発明を適用したものである。サンプリング手法とは、従来技術の説明でも述べたように、集積回路の１チップに含まれる全ての故障からランダムに複数の故障をサンプリングし、それらの故障についてのみ故障検出装置による故障検出率を求める処理を行い、その結果から全故障での故障検出率を推測する手法である。
【００１８】
図４に示すように、１チップにマスクパターン密度の異なる３つのブロックＡ，Ｂ，Ｃが存在する場合を仮定する。この図では、ブロックＡのマスクパターン密度が最も高く、Ｂ，Ｃの順にマスクパターン密度が低くなっている。前述のように、マスクパターン密度が高いほど故障発生率が高い。本実施形態では、故障発生率、すなわち、マスクパターン密度に応じて各ブロックのサンプリング率を変化させる。図４に示すように、マスクパターン密度が高いブロックほどサンプリング率を大きくしている。
このように、集積回路のマスクパターンを作成した際のフロアプラン又はレイアウト情報から得られる物理的なパラメータ（マスクパターン密度）に基づいて、各ブロックの故障発生率を考慮に入れた適切なサンプリング率で故障検証を実施することにより、高精度の故障検出率を算出することができる。具体的な処理手順を図５のフローチャートに沿って説明する。
【００１９】
まず、故障検出装置５０５により１チップ全体の故障数５０６を算出し、１チップ全体の故障数に応じた１チップ全体のサンプリング率を５０７にて算出する。サンプリングによる故障検出率が、全ての故障での故障検出率に対して誤差ΔＰの範囲内に収まるためのサンプリング率Ｓは、下記の式から求めることができる。
【００２０】
ΔＰ＝３×ＳＱＲＴ（（１−Ｓ）ｋ（１−ｋ）／ＳＮ）
この式において、ＳＱＲＴ（  ）は平方根演算を表す。ｋは１チップの故障検出率、Ｎは全対象故障数である。ランダムにサンプリングした故障数をｎとすると、サンプリング率Ｓ＝ｎ／Ｎである。
【００２１】
一方、集積回路のマスクパターンを作成した際のフロアプラン又はレイアウトからブロック分割のための情報５０２を処理５０１にて入手し、この情報に基づいて各ブロックごとの故障数を５０８にて算出する。また、マスクパターンを作成した際のフロアプラン又はレイアウト情報から物理的なパラメータ（レイアウトパラメータ）としてマスクパターン密度を処理５０３で抽出し、得られたレイアウトパラメータ５０４と、５０８にて算出した各ブロックごとの故障数とを用いて、処理５０９にて各ブロックの故障の重みを算出する。次に処理５１０では、５０７にて算出した１チップでのサンプリング率を、５０９で算出した各ブロックの故障の重みに応じて補正し、各ブロックの故障の平均的な重みに応じたサンプリング率を決定する。次に故障検出装置５１１で各ブロックでのサンプリング率にて検証を行い、最後に処理５１２にて各ブロックで求めた検出率を集計して１チップでの故障検出率を導き出す。
【００２２】
以上のように本実施形態によれば、全故障からランダムに故障を抜き出して処理をすることにより効率的に、かつ物理的な故障発生率に応じた新たな故障検出率を算出することができる。本実施形態の方法は、マスクパターンのレイアウト密度が異なる複数の機能コアを１チップにする場合、又はプロセス密度の異なる機能コアを１チップにする場合に特に有効である。例えば、マスクパターン密度の高い乗算器及びメモリとマスクパターン密度の低いロジック回路とが１チップに含まれている場合、前者は後者に比べて故障発生率が高いので、前者のサンプリング率を後者のものより高くする。また、プロセスの異なるＤＲＡＭとロジック回路とを混載する場合、あるいはパターン微細化率の異なるブロックを混載する場合にも本実施形態を適用できる。
【００２３】
また、集積回路の１チップに故障検出率が既知のブロックを含む場合、あるいは故障検出率が既知のブロックを新たに追加して１チップとする場合は、図５の故障検出装置５１１による再検証を省略し、処理５１２にて各ブロックで求めた検出率を集計して最終１チップでの故障検出率を導き出すことができる。これにより、無駄な処理を省き、効率的に故障検出率を算出することができる。
【００２４】
【発明の効果】
以上のように本発明によれば、物理的な故障発生率に応じた新たな故障検出率を算出することにより、高精度かつ高効率の検査を可能ならしめ、故障の低減に寄与することができる。特に、マスクパターンのレイアウト密度が異なる複数の機能コアを１チップにする場合、又はプロセス密度が異なる複数の機能コアを１チップにする場合に有効である。
【図面の簡単な説明】
【図１】本発明による故障検証方法が適用される集積回路のマスクパターンの分布を模式的に例示する図
【図２】マスクパターン密度と故障発生率との関係を示すグラフ
【図３】本発明の第１の実施形態による故障検証方法のフローチャート
【図４】本発明の第２の実施形態による故障検証方法が適用される集積回路のブロック毎（ごと）のマスクパターン密度を模式的に提示する図
【図５】本発明の第２の実施形態による故障検証方法のフローチャート
【符号の説明】
３０１，５０５  故障検出装置
３０３，５０３  パラメータ抽出手段
３０５，５０５，５１１  故障検出率算出手段
【図１】
0003891456.tif 000002
【図２】
0003891456.tif 000003
【図３】
0003891456.tif 000004
【図４】
0003891456.tif 000005
【図５】
0003891456.tif 000006