(57)【特許請求の範囲】
【請求項１】
半導体集積回路に含まれ、ゲート遅延故障または断線遅延故障からなる遅延故障を過渡電源電流試験法で検出するためのテストパターン系列を生成する方法であって、
（ａ）被試験半導体集積回路において発生する可能性がある、全ての遅延故障を登録した故障リストを生成するステップと、
（ｂ）上記故障リストから１つずつ故障を選択された故障として逐次選択するステップと、
（ｃ）上記選択された故障に対応する上記半導体集積回路中の故障箇所である論理ゲートまたは信号線の出力に上記故障の初期信号論理値をあたえる初期化テストパターンと、上記故障箇所の出力信号の状態を変化させ、かつ上記故障箇所に入力が接続した論理ゲートの出力に、上記故障箇所の出力信号の状態変化を伝搬させるための伝搬テストパターンとからなるテストパターン系列を含意操作により生成するステップと、
（ｄ）上記テストパターン系列生成ステップで生成に成功したテストパターン系列を
テストパターンリストに登録するステップと、
（ｅ）上記故障選択ステップ（ｂ）において未選択の故障がなくなるまで、各ステップ（ｂ）から（ｄ）を繰り返すステップと、
を有することを特徴とするテストパターン生成方法。
【請求項２】
請求項１に記載したテストパターン生成方法において、
クライアントと複数のサーバとを用い、
クライアントは、上記故障リスト生成ステップ（ａ）を実行し、複数のサーバを起動し、上記故障リストを複数のサブ故障リストに分割して、複数のサーバに送信し、
上記各サーバは、上記故障選択ステップ（ｂ）を実行し、上記選択された故障に対し、上記テストパターン系列生成ステップ（ｃ）を実行し、生成に成功したテストパターン系列をクライアントに返送すると共に上記サブ故障リストに処理されていない他の故障が存在するか否かを確認し、
上記クライアントは、さらに、上記サーバから返送されたテストパターン系列をテストパターンリストに登録して上記登録ステップ（ｄ）を実行する、
ことを特徴とするテストパターン生成方法。
【請求項３】
請求項２に記載したテストパターン生成方法において、
上記サーバは、上記テストパターン系列生成ステップ（ｃ）でテストパターン系列を求めることができなかった場合は、処理する対象故障をクライアントに要求するステップを有することを特徴とするテストパターン生成方法。
【請求項４】
請求項１に記載したテストパターン生成方法において、
クライアントと複数のサーバとを用い、
クライアントは、上記故障リスト生成ステップ（ａ）を実行し、複数のサーバを起動し、
上記各サーバは、上記クライアントの上記故障リストから１つずつ故障を逐次選択して上記故障選択ステップ（ｂ）を実行し、
上記テストパターン系列生成ステップ（ｃ）を実行し、生成に成功したテストパターン系列をクライアントに返送し、
上記クライアントは、さらに、上記サーバから返送されたテストパターン系列をテストパターンリストに登録して上記登録ステップ（ｄ）を実行する、
ことを特徴とするテストパターン生成方法。
【請求項５】
請求項１乃至４の何れかに記載の方法において、
さらに、
（ｆ）上記テストパターンリストに登録したテストパターン系列をそれぞれ用いて、上記半導体集積回路に対し過渡電源電流故障シミュレーションをおこない、上記用いたテストパターン系列に対応して過渡電源電流試験で検出可能な故障を被検出故障としてリストに格納する被検出故障リスト作成ステップと、
（ｇ）上記被検出故障リストに登録した故障と同じ故障が、上記被検出故障リスト生成ステップ（ｆ）で生成した故障リスト中に存在するとき、その故障を故障リストから削除するステップとを備え、
上記故障リスト中に残存する故障のうちから、１つずつ故障を選択された故障として逐次選択して、上記選択ステップ（ｂ）を実行する、
ことを特徴するテストパターン生成方法。
【請求項６】
請求項１に記載したテストパターン生成方法において、
クライアントと複数のサーバとを用い、
クライアントは、上記故障リストを複数に分割したサブ故障リストを生成して上記故
障リスト生成ステップ（ａ）を実行し、生成したサブ故障リストを上記複数のサーバにそれぞれ送信し、
上記各サーバは、上記クライアントから送信された上記サブ故障リストを基にして、上記故障選択ステップ（ｂ）を実行し、
上記テストパターン系列生成ステップ（ｃ）を実行し、生成に成功したテストパターン系列を上記クライアントに返送し、
上記クライアントは、さらに上記サーバから返送されたテストパターン系列をテストパターンリストに登録して上記登録ステップ（ｄ）を実行する、
ことを特徴とするテストパターン生成方法。
【請求項７】
請求項１または４、又は６に記載したテストパターン生成方法において、
上記テストパターン系列生成ステップ（Ｃ）でテストパターン系列を求めることができなかった場合は、上記故障選択ステップ（ｂ）に移ることを特徴とするテストパターン生成方法。
【請求項８】
請求項１乃至７の何れかに記載したテストパターン生成方法において、
上記テストパターン系列生成ステップ（Ｃ）は、上記対象故障に対応する故障箇所に上記故障を活性化するための初期値をあたえる初期化テストパターンを求めるステップと、  上記故障箇所が上記初期値に縮退する故障を仮定し、上記故障箇所を入力とする次段の論理ゲートの出力に上記縮退故障を伝搬する伝搬テストパターンを求めるステップとよりなることを特徴とするテストパターン生成方法。
【請求項９】
請求項１乃至７の何れかに記載の方法において、
上記テストパターン系列生成ステップ（Ｃ）は、上記選択された故障に対応する上記半導体集積回路中の故障箇所である論理ゲートまたは信号線の出力に、上記故障に対応する５値論理システムにおける信号を出力させ、かつ上記故障箇所に入力が接続した論理ゲートの出力に、上記信号の影響を伝搬させる５値論理システムにおけるテストパターン系列を含意操作により生成するステップであることを特徴とするテストパターン生成方法。
【請求項１０】
半導体集積回路のパス遅延故障を過渡電源電流試験法で検出するための所望のテストパターン系列を生成する方法であって、
（ｈ）被試験半導体集積回路の全ての可能性があるパス遅延故障の故障リストを生成する故障リスト生成ステップと、
（ｉ）２つ以上のテストパターンからなる上記半導体集積回路に印加すべきテストパターン系列を発生するテストパターン系列生成ステップと、
（ｊ）上記印加すべきテストパターン系列を上記半導体集積回路に与えた場合の遷移シミュレーションをおこない、上記半導体集積回路内部の信号線に生じる遷移信号値列を計算する遷移信号値列計算ステップと、
（ｋ）上記遷移信号値列を用いて、上記印加すべきテストパターン系列を上記半導体集積回路に与えた場合に過渡電源電流試験で検出可能なパス遅延故障を被検出故障として、被検出故障リストに登録する被検出故障リストを作成するステップと、
（ｍ）上記被検出故障リストに登録された被検出故障で上記故障リスト中に存在しているものを上記故障リストから削除するステップと、
（ｎ）上記故障リスト中に存在している被検出故障の検出に用いられた、上記印加すべきテトパターン系列を所望のテストパターン系列としてテストパターン系列リストに登録する登録ステップと、
（ｏ）上記パターン系列生成ステップに戻り、上記登録ステップまでを繰り返すステップと、を有することを特徴とするテストパターン生成方法。
【請求項１１】
請求項１０に記載したテストパターン生成方法において、
クライアントと複数のサーバとを用い、
クライアントは、
上記故障リスト生成ステップ（ｈ）を行い、かつ、
上記テストパターン系列生成ステップ（ｉ）を行い、複数の印加すべきテストパターン系列を生成し、
この印加すべきテストパターン系列を、処理をおこなっていない各サーバに、１つずつ繰り返し送信し、
上記各サーバは、
上記遷移信号値列計算ステップ（ｊ）をおこない、クライアントから送信された印加すべきテストパターン系列に基き遷移信号値列を計算し、
上記被検出故障リスト生成ステップ（ｋ）を行い、
上記削除ステップ（ｍ）を行い、上記クライアントの上記故障リスト中に存在する上記被検出故障リストに含まれる被検出故障を上記故障リストから削除し、かつ、
上記登録ステップ（ｎ）を行い、上記クライアントのテストパターン系列リストに対し、上記所望のテストパターン系列を登録し、かつ、その処理終了に際し上記クライアントに通知することを特徴とするテストパターン生成方法。
【請求項１２】
請求項１０に記載したテストパターン生成方法において、
クライアントと複数のサーバとを用い、
クライアントは、
上記故障リスト生成ステップ（ｈ）を行い、かつ、
上記テストパターン系列生成ステップ（ｉ）を行い、
複数の印加すべきテストパターン系列を生成し、
上記各サーバは、
上記クライアントが印加すべきテストパターン系列を１つずつ繰り返し取り込み、上記遷移信号値列計算ステップ（ｊ）をおこない、その取り込んだ印加すべきテストパターン系列に基き遷移信号直列を計算し、上記被検出故障リスト生成ステップ（ｋ）を行い、上記削除ステップ（ｍ）を行い、
上記クライアントの上記故障リスト中に存在する被検出故障を上記故障リストから削除し、かつ、上記登録ステップ（ｎ）を行い、上記クライアントのテストパターン系列リストに対し、上記所望のテストパターン系列を登録することを特徴とするテストパターン生成方法。
【請求項１３】
請求項１０に記載したテストパターン生成方法において、
クライアントと複数のサーバとを用い、
上記クライアントは、
上記故障リスト生成ステップ（ｈ）を行い、かつ、
上記テストパターン系列生成ステップ（ｉ）を行って、全ての可能な印加すべきテストパターン系列のリストを作成し、この全ての可能な印加すべきテストパターン系列のリストを複数のテストパターン系列サブリストに分割し、かつ、それらサブリストを複数のサーバに送信し、
上記各サーバは、
クライアントから送信されたサブリストから印加すべきテストパターン系列を１つずつ繰り返して取り出し、上記遷移信号値列計算ステップ（ｊ）を行い、その取り出した印加すべきテストパターン系列に基き遷移信号値列を計算し、上記被検出故障リスト生成ステップ（ｋ）を行い、上記削除ステップ（ｍ）を行い、
上記クライアントの上記故障リスト中に存在する被検出故障を上記故障リストから削除し、上記登録ステップ（ｎ）を行い、上記クライアントのテストパターン系列リストに対し上記所望のテストパターン系列を登録し、上記テストパターン系列サブリスト内に印加すべきテストパターン系列がなくなると印加すべきテストパターン系列の取り出し処理を停止するとともに処理終了を通知することを特徴とするテストパターン生成方法。
【請求項１４】
請求項１１乃至１３の何れかに記載の方法において、クライアントは、上記故障リスト内のパス遅延故障数が所定値以下になった場合、処理をおこなっている複数のサーバの処理を直ちに終了させることを特徴とするテストパターン生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は半導体集積回路試験に用いられるテストパターンの生成方法にかかわり、とくに、ゲート遅延故障やゲート遅延故障を生じる断線故障、およびパス遅延故障を過渡電源電流信号を用いて検出するためのテストパターン系列を生成する方法に関する。
【０００２】
【従来の技術】
従来、被試験回路における論理ゲートの遅延時間が異常となるゲート遅延故障（ｇａｔｅ  ｄｅｌａｙ  ｆａｕｌｔ）を試験するためのテストパターンは、被試験論理ゲートの出力をある信号値（初期論理値）に初期化するためのテストパターンと被試験論理ゲートの出力が上記初期論理値に固定してしまう故障（縮退故障）をテストするためのテストパターンを求めることにより生成されていた。図１（ａ）に、被試験集積回路の一例を示す。この回路は入力端子ｘ2 とｘ3 がＮＡＮＤゲートＧ1 の入力側に接続され、また入力端子ｘ3 とｘ4 がＮＡＮＤゲートＧ2 の入力側に接続され、ＮＡＮＤゲートＧ1 とＧ2 の各出力がＮＡＮＤゲートＧ3 へ供給され、ＮＡＮＤゲートＧ3 の出力と入力端子ｘ1 の入力がＮＯＲゲートＧ4 に供給され、ＮＡＮＤゲートＧ3 の出力と入力端子ｘ5 の入力がＮＡＮＤゲートＧ5 へ供給され、ＮＯＲゲートＧ4 とＮＡＮＤゲートＧ5 の各出力がＮＯＲゲートＧ6 へ供給され、ＮＯＲゲートＧ6 の出力側が出力端子ｚ1 に接続される。
【０００３】
この被試験集積回路において、論理ゲートＧ3 における立ち上がり遷移が遅くなるゲート遅延故障（ｓｌｏｗ−ｔｏ−ｒｉｓｅ）に対するテストパターン生成は、はじめに図１（ａ）中に示すように故障ゲートＧ3 の出力に初期値“０”をあたえるテストパターンｘ1 ＝ｘ，ｘ2 ＝ｘ，ｘ3 ＝０，ｘ4 ＝ｘ，ｘ5 ＝ｘ，ｘは“０”と“１”の何れでもよいことを示す（このテストパターンを以下ｖ１ ＝（ｘｘ０ｘｘ）のように表記する）を求め、つぎに故障ゲートＧ3 の出力が設定した初期値“０”に固定してしまう縮退故障を仮定し、この縮退故障を集積回路の出力信号線で検出するためのテストパターンｖ２ ＝（０ｘ１１１）（図１（ｂ））を求めることによりおこなわれる。したがって、ゲートＧ3 におけるｓｌｏｗ−ｔｏ−ｒｉｓｅ故障を検出するテストパターン系列はＴ＝＜ｖ１ ，ｖ２ ＞＝＜“ｘｘ０ｘｘ”，“０ｘ１１０”＞と求められる。ゲート遅延故障に対するテストパターン生成法については、たとえば、E.S.Park and M.R.Mercer,“An Efficient Delay Test Generation System for Combinational Logic Circuits, ”Transactions on Computer-Aided Design,11(7),pp.926-938,1992 やU.Mahlstedt, “DELTEST : Deterministic Test Generation for Gate Delay Faults,”Proceedings of IEEE International Test Conference,pp.972-980,1993などに記載されている。
【０００４】
また回路における信号伝搬経路をパス（paths)と呼ぶ。パスの入力信号線から出力信号線まで信号が伝搬する時間をパス遅延時間（path delay time)と呼び、パス遅延時間が所定の値より大きくなると回路は正常に動作しなくなる（これをパス遅延故障（path delay fault）と呼ぶ）。従来、集積回路内のパス遅延故障を試験するためのテストパターン系列（一般に、遅延故障を試験するためには２つのテストパターンが必要であり、これら二つのテストパターンはテストベクトルペアまたはテストパターン系列と呼ばれる）は、図２に示す５値論理（five logic value system)を用い、図３に示す含意表（implication table)や図４に示す経路活性化表（sensitizing table)にしたがって、被試験回路内の各信号線に上記論理値を割り当てることによって生成されていた。図２は、Ｓ０はパターンｖ１ とｖ２ の何れでも“０”でありＳ１はパターンｖ１ とｖ２ の何れでも“１”であり、Ｕ０はパターンｖ１ で“ｘ”、パターンｖ２ で“０”であり、Ｕ１はパターンｖ１ で“ｘ”、パターンｖ２ で“１”、ＸＸはパターンｖ１ とｖ２ の何れでも“ｘ”であることを示す。
【０００５】
図３（ａ）はＡＮＤゲートの二つの入力端子ｘ1 ，ｘ2 の各入力がそれぞれＳ０，Ｕ０，Ｓ１，Ｕ１，ＸＸの何れかとなった場合の各組み合せにおける出力の状態を示している。例えばｘ1 がＳ０，ｘ2 がＵ０はｖ１ ＝＜０，ｘ＞，ｖ２ ＝＜０，０＞であるから出力は＜０，０＞＝Ｓ０となることを示している。図３（ｂ）はＮＯＲゲートの二つの入力端子ｘ1 ，ｘ2 の各入力がそれぞれＳ０，Ｕ０，Ｓ１，Ｕ１，ＸＸの何れかとなった場合の各組み合せにおける出力の状態を示し、図３（ｃ）はインバータの入力端子ｘの入力がＳ０，Ｕ０，Ｓ１，Ｕ１，ＸＸである場合の出力端子ｚの出力がどのようになるかを示している。
【０００６】
また図４（ａ）はＡＮＤゲートの一方の入力が“０”から“１”に変化した時に、出力の状態が変化する、つまり回路を活性化するのに必要な他方の入力信号値を示しており、この場合はＵ１つまり“ｘ”から“１”にすればよい。また、図４（ｂ）に示すようにＡＮＤゲートの一方の入力が“０”から“１”に変化する場合は、出力の状態を変化させる（回路を活性化する）ために他方の入力はＳ１、つまり“１”のままにすればよい。図４（ｃ）にＡＮＤゲート又はＮＡＮＤゲートおよびＯＲゲート又はＮＯＲゲートの各一方の入力が“０”から“１”に立上った場合と、“１”から“０”に立下った場合における、これらゲートを活性化するのに必要な他方の入力信号値をそれぞれ示す。
【０００７】
いま図５（ａ）の集積回路は、入力端子ｘ1とｘ2の各入力がＡＮＤゲートＧ1に供給され、入力端子ｘ3 とｘ4 の各入力がＯＲゲートＧ2 に供給され、入力端子ｘ1 の入力がインバータゲートＧ3 に供給され、インバータゲートＧ3 の出力と入力端子ｘ5 の入力がＡＮＤゲートＧ4 に供給され、ゲートＧ1 とＧ2 の各出力がＮＯＲゲートＧ5 へ供給され、ゲートＧ5 とＧ4 の出力がＯＲゲートＧ6 へ供給されている。この回路において図中に太線で示すパスＰ、つまり入力端子ｘ3 −Ｇ2 −Ｇ5 −Ｇ6 −出力線におけるパス遅延故障に対するテストパターンを生成するには、まず、図５（ａ）中に示すようにこの被試験パスＰ上の各信号線に遷移信号を設定し、つぎに図５（ｂ）に示すようにパスＰ上の論理ゲートのパスＰ上にない入力信号線（サイド入力、side-inputs)に図４（ｃ）に示した経路活性化表を用いてパスＰの各ゲートを活性化する信号値をあたえ、最後に図６に示すように各信号線にあたえた信号値をもとに図３に示す含意表を用いて各入力信号線にあたえる信号値を決定する。図５および図６の例では、パスＰのパス遅延故障を試験するテストパターン系列はＴ＝＜ｖ１，ｖ２＞＝＜“Ｓ０ ＸＸ Ｕ１ Ｓ０ Ｕ０”＞＝＜“０ｘ００ｘ”，“０ｘ１００”＞と求められる。パス遅延故障に対するテストパターン生成法については、たとえば、C.J.Lin and S.M.Reddy,“On Delay Fault Testing in Logic Circuits, ”Transactions on Computer-Aided Desing,CAD-6(5),pp.694-703,1987（文献１）やK.-T.Cheng,A.Krstic,and H.-C.Chen, “Generation of High Quality Tests for Robustly Untestable Path Delay Faults, ”Transactions on Computers,45(12),pp.1379-1392,1996などに記載されている。
【０００８】
【発明が解決しようとする課題】
しかし、図１を参照して説明したテストパターン生成方法は、基本となる試験法が被試験回路の出力端子（ピン）の電圧信号を観測する手法であるため、故障の影響を被試験回路の出力端子（ピン）まで伝搬しなければならないという制約があり、テストパターン生成が困難であった。とくに、遅延時間の増分が被試験回路のクロック周期以下である微小なゲート遅延故障（small gate delay fault）の試験には、故障の影響を観測するために、故障ゲートの出力信号を、もっとも遅延時間が大きい信号伝搬パスをとおして出力端子（ピン）に伝搬しなければならず、故障を活性化する２つのテストパターン（テストベクトルペアまたはテストパターン系列と呼ぶ）を生成することは非常に困難である。
【０００９】
また、従来のテストパターン生成方法は、ゲート遅延故障および断線故障の影響を出力信号線まで伝搬しなければならないため、テストパターン生成の含意操作において信号線の論理値に矛盾が生じる確率が高くなり、テストパターン生成において信号設定のやり直し（バックトラック）回数が大きくなり、テストパターン生成に時間がかかるという問題がある。
このため、集積回路のゲート遅延故障やゲート遅延故障を引き起こす断線故障に対し、テストパターン系列を容易にかつ高速に生成できるテストパターン生成方法が必要となる。
【００１０】
また図５及び図６を参照して説明したテストパターン生成方法は、被試験パスを活性化させるために被試験パス上のすべての論理ゲートのサイド入力（被試験パス上にないすべての入力信号線）に非制御入力値（non-controlling input value,各論理ゲートの出力を一意的に決定できない論理値、たとえば、ＡＮＤゲートやＮＡＮＤゲートの非制御入力値は論理値“１”であり、ＯＲゲートやＮＯＲゲートの非制御入力値は論理値“０”である）を設定するという制約と、パス遅延故障試験をロバストにおこなう（試験結果が出力電圧サンプリングのタイミングに依存しない）テストパターン系列を生成するために被試験パスおよびサイド入力にハザード（ひげ状の電圧パルス）を生じないという制約を満たさなければならない。この結果、テストパターン系列を生成することが非常に困難であった。さらに、テストパターン生成できないパス遅延故障の数が大きくなり、パス遅延故障の故障検出率が低いという問題がある。
【００１１】
このため、集積回路のパス遅延故障に対し、テストパターン系列を容易にかつ効率的に生成できるテストパターン生成方法が必要となる。
この発明の目的は、回路の過渡現象を試験できる可観測性の高い過渡電源電流（ＩDDT ，transient power supply current）試験法を用いることによって、半導体集積回路内の遅延故障や断線故障に対するテストパターン系列を容易にかつ高速に生成できるテストパターン生成方法を提供することにある。
【００１２】
この発明の他の目的は、回路の過渡現象を試験できる可観測性の高い過渡電源電流（ＩDDT ,transient power supply current)試験法を用いることによって、半導体集積回路内のパス遅延故障に対するテストパターン系列を容易に生成でき、効率的なテストパターン系列を作成できるテストパターン生成方法を提供することにある。
【００１３】
【課題を解決するための手段】
第１発明の半導体集積回路をテストするテストパターン系列を生成する方法の一例においては、被試験半導体集積回路に対する故障リストを生成し、上記故障リストからテストパターン生成をおこなう対象故障を選択ステップで選択し、上記対象故障に対応する故障箇所に上記故障を活性化するための初期値をあたえる初期化テストパターンを求め、上記故障箇所が上記初期値に縮退する故障を仮定し、上記故障箇所を入力とする次段の論理ゲートの出力に上記縮退故障を伝搬する伝搬テストパターンを求め、上記求めた初期化テストパターンと伝搬テストパターンで構成されるテストパターン系列をテストパターンリストに登録し、上記故障リストに処理されていない故障が存在しなくなるまで上記選択ステップ以下の処理を繰り返す。
【００１４】
上述におけるテストパターン系列の生成は、上記対象故障に対応する故障箇所に上記故障を活性化する、５値論理システムの信号値をあたえ、上記故障箇所を入力とする次段の論理ゲートの出力に上記信号値を伝搬するテストパターン系列を求めてもよく、その他の手法によってもよい。
更にそれぞれ電子計算機を備えるクライアントと複数のサーバとを用いて、クライアントで上記故障リストの生成を行い、その故障リストを複数のサブ故障リストに分割して複数のサーバに送信し、各サーバでクライアントから送信された上記サブ故障リストからテストパターン生成をおこなう対象故障を選択して、上記対象故障に対応する故障箇所に上記故障を活性化する信号を与え、その故障箇所を入力とする次段の論理ゲートに信号をテストパターン系列を求めてクライアントに返送し、サブ故障リストに処理されていない故障が存在しなくなると処理終了をクライアントへ通知し、クライアントは複数のサーバから返送されたテストパターン系列をテストパターンリストに登録し、すべてのサーバからテストパターン生成処理が終了したという通知を受信して処理を終了する。
【００１５】
このように分散処理によりテストパターン系列を高速に生成できる。
上述において登録するテストパターン系列を用いて過渡電源電流故障シミュレーションをおこない、上記テストパターン系列で検出可能な故障のリスト（被検出故障リスト）を作成し、その被検出故障リスト内の故障を上記故障リストから削除する。
このようにして故障リスト内の故障処理の完了を速くすることができる。
【００１６】
クライアントと複数のサーバを用いる場合に、故障リストを分割して一度にサーバに送ってしまうことなく、処理の済んだサーバから逐次１つずつ送って処理させ、特にサーバから返送されたテストパターン系列、つまり登録するテストパターン系列を用いて過渡電源電流故障シミュレーションをおこない、上記テストパターン系列で検出可能な故障のリスト（被検出故障リスト）を作成して、上記被検出故障リスト内の故障を上記故障リストから削除することにより、全体としての処理速度を速めてもよい。あるいはサーバがクライアントの故障リストから故障を選択して処理し、かつ故障リストに処理していない故障があるかを調べるようにしてもよい。
【００１７】
また、上記テストパターン系列を生成するステップは、ゲート遅延故障を単位としてテストパターン系列を生成することが望ましい。
また、上記テストパターン系列を生成するステップは、断線故障を単位としてテストパターン系列を生成することを特徴とすることが望ましい。
第２発明のテストパターン生成方法においては被試験半導体集積回路に対するパス遅延故障のリスト（故障リスト）を生成し、上記半導体集積回路にあたえる２つ以上のテストパターンからなるテストパターン系列を生成し、このテストパターン系列に対し、被試験半導体集積回路について、遷移シミュレーションをおこない、回路内部の信号線に生じる遷移信号値列を計算し、上記遷移シミュレーションにより計算された各信号線の遷移信号値列を用いて上記テストパターン系列により過渡電源電流試験で検出可能な故障のリスト（被検出故障リスト）を生成し、上記被検出故障リスト内の故障を上記故障リストから削除し、上記テストパターン系列をテストパターン系列リストに登録し、上記故障リスト内のパス遅延故障が所定数以下になるまで、上記テストパターン系列の生成以下の処理を行う。
【００１８】
この場合もクライアントと複数のサーバを用いて、クライアントでパス遅延故障のリスト（故障リスト）を生成し、テストパターン系列を生成して処理をおこなっていない１以上のサーバにそれぞれ１つずつテストパターン系列を送信し、各サーバでクライアントから送信されたテストパターン系列に対し遷移シミュレーションをおこない、回路内部の信号線に生じる遷移信号値列を計算し、その遷移信号値列を用いて上記テストパターン系列により過渡電源電流試験で検出可能な故障のリスト（被検出故障リスト）を生成し、上記被検出故障リスト内の故障を上記故障リストから削除し、上記故障リスト内のパス遅延故障数が所定値以下になるとクライアントが処理終了を各サーバに通知する。更にクライアントで予め十分な数のテストパターン系列のリストを生成し、これを複数のサブテストパターンに分別して、それぞれ各サーバに送信し、各サーバはそのサブテストパターン系列リストからテストパターン系列を選んで処理をするようにしてもよい。
[作用]
以下では、もっとも一般的な半導体集積回路であるＣＭＯＳ集積回路を例に説明する。
ＣＭＯＳ論理ゲートの過渡電流
図７に、ＣＭＯＳインバータの過渡応答（transient response)を示す。この過渡応答は、回路シミュレータで求めた。図７ａは、過渡状態における入力電圧ＶINに対する出力電圧ＶOUT の応答と、電源からＣＭＯＳインバータに流れ込む電流ＩDDの応答である。この電流を過渡電流（transient current)と呼ぶ。インバータの入力が“１”から“０”に遷移するとき（図７ｂ）、入力電圧がｎ−ＭＯＳのしきい電圧より高くｐ−ＭＯＳのしきい電圧より低いあいだ、ｎ−ＭＯＳとｐ−ＭＯＳが一瞬だけ同時にオンとなり、電源からグランドへ貫通電流（short circuit current)ＩSが流れる。このとき、インバータの出力信号線は“０”から“１”に遷移するため、貫通電流と同時にインバータの出力信号線に接続された寄生容量（parasitic capacitance)Ｃloadへの充電（capacitance charging）にともなう電流ＩCが電源端子ＴVDから流れる。したがって、インバータの入力に立ち下がり遷移が生じるとき（添字“ｆ”で記述する）、インバータに流れ込む過渡電流ＩGfは、貫通電流ＩSfと充電電流（capacitance charging current）ＩC の和であたえられる。
【００１９】
ＩGf＝ＩSf＋ＩC                                           （１）
一方、入力が“０”から“１”に遷移するとき（出力が“１”から“０”に遷移するとき（添字“ｒ”で記述する）（図７ｃ））、出力信号線に接続された寄生容量Ｃloadからの放電（capacitance discharging)がおこり、放電電流（capacitance discharging current)ＩD が生じるが、電源端子ＴVDからインバータへ流れ込む電流ＩGrは貫通電流ＩSrだけである。このため、この電流ピークは、立ち下がり遷移時の過渡電流ＩGfピークよりわずかに小さくなる。
【００２０】
ＩGr＝ＩSr                                                （２）
ＣＭＯＳインバータの伝達特性は、図８ａに示すように入力電圧ＶINの変化に対し三角パルス状の電流ＩS を示す。このため、ＣＭＯＳインバータの入力が立ち上がり遷移をもつとき、ＣＭＯＳインバータを流れる貫通電流波形ＩSrは、入力電圧ＶINがランプ状に遷移すると仮定すると、図８ｂにおいて“ＩS ”で示した三角パルスで近似できる。また、図８ｂに示した入力信号の立ち上がり遷移に対するＣＭＯＳインバータの貫通電流波形ＩSrは、つぎのような近似式であたえられる。
【００２１】
【数１】
0004488595.tif 000002
【００２２】
ここで、ＩSmaxはＣＭＯＳインバータに流れ込む過渡電流（貫通電流）の最大値、ＶDDは電源電圧、ＶTHNはｎ−ＭＯＳトランジスタのしきい電圧、ＶTHPはｐ−ＭＯＳトランジスタのしきい電圧、ｔrは入力信号の立ち上がり遷移時間である。ただし、ＶTHPは絶対値で示した。また、近似式を簡略化するため、入力電圧ＶINの遷移開始時刻は０とし、遷移終了時刻ｔrで入力電圧はＶDDになるとした。
入力信号の立ち下がり遷移に対するＣＭＯＳインバータの貫通電流波形ＩSf についても同様に、
【００２３】
【数２】
0004488595.tif 000003
【００２４】
と求めることができる。ここで、ｔf は入力信号の立ち下がり遷移時間である。念のためにこの場合の電源電流の立ち上がり開始時刻、最大値ＩSmaxの時刻、立ち下り終了時刻を図８ｂに、括弧を付けて示した。
さらに、ＣＭＯＳインバータの出力信号線の寄生容量Ｃloadへの充電電流ＩC は、出力信号線の電圧変化をｖout(t)とすると次式であたえられる。
【００２５】
【数３】
0004488595.tif 000004
【００２６】
これらの式は、インバータ以外の論理ゲートに対しても同様に求めることができる。
論理ゲートに流れ込む過渡電流ＩGは、ＩCがＩSより十分小さいと仮定すると、図８ｂにＩSで示すような三角パルスで近似できる。実際、ＣＭＯＳインバータの過渡電流波形ＩGは、図７ａに示すような三角パルスを示す。また、ＩGが最大値ＩSmaxとなるのは、入力電圧ＶINが論理ゲートのスイッチング電圧ＶSPになったときである。すなわち、図８ｂに示すように、ＩGがピークとなる時刻と論理ゲートの入力遷移の時刻が一致する。論理ゲートは遅延時間をもつため、論理ゲートの出力遷移の時刻は入力遷移の時刻よりわずかに遅れる。すなわち、ＩGがピークとなる時刻は論理ゲートの出力遷移の時刻よりわずかに先行する。この場合、過渡電流波形ＩGの立ち下がりエッジ（立ち下り部分）が、出力遷移の時刻に一致すると考えることができる。逆に、ＩCがＩSより大きいとき、過渡電流波形のピークはＩCのピークと一致する。充電電流ＩCは出力信号線の電圧遷移に関係するため、ＩGのピークは論理ゲートの出力の遷移時刻とほぼ一致する。
【００２７】
また、論理ゲートの過渡電流波形ＩG のパルス幅は、式（１），（２），（３），（４）より、入力電圧の遷移時間（たとえば立ち上がり遷移時間ｔr ）に比例する。ここで、入力電圧の遷移時間の変化に対して出力電圧の遷移時間の変化は十分小さいため、式（１）におけるＩC の項は無視した。
さらに、式（３）および式（４）より、貫通電流ＩSrおよびＩSfの時間積分値ＱSrおよびＱSfは、それぞれ、
【００２８】
【数４】
0004488595.tif 000005
【００２９】
であたえられる。したがって、スイッチングのとき論理ゲートを流れる貫通電流の積分値ＱS は、
【００３０】
【数５】
0004488595.tif 000006
【００３１】
であたえられる。ここで、ｔT は入力信号の遷移時間である。すなわち、論理ゲートに流れ込む貫通電流ＩS（ＩSrまたはＩSf）の積分値ＱSは、論理ゲートの入力遷移時間ｔTに比例する。また、ＱSは、入力信号の遷移方向が立ち上がり遷移であるか、立ち下がり遷移であるかに関係ないことがわかる。
ＣＭＯＳインバータの出力負荷容量Ｃloadへの充電電流ＩCの積分値ＱCは式（５）より
【００３２】
【数６】
0004488595.tif 000007
【００３３】
であたえられ、ＣＭＯＳインバータの入力遷移時間ｔT には依存しない。
したがって、論理ゲートを流れる過渡電流ＩGfおよびＩGrの積分値ＱGfおよびＱGrは、式（１），（２），（８），（９）より、
【００３４】
【数７】
0004488595.tif 000008
【００３５】
ともとめられる。すなわち、論理ゲートの過渡電流の積分値は論理ゲートの入力遷移時間に比例する。
ＣＭＯＳ集積回路の過渡電源電流（ＩDDT ，transient power supply current）
ＣＭＯＳ集積回路の電源電流は、ＣＭＯＳ集積回路に流れ込む電源電流であり、集積回路内の各論理ゲートを流れる電流の和で表される。
図９ａに示すＣＭＯＳ集積回路は、図７に示したインバターを直列に４つ（Ｇ1 ，Ｇ2 ，Ｇ3 ，Ｇ4 ）組み合わせたものであり、各インバータを流れる過渡電流（ＩG1，ＩG2，ＩG3，ＩG4）は通常一つの電源から供給される。このため、集積回路の過渡電源電流ＩDDT 応答は、図９ｂに示すように各論理ゲートを流れる過渡電流の和として表され次式で求まる。
【００３６】
ＩDDT ＝Σn=1 N ＩGn                                        （12)
ここで、Ｎは入力されたテストパターン系列によりスイッチングする論理ゲートの数であり、図９ａの例ではＮ＝４である。このため、集積回路内に論理ゲートの過渡電流を変化させる故障があり、その故障を活性化できるテストパターン系列が存在すれば、集積回路のＩDDT を観測することにより故障を検出することができる。
また、過渡電源電流ＩDDT の積分値ＱDDT も、各論理ゲートを流れる電流の積分値ＱGn（１＜ｎ＜Ｎ）の和として表される。
【００３７】
【数８】
0004488595.tif 000009
【００３８】
図９の例では、過渡電源電流ＩDDT の積分値ＱDDT は、各インバータを流れる電流の積分値（ＱG1，ＱG2，ＱG3，ＱG4）の和として表される。したがって、集積回路内に論理ゲートの過渡電流やその時間積分値を変化させる故障があり、その故障を活性化できるテストパターンがあれば、集積回路の過渡電源電流ＩDDT の積分値ＱDDT を観測することにより故障を検出することができる。
ゲート遅延故障（gate delay fault）の検出
ゲート遅延故障は、論理ゲートの入力から出力までの信号伝搬遅延が大きくなる故障である。論理ゲート出力の立ち上がり遷移が遅くなる故障を立上り遅れ（slow-to-rise）故障と呼び、逆に立ち下がり遷移が遅くなる故障を立下り遅れ（slow-to-fall）故障と呼ぶ。ＣＭＯＳ集積回路内の論理ゲートにゲート遅延故障が生じると、論理ゲートの出力遷移時刻が遅れる。このため、この故障論理ゲートの出力を入力とする論理ゲートの過渡電流ピークのタイミングが遅くなる。したがって、あるテストパターン系列が故障論理ゲートを活性化し上記故障ゲートにより駆動される論理ゲートをスイッチングさせることができれば、ＣＭＯＳ集積回路のＩDDT における電流ピークの遅れを観測することにより上記ゲート遅延故障を検出することができる。
断線故障(open  fault)の検出
つぎに、遅延故障を生じる断線故障について定義する。断線故障は、故意でない電気的不連続であり、ある信号線を二つ以上の異なる信号線に分割する。断線故障には、金属の欠損や酸化膜による断線コンタクト、パターニング不良やエッチング不良などによる金属配線断線、マスク不良などによる拡散層あるいはポリシリコンにおける断線などが含まれる。また、断線故障は、図１０ａに示すように“論理故障”を生じる断線故障と、図１０ｂに示すように“遅延故障”を生じる断線故障の二つのタイプに分類できる。論理故障を生じる断線故障は、断線の規模が大きく故障の両端の信号線に電圧をあたえても電流が流れないため、信号遷移に伴う寄生容量の充放電がおこなわれず論理がある一定の値に固定される論理故障を生じる。これに対し、遅延故障を生じる断線故障では、故障の両端の信号線に電圧をあたえると微小な電流が流れるが、その電流量は正常時より小さいため、信号遷移に伴う寄生容量の充放電が遅くなり、回路の遅延時間が増加する。遅延故障を生じる断線故障には、コンタクトなどの不良により信号線間の抵抗値が正常値より大きくなってしまったり、信号線に生じた不良などにより信号線の抵抗値が正常値より大きくなってしまう抵抗性断線故障と、トンネル効果により断線故障を通してごく微量なリーク電流が流れる非常に小さな（亀裂の幅が１００ｎｍより小さい）微小断線故障がある。微小断線故障を流れるトンネル電流については、例えば、C.L.Henderson,J.M.Soden,and C.F.Hawkins,“The Behavior and TestingImplications of CMOS IC Logic Gate Open Circuits,”Proceedings of IEEE International Test Conference,pp.302-310,1991.に記載されている。この明細書では、遅延故障を生じる断線故障を対象とし、これを単に断線故障と呼ぶ。
【００３９】
断線故障は、故障をとおして小さな電流が流れるため、大きな抵抗値の抵抗素子Ｒopenでモデル化できる。図１１ａに、断線故障をもつＣＭＯＳ集積回路の例を示す。このＣＭＯＳ集積回路は、２つのインバータＧ1 ，Ｇ2 によって構成されており、インバータＧ1 とＧ2 を接続する信号線Ｍに断線故障をもつ。その断線箇所は抵抗Ｒopenで接続されていると等価的に考えられる。インバータＧ1 がスイッチングし、信号線Ｍに信号遷移が生じるとき、断線故障の存在によりインバータＧ2 の入力寄生容量Ｃinの充電または放電に要する時間（断線故障の抵抗値と寄生容量の積に比例する）が長くなるため、等価抵抗素子ＲopenのインバータＧ2 側の信号線Ｍ′の信号遷移が遅くなる（図１１ｂ）。このため、入力に断線故障をもつインバータＧ2 の過渡電流波形は図１２に示すように正常なインバータの過渡電流波形に比べ電流パルスの幅、および、過渡電流の時間積分値が大きくなる。したがって、上記ＣＭＯＳ集積回路のＩDDTまたはＱDDTを観測することによりインバータＧ2の入力段に存在する断線故障を検出することができる。インバータＧ1の出力段における断線故障は、インバータＧ2の入力段における断線故障と等価であり、同様に検出可能である。一般に、集積回路のすべての信号線における断線故障に対し、あるテストパターン系列で断線故障を活性化し上記断線故障により駆動される論理ゲートをスイッチングさせることができれば、集積回路のＩDDTまたはＱDDTを観測することにより上記断線故障を検出することができる。
パス遅延故障
信号が伝搬する集積回路内の経路をパス（paths)と呼ぶ。パスの始点（入力信号線）から終点（出力信号線）までの遅延時間（これをパス遅延時間（path delay time)と呼ぶ）が既定値より大きく（小さく）なると、集積回路は異常な動作を示す。これをパス遅延故障（path delay faults）と呼ぶ。つぎに、パス遅延故障について定義する。
【００４０】
ＣＭＯＳ論理回路において、２つのテストパターンｖ１，ｖ２をもつテストパターン系列Ｔ＝＜ｖ１，ｖ２＞（パターンｖ１の次にパターンｖ２が続くことをあらわす）を用いてパスＰ＝｛ｇ0，ｇ1，ｇ2，…，ｇm｝を活性化するときを考える。ここで、ｇ0はパスＰの入力信号線であり、ｇ1，ｇ2，…，ｇmはパスＰ上の論理ゲートＧ1，Ｇ2，…，Ｇmの出力信号線である。同時に、ｇ0，ｇ1，…，ｇm-1はパスＰ上の論理ゲートＧ1，Ｇ2，…，Ｇmの入力信号線でもある。各信号線ｇ0，ｇ1，…，ｇmの信号遷移の時刻（電圧信号がＶDD／２をよこぎる時刻）をそれぞれτ0，τ1，…，τmとすると、パスＰ上の各論理ゲートＧ1，Ｇ2，…，Ｇmのゲート遅延時間ｔgdi，１＜ｉ＜ｍは、それぞれ
ｔgdi ＝τi −τi-1                                     （14）
であたえられる。したがって、パスＰのパス遅延時間ｔpdは、ゲート遅延時間ｔgdi の和として、
【００４１】
【数９】
0004488595.tif 000010
【００４２】
で求めることができる。しかし、実際のゲート遅延時間ｔgdi は、故障の影響により変動する。
ｔgdi ＝ｔgdi,typ ＋δi ，１＜ｉ＜ｍ                        （16）
ここで、ｔgdi,typは論理ゲートＧiのゲート遅延時間の典型値であり、δiはゲート遅延時間の変動成分である。例えば、断線故障は、故障をもつ論理ゲートのゲート遅延時間のみを増加させ、ほかの論理ゲートの遅延時間を増加させない。また、プロセスパラメータの異常は、すべての論理ゲートの遅延時間を増加させる。ゲート遅延時間の変動にともなって、パス遅延時間ｔpdも同様に変動する。
【００４３】
【数１０】
0004488595.tif 000011
【００４４】
ここで、ｔpd,typはパスＰのパス遅延時間の典型値であり、Δはパス遅延時間の変動成分である。
図１３に遅延故障試験方法の基本原理を模式的に示す。図１３ａの被試験回路（ＣＵＴ）が正常に動作するためには、入力ラッチに生成された信号遷移がパスＰをとおって出力ラッチまで既定の時間内に伝搬しなければならない。したがって、図１３ｂに示す入力ＶIN及び出力ＶOUTの関係と、システムクロックＣＬＫとの関係からパスＰのパス遅延時間ｔpdは以下の条件を満たさなければならない。
【００４５】
ｔpd＋ＴSU＜ＴCLK −ＴSKW                                 （18）
ここで、ＴSUは信号のセットアップ時間、ＴCLKはシステムクロックの周期、ＴSKW はシステムクロックのクロックスキュー（ジッタでありエッジが±に変動する）である。変形すると、
ｔpd＜ＴCLK −ＴSKW −ＴSU≡Ｔ′                          （19）
となる。すなわち、パスＰのパス遅延時刻ｔpdは、クロック周期からセットアップ時間やクロックスキューなどのマージンをひいた時間（これをＴ′とする）より小さくなければならない。もし、ｔpdがＴ′より大きければ、パスＰに沿った信号伝搬がシステムクロックに間に合わず、回路は正しい動作をしない。この状態を遅延故障と定義する。すなわち、ｔpdがある既定の時間Ｔ′より大きいとき、パスＰは遅延故障をもつと定義する。ここで、Ｔ′は、許容できる遅延時間の上限値である。
パス遅延故障の検出（過渡電源電流のパルス幅を利用）
論理ゲートの過渡電流波形のピーク（または、立ち下がりエッジ）がその論理ゲートの出力の遷移時刻に対応することから、ＣＭＯＳ集積回路の過渡電源電流波形の最終ピーク（最終の立ち下がりエッジ）がＣＭＯＳ集積回路において最後にスイッチングする論理ゲートの出力遷移時刻に一致する。したがって、ＣＭＯＳ集積回路の過渡電源電流波形の最終ピーク（最終の立ち下がりエッジ）を検出し入力遷移の時刻と比較することにより、回路のパス遅延時間を求めることができる。ここで、過渡電源電流の最終の立ち下がりエッシの時刻は、たとえば、過渡電源電流がある既定の電流値となる時刻の最大値として求めることができる。この電流値は、被試験パス上の最後の論理ゲートの出力が電源電圧の半分の値となるときの電源電流の値であり、被試験回路に対する回路シミュレーションや実デバイスを用いた統計データなどから求めることができる。また、求めたパス遅延時間を既定の時間（たとえば、システムクロックの周期ＴCLK ）と比較することにより、被試験パスにおけるパス遅延故障を検出することができる。
【００４６】
つぎに、上で述べた過渡電源電流のパルス幅を利用してパス遅延故障を検出する方法について述べる。上記方法は、被試験回路の電源電流波形のパルス幅を測定し、既定の時間と比較する方法である。上記方法の基本原理を図１４に示す。ＣＭＯＳ論理回路において、２つのテストパターンｖ１，ｖ２を持つテストパターン系列Ｔ＝＜Ｖ１，Ｖ２＞により複数のパスＰ1，Ｐ2，…，Ｐnが活性化されるとする。パスＰi上の入力から数えてｊ番目の論理ゲートがスイッチングする時刻をτijとすると、各パスＰ1，…，Ｐnにより論理ゲートの数は異なり、パスＰ1 ，Ｐ2，…，Ｐnにおいてもっとも遅くスイッチングする論理ゲートＧfinalの出力遷移の時刻τmax は、
【００４７】
【数１１】
0004488595.tif 000012
【００４８】
であたえられる。したがって、パスＰ1，Ｐ2，…，Ｐnにおけるパス遅延時間の最大値ｔpd,maxは、τmaxと入力遷移の時刻τ0のあいだの時間間隔としてつぎのように求めることができる。
ｔpd,max＝τmax −τ0                                     （21）
一方、ＣＭＯＳ論理回路の過渡電源電流波形のパルス幅ｔPWを、回路入力の信号遷移の時刻τoと過渡電源電流波形の最終ピーク（立ち下がりエッジ）の時刻τIDDのあいだの時間間隔と定義する。
【００４９】
ｔPW≡τIDD −τ0                                         （22）
前に述べたように、過渡電源電流波形の最終ピークの時刻τIDDは、最後にスイッチングする論理ゲートＧfinalの出力遷移時刻τmaxに一致するかτmaxより先行することから、過渡電源電流波形のパルス幅ｔPWは、テストパターンＴにより活性化されるパスＰの遅延時間ｔpd,maxに対応する。
ｔPW＝τIDD −τo＜τmax −τo＝ｔpd,max                      （23）
もし、ｔPWが許容できる遅延時間の上限値Ｔ′より大きいならば、
Ｔ′＜ｔPW＜ｔpd,max                                      （24）
となる。もっとも大きな遅延時間ｔpd,maxをもつパスにおいて、信号の伝搬がシステムロックに間に合わない。すなわち、回路には遅延故障が存在する。したがって、Ｔ′より大きいｔPWは活性化されたパスのいずれかに遅延故障があることを示し、Ｔ′より小さいｔPWは活性化されたパスのいずれにも遅延故障が存在しないことを示す。
【００５０】
遅延故障なし，ｔPW＜Ｔ′
遅延故障あり，ｔPW＞Ｔ′                              （25）
以上のように、過渡電源電流波形のパルス幅ｔPWを既定の時間Ｔ′と比較することにより、回路のパス遅延故障をテストすることができる。
パス遅延故障の検出（過渡電源電流の瞬時値を利用）
また、図７に示すように、論理ゲートの過渡電源電流はピーク値以降単調に減少することから、図９に示すＣＭＯＳ集積回路の電源電流は、同集積回路において最後にスイッチングする論理ゲートの出力遷移時刻以降単調に減少する。つまり、故障のないＣＭＯＳ集積回路において、最後にスイッチングする論理ゲートの出力遷移時刻をτmaxとし、時刻τmaxにおける過渡電源電流の瞬時値をＩ′とすると、τmax以後ＣＭＯＳ集積回路の過渡電源電流がＩ′より大きくなることはない。
【００５１】
この原理をもちい、ある既定時刻におけるＣＭＯＳ集積回路の過渡電源電流の瞬時値を測定することにより、被試験回路における遅延故障を検出することができる。ここで、故障検出の判断基準となる電流値Ｉ′は、被試験パス上の最後の論理ゲートの出力が電源電圧の半分の値となるときの電源電流の値であり、被試験回路に対する回路シミュレーションや実デバイスをもちいた統計データなどから求めることができる。
【００５２】
つぎに、上で述べた過渡電源電流の瞬時値を利用してパス遅延故障を検出する方法について述べる。上記方法は、規定の時刻における被試験回路の過渡電源電流の瞬時値を測定し、遅延故障のないゴールデン回路の過渡電源電流値と比較する方法である。上記方法の基本原理を図１５に示す。
ＣＭＯＳ論理回路において、テストパターン系列Ｔ＝＜Ｖ１，Ｖ２＞により複数のパスＰ1，Ｐ2，…，Ｐnが活性化されるとする。パスＰi上の入力から数えてｊ番目の論理ゲートがスイッチングする時刻をτijとすると、パスＰ1，Ｐ2，…，Ｐnにおいてもっとも遅くスイッチングする論理ゲートＧfinalの出力遷移の時刻τmax は、
【００５３】
【数１２】
0004488595.tif 000013
【００５４】
であたえられる。したがって、パスＰ1，Ｐ2，…，Ｐnにおけるパス遅延時間の最大値ｔpd,maxは、τmaxと入力遷移の時刻τ0の間の時間間隔としてつぎのように求めることができる。
ｔpd,max＝τmax −τo                                     （27）
前にも述べたように、論理ゲートの出力遷移の時刻が論理ゲートの過渡電源電流のピークまたは立ち下がりの時刻に一致するので、τmaxは回路の過渡電源電流波形ＩDDTの最終ピークまたは立ち下がりエッジの時刻τIDDに対応する。論理ゲートの電源電流ＩGは三角波で近似でき、Ｇfinalは最後にスイッチングするゲートであるから、τmax以降に電源電流のピークをもつ論理回路は存在しない。したがって、ｔ＞τmaxなる時刻ｔにおいて電源電流波形関数ｉDDT(t)は、単調減少関数である。すなわち、電源電流波形の時間関数をｉDDT(t)とし、時刻τmax における電源電流の瞬時値を
Ｉ′≡ｉDDT(τmax）                                      （28）
とすると、ｔ＞τmax なるｔにおいて、
ｉDDT(t)＜ｉDDT（τmax）＝Ｉ′，ｔ＞τmax                  （29）
が成立する。回路が正常に動作するためには、ｔpd,maxが遅延時間の上限値Ｔ′（＝ＴCLK −ＴSKEW−ＴSU）より小さくなければならない。
【００５５】
ｔpd,max＝τmax −τo＜Ｔ′                              （30）
したがって、回路に故障がないとき、ｔ＝Ｔ′＋τo＞τmax なる時刻ｔにおいて、式（２９）より
ｉDDT （Ｔ′＋τo）＜Ｉ′                                （31）
が成立する。もし、Ｔ′＋τoにおけるＩDDT の瞬時値がＩ′より大きいならば、つまり、
ｉDDT（Ｔ′＋τo）＞Ｉ′＝ｉDDT（τmax）                  （32）
ならば、式（２９）よりＴ′＋τoがτmax より大きいことはありえないので、
τmax＞Ｔ′＋τo                                          （33）
∴ｔpd,max＝τmax−τo＞Ｔ′                                （34）
となる。もっとも大きな遅延時間ｔpd,maxをもつパスにおいて、信号の伝搬がシステムクロックに間に合わない。すなわち、回路にはパス遅延故障が存在する。したがって、時刻Ｔ′＋τoにおける電源電流値ｉDDT（Ｔ′＋τo）がＩ′より大きいということは、活性化されたパスのいずれかにパス遅延故障があることを示す。逆に、ｉDDT（Ｔ′＋τ0）がＩ′より小さいということは、活性化されたパスのいずれにもパス遅延故障が存在しないことを示す。
【００５６】
遅延故障なし，ｉDDT(Ｔ′＋τ0 ）＜Ｉ′
遅延故障あり，ｉDDT(Ｔ′＋τ0 ）＞Ｉ′                  （35）
以上のように、ある既定の時刻におけるＩDDT の瞬時値を故障のない回路のＩDDT レベルと比較することにより、回路の遅延故障を検出することができる。
パス遅延故障の検出（過渡電源電流の時間積分値を利用）
さらに、過渡電源電流ＩDDT の積分値ＱDDT を用いることにより、断線故障を原因とするパス遅延故障を検出することができる。つぎに、過渡電源電流の時間積分値を利用してパス遅延故障を検出する方法について述べる。上記方法は、被試験回路の過渡電源電流の積分値を測定し、所定の値と比較することによってパス遅延故障を評価する方法である。
【００５７】
過渡電源電流ＩDDT の積分値ＱDDT は、各論理ゲートを流れる電流の積分値ＱGn（１＜ｎ＜Ｎ）の和として表される。
【００５８】
【数１３】
0004488595.tif 000014
【００５９】
各論理ゲートを流れる電流の積分値ＱGn（１＜ｎ＜Ｎ）は、式（１０）または式（１１）に示すように、各論理ゲートの入力遷移時間ｔTn（１＜ｎ＜Ｎ）にそれぞれ比例することから、ＱDDTはｔTn（１＜ｎ＜Ｎ）の線形多項式であたえられる。例えば、図９の例では、ＱDDTは各インバータの入力遷移時間（ｔT1，ｔT2，ｔT3，ｔT4）の線形多項式であたえられる。
【００６０】
【数１４】
0004488595.tif 000015
【００６１】
式（３６）において、ａnは論理ゲートＧnの貫通電流の積分値ＱSnと論理ゲートＧnの入力遷移時間ｔTnの間の比例係数であり、ｂは各論理ゲートに流れ込む充電電流ＱCnの和であらわされる定数項である。
断線故障は、故障をとおして小さな電流が流れるため、大きな抵抗Ｒopenでモデル化できる。図１６ａに、入力に断線故障をもつＣＭＯＳインバータの例を示す。入力信号線Ａに図１６ｂに示す信号遷移が生じるとき、断線故障により、断線箇所に後続する信号線Ａ′の信号遷移が図１６ｃに示すように遅くなる。このとき、信号線Ａ′の信号遷移時間ｔT は、断線故障の抵抗をＲopen、インバータの入力における寄生容量をＣinとすると、
【００６２】
【数１５】
0004488595.tif 000016
【００６３】
であたえられる。ここで、ｔT,typ は故障がない場合の入力信号の遷移時間の典型値であり、遷移時間ｔT は電圧値が０．１ＶDDから０．９ＶDDまで立ち上がる（または、電圧値が０．９ＶDDから０．１ＶDDまで立ち下がる）に要する時間としてもとめた。２．２ＲopenＣinはＣinが０．１ＶDDから０．９ＶDDになるまでの時間であり loge（０．９ＶDD／０．１ＶDD）×ＲopenＣinにより求めた値である。すなわち、インバータの入力信号の遷移時間の増分は、断線故障の抵抗値Ｒopenに比例する。したがって、被試験パス上のｋ番目のインバータの入力に断線故障があるとき、ＣＭＯＳ集積回路の電源電流の積分値ＱDDT は、式（３６），（３７）より、式（３８）が求まり、断線故障の抵抗値Ｒopenに応じて線形に変化し、その増分は断線故障の抵抗値Ｒopenに比例する。
【００６４】
【数１６】
0004488595.tif 000017
【００６５】
ここで、ＱDDT,typ は故障がない場合の電源電流の積分値の典型値とする。式（３８）の右辺第２項の２．２akＣinＲopenはｋ番目のインバータの入力断線故障にもとづく加算量である。この式（３８）は、図１７に示すＲopenに対するＱDDT の変化のシミュレーション結果とも一致する。図１７は、図９に示した回路において、インバータＩＮ２の入力信号線に断線故障があるときの、断線故障の抵抗値Ｒopenに対するＱDDTの変化をプロットしたものである。
【００６６】
また論理ゲートのゲート遅延時間ｔgdは、入力信号の遷移時間ｔTに比例する。（Neil H.E.Weele著者“Principles of CMOS VLSI Design-A Systems Perspective“Second Edition.Addison-Weely PublishingCompany.1999年発行の２１６〜２１７頁の式４．５２，式４．５３による）
【００６７】
【数１７】
0004488595.tif 000018
【００６８】
ここで、ｔgd,step は遷移時間０のステップ入力に対する故障のないインバータの遅延時間である。また、ＶTHはｐ−ＭＯＳまたはｎ−ＭＯＳのしきい値電圧であり、入力の立ち上がり遷移に対してはＶTH＝ＶTHN 、入力の立ち下がり遷移に対してはＶTH＝ＶTHP であたえられる。したがって、入力信号線上に抵抗Ｒopenでモデル化できる断線故障をもつ論理ゲートのゲート遅延時間ｔgdは、論理ゲートの入力遷移時間が式（３７）であたえられることから、式（３９）に式（３７）を代入して、
【００６９】
【数１８】
0004488595.tif 000019
【００７０】
と求めることができる。ここで、ｔgd,typは故障のない論理ゲートのゲート遅延時間の典型値である。すなわち、断線故障をもつ論理ゲートのゲート遅延時間ｔgdは故障の抵抗値Ｒopenによって変化し、ゲート遅延時間の増分δは故障の抵抗値Ｒopenに比例する。ゆえに、被試験パス上のいずれかの論理ゲートの入力に断線故障があるとき、被試験パスのパス遅延時間ｔpdもＲopenに比例する。このことを式で示すと、式（１７）に式（４０）を代入して式（４１）が得られることから理解される。
【００７１】
【数１９】
0004488595.tif 000020
【００７２】
これは、図１８に示すＲopenに対するｔpdの変化のシミュレーション結果とも一致する。図１８は、図９に示した回路において、インバータＩＮ２の入力信号線に断線故障があるときの、断線故障の抵抗値Ｒopenに対するｔpdの変化をプロットしたものである。
パスＰ上のある論理ゲートＧkの入力に断線故障が存在するとき、Ｇkの貫通電流の積分値ＱSkは、式（８）および式（３７）より、
【００７３】
【数２０】
0004488595.tif 000021
【００７４】
ともとめられる。したがって、集積回路の過渡電源電流の積分値ＱDDT は、式（３６）より、
【００７５】
【数２１】
0004488595.tif 000022
【００７６】
となり、回路の過渡電源電流の積分値ＱDDT も、断線故障の抵抗値Ｒopenに比例する。
したがって、式（４１）および式（４２）より、断線故障をもつパスＰの遅延時間ｔpdは、ＣＭＯＳ集積回路の過渡電源電流の積分値ＱDDTに対して線形に変化する。これは、図１９に示すＱDDTに対するｔpdの変化のシミュレーション結果とも一致する。図１９は、図９に示した回路において、インバータＩＮ２の入力信号線に断線故障があるときの、過渡電源電流の積分値ＱDDTに対するｔpdの変化をプロットしたものである。
式（４２）より求めたＲopenを式（４１）に代入すると式（４３）が得られる。
【００７７】
【数２２】
0004488595.tif 000023
【００７８】
パス遅延時間ｔpdが許容できる遅延時間の上限値Ｔ′となるときの過渡電源電流の積分値をＱmaxとすると、式（４３）においてｔpd＝Ｔ′，ＱDDT＝ＱmaxとおいてＱmax を求めると式（４４）となる。
【００７９】
【数２３】
0004488595.tif 000024
【００８０】
このＱmaxは、パス遅延故障のないＣＭＯＳ集積回路の過渡電源電流の積分値ＱDDTの上限値である。すなわち、ＱDDTがＱmaxより小さいときＣＭＯＳ集積回路には遅延故障が存在せず、ＱDDTがＱmaxより大きいときＣＭＯＳ集積回路に断線故障によるパス遅延故障が存在すると判断することができる。
遅延故障なし，ＱDDT ＜Ｑmax 
遅延故障あり，ＱDDT ＞Ｑmax                           （45）
以上のように、過渡電源電流の積分値ＱDDTを既定値Ｑmaxと比較することにより、回路のパス遅延故障をテストすることができる。ここで、既定値Ｑmaxは、回路シミュレーションや統計データから式（４４）を用いて求めることができる。
【００８１】
過渡電源電流は、集積回路の電源ピンを流れる過渡電流であり、電圧信号より高い可観測性が保証されている。このため、過渡電源電流をもちいた遅延故障試験方法は、電圧信号をもちいた遅延故障試験方法より、高い遅延故障の可観測性を保証することでできる。例えば、電圧信号をもちいた遅延故障試験方法は、電圧信号が集積回路の出力信号線まで伝搬しなければ遅延故障を検出できないのに対し、過渡電源電流信号をもちいた遅延故障試験方法は、たとえ電圧信号が集積回路の出力信号線まで伝搬しなくても、電圧信号が伝搬したパスの遅延時間に対応するパルス幅をもつ過渡電源電流信号が観測可能であるので、遅延故障や断線故障を検出することができる。また、過渡電源電流信号をもちいた遅延故障試験方法は、電圧信号を集積回路の出力信号線まで伝搬させる必要がないので、電圧信号を集積回路の出力信号線まで伝搬させる必要がある電圧信号をもちいた従来の遅延故障試験方法に比べ、テストパターン生成の制約が少ない。このため、テストパターン生成を容易にすることができる。
テストパターン生成方法（ゲート遅延故障）
つぎに、単一のゲート遅延故障にたいする第１発明のテストパターン生成方法について説明する。図２０に被試験ＣＭＯＳ集積回路の一例を示す。被試験集積回路は図１に示した回路と同一であって５つの入力端子ｘ1 ，ｘ2 ，ｘ3 ，ｘ4 ，ｘ5 、１つの出力端子ｚ1 、５つの内部信号ノードｎ1 ，ｎ2 ，ｎ3 ，ｎ4 ，ｎ5 、６つの論理ゲートＧ1 ，Ｇ2 ，Ｇ3 ，Ｇ4 ，Ｇ5 ，Ｇ6 をもつ。ｎ1 とｎ2 はゲートＧ1 及びＧ2 とゲートＧ3 との各接続点、ｎ3 はゲートＧ3 とゲートＧ4 及びＧ5 との接続点、ｎ4 及びｎ5 はゲートＧ4 及びＧ5 とゲートＧ6 との各接続点である。図に示していないがゲートＧ1 〜Ｇ6 の接続端子は共通の電源に接続されている。論理ゲートＧ3 における立ち上がり遷移が遅くなるゲート遅延故障（ｓｌｏｗ−ｔｏ−ｒｉｓｅ）にたいするテストパターン生成を考える。
【００８２】
はじめに、図２０（ａ）中に示すように故障ゲートＧ3 の出力にｓｌｏｗ−ｔｏ−ｒｉｓｅ故障の初期値“０”をあたえるテストパターンｖ１＝“ｘｘ０ｘｘ”を含意操作（ｉｍｐｌｉｃａｔｉｏｎ）によりもとめる。ここで、含意操作とは、集積回路内の信号線の論理値に基づき、その信号線に接続される論理ゲートの入出力信号線に一意的に選択される論理値を順次設定していく操作であり、回路の入力側（後方操作）および出力側（前方操作）の両方についておこなわれる。また、信号“０”，“１”，“ｘ”は、それぞれＬｏｗレベル信号、Ｈｉｇｈレベル信号、Ｄｏｎ’ｔ  Ｃａｒｅ信号（ＬｏｗレベルまたはＨｉｇｈレベルのどちらでもかまわない信号）を意味する。たとえば、ＮＡＮＤゲートＧ3 の出力に信号値“０”を設定するには、ゲートＧ3 のすべての入力信号値を“１”とする必要がある。すなわち、論理ゲートＧ1 およびＧ2 の出力信号値は、上記の含意操作により“１”ともとめることができる。同様に、ＮＡＮＤゲートＧ1 およびＧ2 の出力信号値を“１”とするには、ＮＡＮＤゲートＧ1 およびＧ2 のそれぞれにたいし、そのＮＡＮＤゲートの二つの入力のどちらかを“０”とすればよいので、入力端子ｘ3 の信号値を含意操作により“０”をもとめることができる。このとき、他の入力端子の値は“０”，“１”のどちらでもかまわない。このようにして、故障ゲートＧ3 の出力に初期値“０”をあたえるテストパターンｖ１を含意操作により“ｘｘ０ｘｘ”ともとめることができる。含意操作については、たとえば、藤原秀雄、コンピュータの設計とテスト、工学図書株式会社、１９９０の第８章に記載されている。
【００８３】
つぎに、故障ゲートＧ3 の出力が設定した初期値“０”に固定してしまう縮退故障を仮定し、この縮退故障を論理ゲートＧ4 の出力に伝搬するためのテストパターンｖ２＝“０ｘ１１ｘ”を含意操作によりもとめる（図２０（ｂ））。以上により、ゲートＧ3 におけるｓｌｏｗ−ｔｏ−ｒｉｓｅ故障を過渡電源電流試験法で検出するテストパターン系列はＴ＝＜ｖ１，ｖ２＞＝＜“ｘｘ０ｘｘ”，“０ｘ１１ｘ”＞ともとめることができる。
【００８４】
あるいは、故障ゲートＧ3 の出力にｓｌｏｗ−ｔｏ−ｒｉｓｅ故障に対応する信号“Ｕ１”をあたえ、上記ｓｌｏｗ−ｔｏ−ｒｉｓｅ故障の影響を論理ゲートＧ4 の出力に伝搬するテストパターン系列Ｔ’＝“Ｓ０  Ｓ０  Ｕ１  Ｓ１  ＸＸ”を含意操作（ｉｍｐｌｉｃａｔｉｏｎ）によりもとめる（図２０（ｃ））。ここで、信号“Ｓ０”，“Ｓ１”，“Ｕ０”，“Ｕ１”，“ＸＸ”は、Ｃ．Ｊ．Ｌｉｎらによって開発された５値論理システムの信号値であり、図２に示したようにそれぞれ常時Ｌｏｗレベル信号（＜“０”，“０”＞）、常時Ｈｉｇｈレベル信号（＜“０”，“０”＞）、最終値がＬｏｗレベルとなる信号（＜“Ｘ”，“０”＞）、最終値がＨｉｇｈレベルとなる信号（＜“Ｘ”，“１”＞）、Ｄｏｎ’ｔ  Ｃａｒｅ信号（＜“Ｘ”，“Ｘ”＞）を意味する。また、５値論理システムの含意操作とは、集積回路内の信号線の信号値に基づき、その信号線に接続される論理ゲートの入出力信号線に一意的に選択される信号値を順次設定していく操作である。
【００８５】
たとえば、ＮＡＮＤゲートＧ3 の出力に信号値“Ｕ１”を設定するには、ゲートＧ3 の片方の入力信号値を“Ｕ０”とし、もう片方の入力信号値を“Ｓ１”とする必要がある。ここでは、論理ゲートＧ1 の出力信号値を“Ｓ１”、ゲートＧ2 の出力信号値を“Ｕ１”と仮定する。つぎに、ＮＡＮＤゲートＧ1 の出力信号値を“Ｓ１”とするには、ゲートＧ1 の入力の何れかを“Ｓ０”と設定すればよいので、ここでは入力端子ｘ2 に信号“Ｓ０”をあたえる。一方、ＮＡＮＤゲートＧ2 の出力信号値を“Ｕ０”とするには、ゲートＧ2 の入力の片方を“Ｕ０”、もう片方を“Ｓ１”とすればよいので、入力端子ｘ3 の信号値を“Ｕ０”とし、入力端子ｘ4 の信号値を“Ｓ1 ”とする。同様に、故障ゲートＧ3 の影響“Ｕ１”をＮＯＲゲートＧ4 の出力に伝搬するには、Ｇ4 のもう一方の入力、すなわち、入力信号線を“Ｓ０”とすればよい。したがって、故障ゲートＧ3 の出力にｓｌｏｗ−ｔｏ−ｒｉｓｅ故障に対応する信号“Ｕ１”をあたえ、上記ｓｌｏｗ−ｔｏ−ｒｉｓｅ故障の影響を論理ゲートＧ4 の出力に伝搬するテストパターン系列Ｔ’は、上記の含意操作により“Ｓ０  Ｓ０  Ｕ１  Ｓ１  ＸＸ”ともとめることができる。５値論理システムについては、先に述べたようにたとえば、文献１に記載されている。以上により、ゲートＧ3 におけるｓｌｏｗ−ｔｏ−ｒｉｓｅ故障を過渡電源電流試験法で検出するテストパターン系列はＴ’＝“Ｓ０  Ｓ０  Ｕ１  Ｓ１  ＸＸ”＝＜ｖ１，ｖ２＞＝＜“０００１ｘ”，“００１１ｘ”＞ともとめることができる。
【００８６】
論理ゲートＧ3がゲート遅延故障をもつとき、論理ゲートＧ3の出力遷移時刻が遅くなる。この故障の影響をテストパターン系列ＴまたはＴ′により次段の論理ゲートＧ4（の出力）に伝搬すると、論理ゲートＧ4の過渡電源電流波形が正常時と異なるため、被試験集積回路の過渡電源電流は異常を示す。したがって、テストパターン系列ＴまたはＴ′をあたえ被試験集積回路の過渡電源電流に異常が生じるか否かを観測することによって、論理ゲートＧ3 におけるｓｌｏｗ−ｔｏ−ｒｉｓｅ故障が存在するか否かを判別することができる。
【００８７】
以上により、被試験集積回路内のあるゲート遅延故障にたいするテストパターン系列を生成することができる。さらに、この発明のテストパターン生成方法は、ゲート遅延故障単位でのテストパターン生成に限定されるものではなく、集積回路内部の信号線に断線故障を仮定することにより断線故障を単位としてテストパターン系列を生成することもできる。
テストパターン生成方法（断線故障）
つぎに、単一の断線故障にたいする第１発明のテストパターン生成方法について説明する。図２１に被試験ＣＭＯＳ集積回路の一例を示す。被試験集積回路は、図２０の回路と同一であって、入力端子ｘ3とゲートＧ1及びＧ2間の信号線ｍ1及びｍ2、ゲートＧ1及びＧ2とゲートＧ3間の信号線ｍ3及びｍ4、ゲートＧ3 の出力側の信号線ｍ5、信号線ｍ5とゲートＧ4及びＧ5との間の信号線ｍ6及びｍ7、ゲートＧ4及びＧ5とゲートＧ6内の信号ｍ8及びｍ9の９つの内部信号線があり、信号線ｍ6における断線故障（×印で示す）にたいするテストパターン生成を考える。はじめに、故障信号線ｍ6 にｓｌｏｗ−ｔｏ−ｒｉｓｅ故障の初期値“０”をあたえるテストパターンｖ１＝“ｘｘ０ｘｘ”を含意操作によりもとめ、図２１ａに示す信号状態とする。つぎに、故障信号線ｍ6 の論理値が設定した初期値“０”に固定してしまう縮退故障を仮定し、この縮退故障を論理ゲートＧ4 の出力に伝搬するためのテストパターンｖ２＝“０ｘ１１ｘ”を含意操作によりもとめ、図２１ａに示す信号状態とする。以上により、信号線ｍ6 における断線故障を過渡電源電流試験法で検出するテストパターン系列はＴ＝＜ｖ１，ｖ２＞＝＜“ｘｘ０ｘｘ”，“０ｘ１１ｘ”＞ともとめることができる。
【００８８】
あるいは、故障信号線ｍ6 にｓｌｏｗ−ｔｏ−ｒｉｓｅ故障に対応する信号“Ｕ１”をあたえ、上記ｓｌｏｗ−ｔｏ−ｒｉｓｅ故障の影響を論理ゲートＧ4 の出力に伝搬するテストパターン系列Ｔ′＝“Ｓ０  Ｓ０  Ｕ１  Ｓ１  ＸＸ”を含意操作（ｉｍｐｌｉｃａｔｉｏｎ）によりもとめる（図２１ｃ）。以上により、信号線ｍ6 における断線故障を過渡電源電流試験法で検出するテストパターン系列はＴ′＝“Ｓ０  Ｓ０  Ｕ１  Ｓ１  ＸＸ”＝＜ｖ１，ｖ２＞＝＜“０００１ｘ”，“００１１ｘ”＞ともとめることができる。
【００８９】
信号線ｍ6が断線故障をもつとき、論理ゲートＧ4の入力遷移時間が大きくなる。この故障の影響をテストパターン系列ＴまたはＴ′により論理ゲートＧ4 （の出力）に伝搬すると、論理ゲートＧ4 の過渡電源電流波形が正常時と異なるため、被試験集積回路の過渡電源電流は異常を示す。したがって、テストパターン系列ＴまたはＴ′をあたえ被試験集積回路の過渡電源電流に異常が生じるか否かを観測することによって、信号線ｍ6 における断線故障が存在するか否かを判別することができる。
【００９０】
以上により、被試験集積回路内のある断線故障にたいするテストパターン系列を生成することができる。さらに、この発明のテストパターン生成方法は、論理ゲートを接続する信号線における断線故障単位でのテストパターン生成に限定されるものではなく、論理ゲート内部の信号線に断線故障を仮定することにより論理ゲート内部の断線故障もテストパターン生成の対象故障とすることも可能である。
【００９１】
また、この発明のテストパターン生成方法は、フリップフロップをもたない組合せ論理回路に限定されるものではなく、フリップフロップなどの記憶素子をもつ順序回路にも適用することができる。
また、この発明のテストパターン生成方法は、ＣＭＯＳ集積回路に限定されるものではなく、他のタイプの半導体集積回路にも適用することができる。
ＩDDT 故障シミュレーション方法（ゲート遅延故障）
つぎに、ゲート遅延故障単位で被検出故障リストを生成する過渡電源電流故障シミュレーション（以下、ＩDDT 故障シミュレーションと書く）方法について説明する。
【００９２】
図２２に被試験ＣＭＯＳ集積回路を示す。被試験集積回路は、３つの入力端子ｘ1 ,ｘ2 ，ｘ3 、２つの出力端子ｚ1 ，ｚ2 、５つの論理ゲートＧ1，Ｇ2，Ｇ3，Ｇ4，Ｇ5 、５つの内部信号ノードｎ1 ,ｎ2 ,ｎ3 ,ｎ4 ,ｎ5 をもつ。また、出力端子ｚ1 ，ｚ2 は出力バッファＧ6，Ｇ7介して接続されているものとする。つまり入力端子ｘ1 はインバータ論理ゲートＧ1 の入力側に接続され、入力端子ｘ2 ,ｘ3 はそれぞれＮＡＮＤ論理ゲートＧ2 の入力側に接続され、論理ゲートＧ1 ，Ｇ2 の各出力側はノードｎ1 ,ｎ2 を通じてＮＡＮＤ論理ゲートＧ3 の入力側に接続され、論理ゲートＧ3 の出力側はノードｎ3 を通じてインバータ論理ゲートＧ4 の入力側と、ＮＯＲ論理ゲートＧ5 の一方の入力側とに接続され、論理ゲートＧ5 の他方の入力側に入力端子ｘ3 が接続され、論理ゲートＧ4 の出力側はノードｎ4 、バッファＧ6 を通じて出力端子ｚ1 に接続され、論理ゲートＧ5 の出力側はノードｎ5 、バッファＧ7 を通じて出力端子ｚ2 に接続される。図に示していないが論理ゲートＧ1 〜Ｇ5 および出力バッファＧ6 ，Ｇ7 の各電源端子は共通の電源に接続されている。
【００９３】
上記被試験ＣＭＯＳ集積回路にたいしておこなったＩDDT 故障シミュレーション結果の一例を図２３に示す。図２３において、左から第１列目はテストパターン系列の識別子を示す。第２列目は被試験ＣＭＯＳ集積回路の入力端子ｘ1，ｘ2，ｘ3 にあたえる入力信号を示し、第３列目は各テストパターン系列をあたえたとき被試験ＣＭＯＳ集積回路の内部信号ノードｎ1，ｎ2，ｎ3，ｎ4，ｎ5に生じる信号を示し、第４列目は各テストパターン系列をあたえたとき被試験ＣＭＯＳ集積回路の出力端子ｚ1 ，ｚ2 に生じる信号を示す。ここで、図２２の第２、第３、第４列における信号“Ｌ”，“Ｈ”，“Ｒ”，“Ｆ”は、それぞれ、常時ローレベルの信号＜“０”，“０”＞（＜＞内の第１要素は初期信号値を示し、第２要素は最終信号値を示す）、常時ハイレベルの信号（＜“１”，“１”＞）、ローレベルからハイレベルへの立ち上がり信号（＜“０”，“１”＞）、ハイレベルからローレベルへの立ち下がり信号（＜“１”，“０”＞）を示す。
【００９４】
このため、各テストパターン系列は２つのテストパターンからなり、たとえば、テストパターン系列Ｔ１＝“ＬＬＲ”はｘ1 ｘ2 ｘ3 ＝＜“０００”，“００１”＞を意味する。図２３の第５列目は、各テストパターン系列をあたえたとき過渡電源電流をもちいた試験で検出可能なゲート遅延故障の集合（被検出故障リスト）を示す。論理ゲートがゲート遅延故障をもつとき、論理ゲートの出力遷移時刻が遅れる。これに伴って、この故障論理ゲートの出力を入力とする論理ゲートの過渡電流ピークのタイミングが遅くなり、被試験集積回路の過渡電源電流は異常を示す。このため、あるテストパターン系列をあたえ過渡電源電流に異常が生じるか否かを観測することによって、上記入力テストパターン系列によりスイッチング動作（立ち上がり遷移または立ち下がり遷移）を生じる論理ゲートにたいし、これらの論理ゲートの出力信号線を入力とする論理ゲートがスイッチング動作を生じるとき、これらの論理ゲートが故障しているか否かを判別することができる。
【００９５】
たとえば、図２２に示す被試験ＣＭＯＳ集積回路にテストパターン系列Ｔ２をあたえると、被試験ＣＭＯＳ集積回路内の論理ゲートＧ2 ，Ｇ3 ，Ｇ4 ，Ｇ5 および出力バッファＧ6 ，Ｇ7 にスイッチング動作を生じ、信号線ｎ2 ，ｎ4 ，ｎ5 および出力端子ｚ1 ，ｚ2 に立ち下がり遷移が生じ、信号線ｎ3 に立ち上がり遷移が生じる。したがって、論理ゲートＧ2 ，Ｇ4 ，Ｇ5 のいずれかにｓｌｏｗ−ｔｏ−ｆａｌｌ故障が存在するとき、または、論理ゲートＧ3 にｓｌｏｗ−ｔｏ−ｒｉｓｅ故障が存在するとき、テストパターン系列Ｔ２をもちいた過渡電源電流試験において過渡電源電流に異常が観測される。すなわち、テストパターン系列Ｔ２をもちいた過渡電源電流試験により、論理ゲートＧ2 ，Ｇ4 ，Ｇ5 のｓｌｏｗ−ｔｏ−ｆａｌｌ故障および論理ゲートＧ3 のｓｌｏｗ−ｔｏ−ｒｉｓｅ故障を検出できる。したがって、テストパターン系列Ｔ２にたいする被検出故障リストは、以上のＩDDT 故障シミュレーションにより｛Ｇ２Ｆ，Ｇ３Ｒ，Ｇ４Ｆ，Ｇ５Ｆ｝ともとめることができる。ここで“Ｆ”および“Ｒ”は、それぞれｓｌｏｗ−ｔｏ−ｆａｌｌ故障あるいはｓｌｏｗ−ｔｏ−ｒｉｓｅ故障であることを示す。
【００９６】
以上により、あるテストパターン系列で検出可能なゲート遅延故障単位の被検出故障リストを生成することができる。
ＩDDT 故障シミュレーション方法（断線故障）
つぎに、断線故障単位で故障リストを生成するＩDDT 故障シミュレーション方法について説明する。図２４に被試験ＣＭＯＳ集積回路を示す。これは図２２に示したものと同一であるが、各入力端子ｘ1 ，ｘ2 ，ｘ3 と論理ゲートとの接続信号線、各論理ゲート間の接続信号線をそれぞれ信号線ｍ1 ，ｍ2 ，…，ｍ12により識別させている。ここで、信号線には入出力信号線も含むものとし、分岐した信号線はそれぞれ別々の信号線とした。また、出力信号線ｍ11，ｍ12は出力バッファＧ6 ，Ｇ7 に接続されているものとする。
【００９７】
上記被試験ＣＭＯＳ集積回路にたいしておこなったＩDDT 故障シミュレーション結果の一例を図２５に示す。図２５において、左から第１列目はテストパターン系列の識別子を示し、第２列目は被試験ＣＭＯＳ集積回路の入力端子ｘ1 ，ｘ2 ，ｘ3 にあたえる入力信号を示し、第３列目は各テストパターン系列をあたえたとき被試験ＣＭＯＳ集積回路の信号線ｍ1 ，ｍ2 ，…，ｍ12に生じる信号を示し、第４列目は各テストパターン系列をあたえたとき被試験ＣＭＯＳ集積回路の出力端子ｚ1 ，ｚ2 に生じる信号を示す。ここで、信号“Ｌ”，“Ｈ”，“Ｒ”，“Ｆ”は、図２３で説明したものと同一であり、たとえば、テストパターン系列Ｔ１＝“ＬＬＲ”はｘ1 ｘ2 ｘ3 ＝＜“０００”，“００１”＞を意味する。図２５の第５列目は、各テストパターン系列をあたえたとき過渡電源電流をもちいた試験で検出可能な断線故障の信号線の集合、すなわち、被検出故障リストを示す。集積回路内部の信号線が断線故障をもつとき、故障信号線を入力とする論理ゲートのスイッチング動作が遅くなり、これに伴って論理回路の過渡電源電流波形が変化するため、被試験集積回路の過渡電源電流は異常を示す。このため、あるテストパターン系列をあたえ過渡電源電流に異常が生じるか否かを観測することによって、上記入力テストパターン系列によりスイッチング動作を生じる信号線にたいし、これらの信号線を入力とする論理ゲートがスイッチング動作を生じるとき、これらの論理回路が故障しているか否かを判別することができる。
【００９８】
たとえば、図２４に示す被試験ＣＭＯＳ集積回路にテストパターン系列Ｔ６をあたえると、被試験ＣＭＯＳ集積回路内の信号線ｍ2 ，ｍ7 ，ｍ8 ，ｍ9 ，ｍ10，ｍ11にスイッチング動作が生じ、さらに被試験ＣＭＯＳ集積回路内の論理ゲートＧ2 ，Ｇ3 ，Ｇ4 および出力バッファＧ6 にスイッチング動作が生じる。したがって、信号線ｍ2 ，ｍ7 ，ｍ8 ，ｍ9 ，ｍ11のいずれかに断線故障が存在するとき、テストパターン系列Ｔ６をもちいた過渡電源電流試験において過渡電源電流に異常が観測される。すなわち、テストパターン系列Ｔ６をもちいた過渡電源電流試験により、信号線ｍ2 ，ｍ7 ，ｍ8 ，ｍ9 ，ｍ11における断線故障を検出できる。したがって、テストパターン系列Ｔ６にたいする被検出故障リストは、以上のＩDDT 故障シミュレーションにより｛ｍ2 ，ｍ7 ，ｍ8 ，ｍ9 ，ｍ11｝ともとめることができる。ここで、断線故障のリストは、断線故障が生じうる信号線で示す。
【００９９】
以上により、あるテストパターン系列で検出可能な断線故障単位の被検出故障リストを生成することができる。さらに、上記ＩDDT 故障シミュレーション方法は、論理ゲートを接続する信号線における断線故障に限定されるものではなく、論理ゲート内部の信号線上に故障を仮定することにより論理ゲート内部の信号線における断線故障を対象とすることも可能である。
ＩDDT 故障シミュレーションを利用したテストパターン生成方法
つぎに、第１発明のテストパターン生成方法について説明する。上記のＩDDT 故障シミュレーションの結果にも示すとおり、ひとつのテストパターン系列により複数のゲート遅延故障あるいは断線故障を検出できる。このため、ある故障（対象故障）にたいし生成されたテストパターン系列により他の故障（被検出故障）を検出できるとき、これらの被検出故障にたいしあらためてテストパターン生成をおこなう必要はない。また、ＩDDT 故障シミュレーションは、入力信号にたいする内部信号線の論理信号値を求める論理シミュレーションにより実現できるため、内部信号値から入力信号を逆算するテストパターン生成に比べ、一般的に処理時間が短い。したがって、ある対象故障にたいしてテスト生成をおこなった後、ＩDDT 故障シミュレーションによって被試験故障を対象故障のリストから削除することにより、テストパターン生成の処理時間を短縮することができる。
被検出故障リスト生成方法（パス遅延故障）
つぎに、被検出故障リストを生成する方法について説明する。図２６に被試験ＣＭＯＳ集積回路の一例を示す。被試験集積回路は、４つの入力端子ｘ1 ，ｘ2 ，ｘ3 ，ｘ4 、２つの出力端子ｚ1 ，ｚ2 、５つの内部信号ノードｎ1 ，ｎ2 ，ｎ3 ，ｎ4 ，ｎ5 、５つの論理ゲートＧ1 ，Ｇ2 ，Ｇ3 ，Ｇ4 ，Ｇ5 、および、出力バッファＧ6 ，Ｇ7 をもつ。入力端子ｘ1 ，ｘ2 はＡＮＤゲートＧ1 の二つの入力側に接続され、ゲートＧ1 の出力側は信号ノードｎ1 を介してインバータゲートＧ2 とＯＲゲートＧ3 の各入力側に接続され、インバータゲートＧ2 の出力側はノードｎ2 を介してＡＮＤゲートＧ4 の一方の入力側に接続され、ゲートＧ3 の出力側はノードｎ3 を介してＡＮＤゲートＧ4 の他方の入力側とＡＮＤゲートＧ5 の一方の入力側に接続され、入力端子ｘ3 はＯＲゲートＧ3 の他方の入力側に接続され、入力端子ｘ4 はＡＮＤゲートＧ5 の他方の入力側に接続され、ＡＮＤゲートＧ4 及びＧ5 の各出力側はそれぞれノードｎ4 ，ｎ5 を介し、更に出力バッファＧ6 ，Ｇ7 を介して出力端子ｚ1 ，ｚ2 に接続される。ゲートＧ1 〜Ｇ7の各電源端子は図に示していないが共通の電源に接続されている。
【０１００】
また、ゲートＧ1 ，Ｇ2 ，Ｇ3 ，Ｇ4 ，Ｇ5 ，Ｇ6 ，Ｇ7 は、それぞれ１，１，３，２，１，１，１のゲート遅延（伝搬遅延）をもつと仮定する。上記被試験ＣＭＯＳ集積回路に対しておこなった故障シミュレーション結果の一例を図２７に示す。図２７において、左から第１列目はテストパターン系列の識別子を示し、第２列目は被試験ＣＭＯＳ集積回路の入力端子ｘ1 ，ｘ2 ，ｘ3 ，ｘ4 にあたえる入力信号を示し、第３列目は各テストパターン系列をあたえたとき被試験ＣＭＯＳ集積回路の内部信号ノードｎ1 ，ｎ2 ，ｎ3 ，ｎ4 ，ｎ5 に生じる遷移信号値列を示し、第４列目は各テストパターン系列をあたえたとき被試験ＣＭＯＳ集積回路の出力端子ｚ1 ，ｚ2 に生じる遷移信号値列を示す。信号“Ｌ”，“Ｈ”，“Ｒ”，“Ｆ”は、図２３、図２５の場合と同様であり、たとえば、テストパターン系列Ｔ１＝“ＦＨＨＬ”はｘ1 ｘ2 ｘ3 ｘ4 ＝＜“１１１０”，“０１１０”＞を意味する。また、信号値の下の（  ）内の数値は、入力信号の遷移時刻を０としたときの、信号の遷移時刻を表す。たとえば、Ｒ（３）は、時刻３に立ち上がり遷移信号（“Ｒ”）が生じることを示す。
【０１０１】
図２７の第５列目は、各テストパターン系列をあたえたとき過渡電源電流を用いた試験で検出可能な遅延故障パスの集合（被検出故障リスト）を示す。被試験集積回路がパス遅延故障をもつとき、故障パスの出力遷移時刻が遅れる。これに伴って、この故障パス上のすべて、または、いずれかの論理ゲートの出力遷移時刻が変化することによって上記論理ゲート出力を入力とする次段の論理ゲートの過渡電流ピークのタイミングが遅くなり、被試験集積回路の過渡電源電流は異常を示す。このため、あるテストパターン系列をあたえ過渡電源電流に異常が生じるか否かを観測することによって、上記入力テストパターン系列によりパス上のすべての論理ゲートがスイッチング動作（立ち上がり遷移または立ち下がり遷移）を生じる信号伝搬パスに対し、パス遅延故障が生じているか否かを判別することができる。
【０１０２】
たとえば、上記被試験ＣＭＯＳ集積回路にテストパターン系列Ｔ１をあたえると、図２８ａに示すように、被試験ＣＭＯＳ集積回路内の論理ゲートＧ1 の出力ｎ1 に遷移信号Ｆ（１）が生じる。同様に、論理ゲートＧ2 ，Ｇ4 および出力バッファＧ6 の出力には、それぞれ信号Ｒ（２），Ｒ（４），Ｒ（５）が生じる。したがって、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝上のすべての論理ゲートがスイッチングするため、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝にパス遅延故障があるときテストパターン系列Ｔ１を用いた過渡電源電流試験において過渡電源電流に異常が観測される。すなわち、テストパターン系列Ｔ１を用いた過渡電源電流試験により、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝におけるパス遅延故障を検出できる。したがって、テストパターン系列Ｔ１に対する被検出故障リストは、以上の故障シミュレーションにより｛｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝｝と求めることができる。
【０１０３】
別の例では、上記被試験ＣＭＯＳ集積回路にテストパターン系列Ｔ２をあたえると、図２８ｂに示すように、被試験ＣＭＯＳ集積回路内の論理ゲートＧ1 の出力ｎ1 に遷移信号Ｆ（１）が生じ、同様に、論理ゲートＧ2 ，Ｇ3 ，Ｇ4 および出力バッファＧ6 の出力には、それぞれ信号Ｒ（２），Ｆ（４），Ｒ（４）−Ｆ（６），Ｒ（５）−Ｆ（７）が生じる。したがって、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝および｛ｘ1 ，ｎ1 ，ｎ3 ，ｎ4 ，ｚ1 ｝上のすべての論理ゲートがスイッチングするため、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝または｛ｘ1 ，ｎ1 ，ｎ3 ，ｎ4 ，ｚ1 ｝の何れかにパス遅延故障があるときテストパターン系列Ｔ２を用いた過渡電源電流試験において過渡電源電流に異常が観測される。しかし、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝のパス遅延時間が増加すると、出力信号線ｚ1 における立ち上がり遷移Ｒ（５）が遅延し、ｚ1 における信号遷移が生じなくなる恐れがある。このため、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝のパス遅延時間を過渡電源電流試験により測定することができなくなり、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ2 ，ｎ4 ，ｚ1 ｝のパス遅延故障を検出できない。すなわち、テストパターン系列Ｔ２を用いた過渡電源電流試験により検出できるパス遅延故障は、信号伝搬パス｛ｘ1 ，ｎ1 ，ｎ3 ，ｎ4 ，ｚ1 ｝におけるパス遅延故障のみである。したがって、テストパターン系列Ｔ２に対する被検出故障リストは、以上の故障ミシュレーションにより｛｛ｘ1 ，ｎ1 ，ｎ3 ，ｎ4 ，ｚ1 ｝｝と求めることができる。
【０１０４】
以上により、あるテストパターン系列で検出可能なパス遅延故障の被検出故障リストを生成することができる。ここで、被検出故障リストに登録されるパス遅延故障をもつ信号伝搬パスは、被試験回路の入力端子から出力端子まで到達するパスに限定されるものではなく、たとえば図２６に示した半導体集積回路の｛ｘ1 ，ｎ1 ｝、または｛ｘ1 ，ｎ1 ，ｎ3 ｝のように出力端子まで到達しない信号伝搬パスでもよい。
【０１０５】
さらに、このような被検出故障リストの生成はＣＭＯＳ集積回路に限定されるものではなく、他のタイプの半導体集積回路にも適用することができる。
テストパターン生成方法
つぎに、第２発明のテストパターン生成方法について説明する。図２７の遷移シミュレーションによる被検出故障生成方法の結果にも示すとおり、単一のテストパターン系列Ｔ３により複数のパス遅延故障を検出できる。このため、ある故障（対象故障）に対し生成されたテストパターン系列により他の故障（被検出故障）を検出できるとき、これらの被検出故障に対してあらためてテストパターン生成をおこなう必要はない。また、上記遷移シミュレーションは、入力信号に対する内部信号線の論理信号値を求める論理シミュレーションにより実現できるため、内部信号値から入力信号を逆算するテストパターン生成に比べ、一般的に処理時間が短い。したがって、テストパターン生成の処理時間を短縮することができる。さらに、この第２発明の基礎となる過渡電源電流試験法は、被試験パス上の信号線やサイド入力にハザードを生じる場合でもパス遅延故障を効率的に試験できる。たとえば、図２８ｂに示すように被試験パス｛ｘ1 ，ｎ1 ，ｎ3 ，ｎ4 ，ｚ1 ｝の出力にハザードが生じている場合でも、過渡電源電流試験法はテストパターンＴ２により被試験パスのパス遅延故障を検出できる。このため、単一のテストパターン系列で検出可能なパス遅延故障の数が大きくなる可能性があり、結果として被試験半導体集積回路のパス遅延故障を試験する全テストパターン系列の数を小さくすることができる。
【０１０６】
さらに、この第２発明のテストパターン生成方法はＣＭＯＳ集積回路に限定されるものではなく、他のタイプの半導体集積回路にも適用することができる。
【０１０７】
【発明の実施の形態】
以下、この発明の実施例について説明する。
図２９は第１発明のテストパターン生成方法の実施例の処理手順を示す。はじめに、ステップ１０１において、被試験半導体集積回路にたいするすべての故障を登録した故障リストを作成する。この故障リストの作成は被試験半導体集積回路の例えば各論理ゲートについてｓｌｏｗ−ｔｏ−ｆａｌｌ故障（ＧＦ）とｓｌｏｗ−ｔｏ−ｒｉｓｅ故障（ＧＲ）を人手で順次列挙してもよく、あるいは回路情報から電子計算機により各論理ゲート（各内部信号線）を自動的に取出して作成してもよい。つぎに、ステップ１０２において、上記故障リストからテストパターン生成をおこなう対象故障を一つ選択する。ステップ１０３において、上記選択した対象故障に対応する故障箇所に故障を活性化するための初期値をあたえる初期化テストパターンｖ１を含意操作によりもとめる。ステップ１０４において、上記初期化テストパターンｖ１を生成するための含意操作により上記被試験半導体集積回路の入力信号線および内部信号線の論理信号に矛盾を生じることなく初期化テストパターンを生成することができたか否かを確認し、矛盾を生じない初期化テストパターンを生成することができたならばステップ１０５に移行し、矛盾を生じない初期化テストパターンを生成することができないならばステップ１０８に移行する。
【０１０８】
つまりステップ１０３で含意操作により初期化テストパターンｖ１の生成を試み、その生成ができたならばステップ１０４で矛盾なく生成できたことになる。ステップ１０５において、上記故障箇所が上記初期値に縮退する故障を仮定し、上記故障箇所を入力とする次段の論理ゲートの出力に上記縮退故障を伝搬する伝搬テストパターンｖ２を含意操作によりもとめることを試み、ステップ１０６において、その伝搬テストパターンｖ２を生成するための含意操作により上記被試験半導体集積回路の入力信号線および内部信号線の論理信号に矛盾を生じることなく伝搬テストパターンを生成することができたか否かを確認し、つまり、伝搬テストパターンを生成することができたならばステップ１０７に移行し、伝搬テストパターンを生成することができないならばステップ１０８に移行する。
【０１０９】
ステップ１０７において、上記ステップ１０３および１０５で求めた初期化テストパターンｖ１と伝搬テストパターンｖ２でテストパターン系列Ｔ＝（ｖ１，ｖ２＞を構成し、テストパターン系列Ｔをテストパターンリストに登録する。最後に、ステップ１０８において、上記故障リストに処理されていない他の故障が存在するか否かを確認し、処理されていない故障が存在するならば上記ステップ１０２，１０３，１０４，１０５，１０６，１０７，１０８を繰り返し、処理されていない故障が存在しないならば処理を終了する。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。
【０１１０】
図３０は第１発明のテストパターン生成方法の他の実施例の処理手順を示している。はじめに、ステップ２０１において、被試験半導体集積回路にたいするすべての故障を登録した故障リストを作成する。つぎに、ステップ２０２において、上記故障リストからテストパターン生成をおこなう対象故障を選択する。つぎに、ステップ２０３において、上記対象故障に対応する故障箇所に上記故障を活性化するための、５値論理システムにおける信号値をあたえ、上記故障箇所を入力とする次段の論理ゲートの出力に上記信号値を伝搬するテストパターン系列Ｔ′を含意操作によりもとめることを試み、ステップ２０４において、上記含意操作により上記被試験半導体集積回路の入力信号線および内部信号線の信号値に矛盾を生じることなくテストパターン系列Ｔ′を生成することができたか否かを確認し、つまりテストパターン系列Ｔ′を生成することができたならばステップ２０５に移行し、テストパターン系列Ｔ′を生成することができないならばステップ２０６に移行する。ステップ２０５において、上記ステップ２０３で求めたテストパターン系列Ｔ′をテストパターンリストに登録する。最後に、ステップ２０６において、上記故障リストに処理されていない他の故障が存在するか否かを確認し、処理されていない故障が存在するならばステップ２０２，２０３，２０４，２０５，２０６を繰り返し、処理されていない故障が存在しないならば処理を終了する。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。
【０１１１】
図３１は第１発明のテストパターン生成方法の更に他の実施例の処理手順を示している。はじめに、クライアント（テストパターンを管理する電子計算機）が、ステップ３０１において、被試験半導体集積回路にたいするすべての故障を登録した故障リストを作成する。つぎに、クライアントは、ステップ３０２において、上記故障リストを複数のサブ故障リストに分割し、複数のサーバに送信する。その後、クライアントは、ステップ３０３において、各サーバからのテストパターン系列返送を待機し、テストパターン系列Ｔが返送されたならばステップ３０４においてテストパターン系列Ｔをテストパターンリストに登録する。クライアントは、最後に、ステップ３０５において、すべてのサーバのテストパターン生成処理が終了したか否かを確認し、すべてのサーバの処理が終了していないならば上記ステップ３０３，３０４，３０５を繰り返し、すべてのサーバの処理が終了したならば処理を終了する。
【０１１２】
一方、各サーバは、図３２に示すように、はじめにステップ４０１において、クライアントから送信されたサブ故障リストを受信し、サブ故障リストを記憶手段に格納する。つぎに、サーバは、ステップ４０２において、上記記憶手段内のサブ故障リストからテストパターン生成をおこなう対象故障を選択する。サーバは、ステップ４０３において、選択した対象故障に対応する故障箇所に故障を活性化するための初期値をあたえる初期化テストパターンｖ１を含意操作によりもとめることを試み、サーバは、ステップ４０４において、その初期化テストパターンｖ１を生成するための含意操作により上記被試験半導体集積回路の入力信号線および内部信号線の論理信号に矛盾を生じることなく初期化テストパターンを生成することができたか否かを確認し、つまり初期化テストパターンを生成することができたならばステップ４０５に移行し、初期化テストパターンを生成することができないならばステップ４０８に移行する。
【０１１３】
サーバは、ステップ４０５において、上記故障箇所が上記初期値に縮退する故障を仮定し、上記故障箇所を入力とする次段の論理ゲートの出力に上記縮退故障を伝搬する伝搬テストパターンｖ２を含意操作によりもとめることを試み、サーバは、ステップ４０６において、上記伝搬テストパターンｖ２を生成するための含意操作により上記被試験半導体集積回路の入力信号線および内部信号線の論理信号に矛盾を生じることなく伝搬テストパターンを生成することができたか否かを確認し、つまり伝搬テストパターンを生成することができたならばステップ４０７に移行し、伝搬テストパターンを生成することができないならばステップ４０８に移行する。サーバは、ステップ４０７において、上記ステップ４０３および４０５で求めた初期化テストパターンｖ１と伝搬テストパターンｖ２でテストパターン系列Ｔ＝＜ｖ１，ｖ２＞を構成し、テストパターン系列Ｔを上記クライアントに返送する。サーバは、最後に、ステップ４０８において、上記記憶手段内のサブ故障リストに処理されていない他の故障が存在するか否かを確認し、処理されていない故障が存在するならば上記ステップ４０２，４０３，４０４，４０５，４０６，４０７，４０８を繰り返し、処理されていない故障が存在しないならばテストパターン生成処理終了をクライアントに報告して処理を終了する。このように複数サーバにテストパターン系列により故障を検出できるか否かを調べる処理を行わせることにより、全体の処理速度を向上させることができる。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。
【０１１４】
図３３は第１発明のテストパターン生成方法の更に他の実施例の処理手順を示している。はじめに、クライアントが、ステップ５０１において、被試験半導体集積回路にたいするすべての故障を登録した故障リストを作成する。クライアントは、ステップ５０２において、上記作成した故障リストを複数のサブ故障リストに分割し、複数のサーバに送信する。その後、クライアントは、ステップ５０３において、各サーバからのテストパターン系列返送を待機し、テストパターン系列Ｔ′が返送されたならばステップ５０４においてテストパターン系列Ｔ′をテストパターンリストに登録する。クライアントは、最後に、ステップ５０５において、すべてのサーバのテストパターン生成処理が終了したか否かを確認し、すべてのサーバの処理が終了していないならば上記ステップ５０３，５０４，５０５を繰り返し、すべてのサーバの処理が終了したならば処理を終了する。
【０１１５】
一方、各サーバは、図３４に示すようにステップ６０１において、クライアントから送信されたサブ故障リストを受信し、サブ故障リストを記憶手段に格納する。つぎに、サーバは、ステップ６０２において、上記記憶手段内のサブ故障リストからテストパターン生成をおこなう対象故障を選択する。つぎに、サーバは、ステップ６０３において、上記選択した対象故障に対応する故障箇所に上記故障を活性化するための５値論理システムにおける信号値をあたえ、上記故障箇所を入力とする次段の論理ゲートの出力に上記信号値を伝搬するテストパターン系列Ｔ′を含意操作によりもとめることを試み、サーバは、ステップ６０４において、上記テストパターン系列Ｔ′を含意操作により上記被試験半導体集積回路の入力信号線および内部信号線の信号値に矛盾を生じることなくテストパターン系列Ｔ′を生成することができたか否かを確認し、つまりテストパターン系列Ｔ′を生成することができたならばステップ６０５に移行し、テストパターン系列Ｔ′を生成することができないならばステップ６０６に移行する。サーバは、ステップ６０５において、上記ステップ６０３で求めたテストパターン系列Ｔ′を上記クライアントに返送する。最後に、ステップ６０６において、上記サブ故障リストに処理されていない他の故障が上記記憶手段内に存在するか否かを確認し、処理されていない故障が存在するならばステップ６０２，６０３，６０４，６０５，６０６を繰り返し、処理されていない故障が存在しないならばテストパターン生成処理終了をクライアントに報告して処理を終了する。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。
【０１１６】
図３５は第１発明のテストパターン生成方法の更に他の実施例の処理手順を示している。この処理手順は、図２９に示した実施例とほぼ同様であるが、異なる点はステップ１０７において、上記ステップ１０３および１０５で求めた初期化テストパターンｖ１と伝搬テストパターンｖ２でテストパターン系列Ｔ＝＜ｖ１，ｖ２＞を構成し、テストパターン系列Ｔをテストパターンリストに登録した後、ステップ７０１において、上記ステップ１０７でもとめたテストパターン系列Ｔをもちいて過渡電源電流故障シミュレーション（ＩDDT 故障シミュレーション）をおこない、上記テストパターン系列で検出可能な故障のリスト（被検出故障リスト）を作成する。つぎに、ステップ７０２において、上記ステップ７０１で生成された被検出故障リスト内の故障を上記ステップ１０１で作成した故障リストから削除する。最後に、ステップ１０８において、上記故障リストに処理または削除されていない他の故障が存在するか否かを確認し、処理または削除されていない故障が存在するならば上記ステップ１０２，１０３，１０４，１０５，１０６，１０７，７０１，７０２，１０８を繰り返し、処理または削除されていない故障が存在しないならば処理を終了する。前記削除処理によりテストパターン系列生成の終了がはやくなる。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。
【０１１７】
図３６は第１発明のテストパターン生成方法の更に別の実施例の処理手順を示している。これは、図３０に示した処理手順に、図２９に対し図３５で加えたと同様の処理を加えたものである。つまり、図３０に対し異なる点はステップ２０５でテストパターン系列Ｔ′をテストパターンリストに登録した後、ステップ８０１において、上記ステップ２０３でもとめたテストパターン系列Ｔ′をもちいて過渡電源電流故障シミュレーション（ＩDDT 故障シミュレーション）をおこない、上記テストパターン系列で検出可能な故障のリスト（被検出故障リスト）を作成する。つぎに、ステップ８０２において、上記ステップ８０１で生成された被検出故障リスト内の故障を上記ステップ２０１で作成した故障リストから削除する。最後に、ステップ２０６において、上記故障リストに処理または削除されていない他の故障が存在するか否かを確認し、処理または削除されていない故障が存在するならばステップ２０２，２０３，２０４，２０５，８０１，８０２，２０６を繰り返し、処理または削除されていない故障が存在しないならば処理を終了する。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。ステップ２０５の登録とステップ８０１，８０２の削除とは順序を逆にしてもよい。
【０１１８】
図３７および図３８は第１発明のテストパターン生成方法のさらに別の実施例の処理手順を示している。図３１及び図３２に示した実施例と異なる点を主に説明する。クライアントは、ステップ３０１で故障リストを作成した後、ステップ９０１において、テストパターン生成処理をおこなう複数のサーバを起動する。つぎに、クライアントは、ステップ３０３で、各サーバからのテストパターン系列返送を待機し、テストパターン系列Ｔが返送されたならばステップ３０４でテストパターン系列Ｔをテストパターンリストに登録する。つぎに、クライアントは、ステップ９０２において、上記テストパターン系列Ｔをもちいて過渡電源電流故障シミュレーション（ＩDDT 故障シミュレーション）をおこない、上記テストパターン系列で検出可能な故障のリスト（被検出故障リスト）を作成する。つぎに、クライアントは、ステップ９０３において、上記ステップ９０２で生成された被検出故障リスト内の故障を上記ステップ３０１で作成した故障リストから削除してステップ３０５に移る。
【０１１９】
各サーバは、図３８に示すようにクライアントから起動されると、ステップ１００１において、クライアントが保持する上記故障リストからテストパターン生成をおこなう対象故障を選択する。その選択した対象故障を検出するための初期化テストパターンｖ１と、伝搬テストパターンｖ２を生成しこれらよりなるテストパターン系列Ｔ＝＜ｖ１，ｖ２＞を構成して上記クライアントに返送する処理は図３２と同様である。ステップ４０７でテストパターン系列を返送した後、サーバは、最後に、ステップ１００２において、上記故障リストに処理または削除されていない他の故障が存在するか否かを確認し、処理または削除されていない故障が存在するならばステップ１００１，４０３，４０４，４０５，４０６，４０７，１００２を繰り返し、処理または削除されていない故障が存在しないならばテストパターン生成処理終了する。上記テストパターン生成方法は、テストパターン生成の対象故障をゲート遅延故障としてもよいし、断線故障を対象とすることもできる。この図３７、図３８においてクライアントはサーバを起動すると同時に、故障リストから各１つずつ対象故障をサーバに送り、サーバからテストパターン系列が送られてくると、登録と、シミュレーションによる被検出故障リストの作成、その故障の故障リストからの削除を行った後、故障リストから未処理の１つの対象故障を選択してそのサーバへ送り、サーバからテストパターン系列の返送があり、それに対する処理をした状態で故障リストに未処理の故障がない場合は、そのことをそのサーバへ通知し、サーバはその通知を受けると処理を終了する。またクライアントは、故障リストに未処理の故障がなくなり、かつ、すべてのサーバから最後のテストパターン系列の返送を受信すると、その登録を行って処理を終了してもよい。
【０１２０】
図３９及び図４０は第１発明のテストパターン生成方法のさらに別の処理手順を示している。これは図３１及び図３２に示した実施例を図３７及び図３８に示した実施例に変更したと同様に図３３及び図３４に示した実施例を変更したものである。よって、図３９及び図４０中の各ステップで図３３及び図３４、また図３７及び図３８中のステップ同様の処理を行うものに、同一番号を付け重複説明を省略する。この場合も、テストパターン生成の対象故障は、ゲート遅延故障、断線故障の何れでもよい。
【０１２１】
次に複数のサーバを用いる場合に、クライアント側で対象故障の選択と未処理故障の存在確認を行う第１発明の実施例を、図４１に示すクライアント側の処理手順と、図４２に示すサーバ側の処理手順とを参照して説明する。
クライアント側では、ステップ３０１で故障リストを作成し、ステップ３０９で複数のサーバを起動する。その後、ステップ１２０１でサーバから処理する故障の要求を受信したかを調べ、受信していたら、ステップ１２０２で故障リストから対象故障を１つ選択して、要求のあったサーバへ送信する。次にステップ３０３でサーバからテストパターン系列の返送があったかを調べ、返送があればステップ３０４でそのテストパターン系列をテストパターンリストに登録する。次にステップ１２０３で故障リスト内に処理されていない故障が存在するかを調べ、また存在する場合はステップ１２０１に戻る。
【０１２２】
ステップ１２０１で故障要求が受信されていなければ、ステップ３０３に移り、ステップ３０３でテストパターン系列が返送されていなければ、ステップ１２０３に移る。ステップ１２０３で故障リスト中に未処理故障が存在してなければ、ステップ１２０４で各サーバへ処理が終了したことを通知して動作を停止する。
サーバ側においては図４２に示すようにクライアントから起動されるとステップ１３０１で処理する故障をクライアントに要求し、ステップ１３０２でクライアントから送信された対象故障の受信を待ち、対象故障が受信されると、図３２中のステップ４０３〜４０７を実行し、つまり、初期化テストパターンＶ１、伝搬テストパターンＶ２を含意操作によりもとめることを試み、求めることができたら、そのテストパターン系列Ｔ＝＜Ｖ１，Ｖ２＞をクライアントに返送する。その返送後、あるいはテストパターン系列を生成できなかった場合は、ステップ１３０３でクライアントから処理終了通知を受信したかを調べ、受信していなければステップ１３０１へ戻り、受信していれば動作を停止する。
【０１２３】
各サーバで対象故障の選択と、未処理故障の存在確認を行う場合の実施例では、クライアントの処理手順は図４３に示すように、図３７中のステップ９０２と９０３を省略したものでもよい。サーバの処理は図３８に示した処理と実質的に同一である。ただ図３８中のステップ１００２において、故障リスト中に処理されていない故障が存在するかを調べることになり、クライアント側でステップ９０２，９０３の省略に伴い、故障リストから故障の削除は行われない。
【０１２４】
次に図４１、４２で示した実施例において、サーバから返送されたテストパターン系列Ｔを用いて、故障シミュレーションを行い、被検出故障リストを作成し、その被検出故障リスト内の故障を故障リストから削除する場合のクライアントの処理手順を、図４４に示す。この場合は、図４１に示した処理手順において、ステップ３０４の次に図３７中のステップ９０２と９０３を実行してステップ１２０３に移すようにする。この場合のサーバの処理手順は図４２に示した手順と同一となる。
【０１２５】
なお図４１乃至図４４を参照して説明した実施例ではテストパターン系列の生成を初期化テストパターンと伝搬テストパターンの系列を求めて行ったが、図３９、図４０に示した実施例のように、５値論理システムにおける信号値を用いてテストパターン系列Ｔ′を生成するようにしてもよい。
図４５は第２発明のテストパターン生成方法の処理手順を示している。はじめに、ステップ１０１において、被試験半導体集積回路に対するすべてのパス遅延故障を登録した故障リストを作成する。この作成は回路を人手でたどって各パス遅延故障（遅延する際の可能性のあるパス）を列挙する、あるいはこの被試験半導体集積回路の回路情報から電子計算機によりパス遅延故障を列挙することもできる。ステップ１０２において、上記被試験半導体集積回路にあたえる２つ以上のテストパターンからなるテストパターン系列を発生する。つぎに、ステップ１０３において、上記テストパターン系列に対して遷移シミュレーションをおこない、上記被試験半導体集積回路内部の信号線に生じる遷移信号値列を計算する。ステップ１０４において、上記遷移シミュレーションにより計算された各信号線の遷移信号値列を用いて上記テストパターン系列により過渡電源電流試験で検出可能なパス遅延故障のリスト（被検出故障リスト）を生成する。つぎに、ステップ１０５において、上記被検出故障リスト内の故障が上記ステップ１０１で作成した故障リストに存在するか否かを確認し、被検出故障リスト内の故障が上記故障リストに存在するならばステップ１０６に移行し、被検出故障リスト内の故障が上記故障リストに存在しないならば上記ステップ１０２，１０３，１０４，１０５を繰り返す。
【０１２６】
ステップ１０６において、上記被検出故障リスト内の故障を上記ステップ１０１で作成した故障リストから削除する。つぎに、ステップ１０７において、上記テストパターン系列をテストパターン系列リストに登録する。最後にステップ１０８において、上記故障リストが空になったか否かを確認し、故障リストが空になっていないならば上記ステップ１０２，１０３，１０４，１０５，１０６，１０７，１０８を繰り返し、故障リストが空になったならば処理を終了する。上記ステップ１０２のテストパターン系列を発生するステップは、２つ以上のランダムパターンをテストパターン系列として発生してもよいし、あらかじめ作成されたテストパターン系列群の中からひとつ選択して発生してもよい。また、上記ステップ１０８において、故障リストが空になったか否かを確認するステップは、故障リストに残った故障がある所定の数（０を含む正数）以下になったか否かを確認することによって処理終了を判断してもよい。ただし、被試験半導体集積回路のパス遅延故障検出率を向上するためには、上記所定のしきい値は可能な限り小さいほうが望ましい。残りのパス遅延故障が少なくなると、これを検出可能なテストパターン系列を得るのに時間がかかる。一方、回路によっては故障検出率が例えば９９％以上であればよいとされているものもあり、これらを考慮した場合は、その要件を満す程度で残りのパス遅延故障の数を増加させればよい。
【０１２７】
図４６は、図４５中のステップ１０４における被検出故障リスト生成方法の処理手順を示している。はじめに、ステップ２０１において、被試験半導体集積回路内に生じうるパス遅延故障を図４５の中のステップ１０１で作成した故障リストから１つ選択し、初期設定する。つぎに、ステップ２０２において、遷移シミュレーションの結果をもとに上記パス遅延故障をもつパス（故障パス）上のすべての論理ゲートがスイッチングするか否かを確認し、上記故障パス上のすべての論理ゲートがスイッチングしているならば、ステップ２０３に移行し、上記故障パス上のすべての論理ゲートがスイッチングしていないならば、ステップ２０６に移行する。
【０１２８】
ステップ２０３において、遷移シミュレーションの結果をもとに上記故障パス上に図４５中のステップ１０２で発生されたテストパターン系列により複数回スイッチングしている論理ゲートが存在するか否かを確認し、複数回スイッチングしている論理ゲートが存在するならば、ステップ２０４に移行し、複数回スイッチングしている論理ゲートが存在しないならば、ステップ２０５において上記パス遅延故障を被検出故障リストに登録する。ステップ２０４において、上記複数回スイッチングするすべての論理ゲートのオンパス入力（故障パス上の入力信号線）が過渡電源電流試験による故障検出条件を満たすか否かを確認し、過渡電源電流試験による故障検出条件を満たすならば、ステップ２０５において上記パス遅延故障を被検出故障リストに登録し、過渡電源電流試験による故障検出条件を満たさないならば、ステップ２０６に移行する。
【０１２９】
ステップ２０４では、複数回スイッチングするすべての論理ゲートに対し、上記論理ゲートのオンパス入力に対応する出力遷移信号が、その論理ゲートの出力信号線における最終の遷移信号と同じ種類の遷移信号であるか否かを確認する。例えば図２８（ｂ）中の論理ゲートＧ4 が複数回スイッチングしている例であり、ゲートＧ4 のオンパス入力ｎ3 の入力遷移信号“Ｆ（４）”に対応するゲートＧ4 の出力遷移信号“Ｆ（６）”は論理ゲートＧ4 の最終の遷移信号に一致しているため、オンパス入力ｎ3 は過渡電源電流試験による故障検出条件を満たす。最後に、ステップ２０６において、他に処理されていないパス遅延故障が存在するか否かを確認し、処理されていないパス遅延故障が存在するならば、ステップ２０７において起こりうるつぎのパス遅延故障を設定して上記ステップ２０２，２０３，２０４，２０５，２０６を繰り返し、処理されていないパス遅延故障が存在しないならば、処理を終了する。
【０１３０】
図４７および図４８は第２発明のテストパターン生成方法の他の実施例の処理手順を示している。はじめに、クライアントが、ステップ３０１において、被試験半導体集積回路に対するすべてのパス遅延故障を登録した故障リストを作成する。つぎに、クライアントは、ステップ３０２において、上記半導体集積回路にあたえる２つ以上のテストパターンからなるテストパターン系列を発生し、処理をおこなっていない１以上のサーバにそれぞれ１つずつテストパターン系列を送信する。その後、クライアントは、ステップ３０３において、上記複数のサーバから処理終了が通知されるのを待機し、処理終了が通知されたならばステップ３０４に移行する。ステップ３０４において、上記故障リストが空になったか否かを確認し、故障リストが空になっていなければ、上記ステップ３０２，３０３，３０４を繰り返し、故障リストが空になったならば、ステップ３０５においてすべてのサーバの処理を強制終了して、処理を終了する。
【０１３１】
一方各サーバは、図４８に示すように、ステップ４０１において、上記クライアントから送信されたテストパターン系列に対し遷移シュミレーションをおこない、被試験半導体集積回路内部の信号線に生じる遷移信号値列を計算する。つぎに、サーバは、ステップ４０２において、上記遷移シミュレーションにより計算された各信号線の遷移信号値列を用いて上記テストパターン系列により過渡電源電流試験で検出可能な故障のリスト（被検出故障リスト）を生成する。サーバは、ステップ４０３において、ステップ４０２で作成された被検出故障リスト内の故障が上記クライアントが保持する上記故障リスト（ステップ３０１で作成）に存在するか否かを確認し、被検出故障リスト内の故障が上記故障リストに存在するならばステップ４０４に移行し、被検出故障リスト内の故障が上記故障リストに存在しないならばステップ４０６に移行する。
【０１３２】
サーバは、ステップ４０４において、上記被検出故障リスト内の故障を上記故障リストから削除する。つぎに、サーバは、ステップ４０５において、クライアントが保持するテストパターン系列リストにテストパターン系列を登録する。最後に、サーバは、ステッフ４０６において、処理終了をクライアントに通知し、処理を終了する。
図４７中のステップ３０２のテストパターン系列を発生するステップは、２つ以上のランダムパターンをテストパターン系列として発生してもよいし、あらかじめ作成されたテストパターン系列群の中からひとつ選択してもよい。また、図４８中のステップ４０２の被検出故障リストを生成するステップは、図４６に示した被検出故障リスト生成方法を用いておこなうことができる。図４７中のステップ３０４において、故障リストが空になったか否かを確認するステップは、故障リストに残った故障がある所定の数（しきい値）より小さくなったか否かを確認することによって処理終了を判断してもよい。ただし、被試験半導体集積回路のパス遅延故障検出率を向上するためには、上記所定のしきい値は可能な限り小さいほうが望ましい。
【０１３３】
第２発明においてクライアントと複数のサーバとを用いる場合に、サーバでクライアントからテストパターン系列を取出して処理する場合の実施例を説明する。クライアントの処理手順は図４９に示すように、ステップ３０１で被試験半導体集積回路に対するパス遅延故障のリスト（故障リスト）を生成し、ステップ１４０１で被試験半導体集積回路にあたえる２つ以上のテストパターンからなるテストパターン系列のリストを生成し、その後ステップ９０１で複数のサーバを起動する。ステップ１４０２で複数のサーバからテストパターン系列リストにテストパターン系列が登録されるのを待機し、ステップ１４０３で故障リスト内のパス遅延故障数が所定値以下になるまで、あるいは、すべてのサーバが処理を終了するまでパターン系列登録待機ステップ１４０２以後を繰り返し、故障リストが空になるか、全てのサーバが処理を終了すると、ステップ１４０６で各サーバの処理を強制終了させて動作を停止する。
【０１３４】
各サーバは、図５０に示すように、クライアントから起動されると、ステップ１４０４で、クライアントが保持するテストパターン系列リストからテストパターン系列を１つ選択し、以後は図４８中のステップ４０１〜４０５を実行し、そのテストパターン系列により、過渡電源電流試験で検出可能な故障のリスト（被検出故障リスト）を生成し、その故障をクライアントが保持する故障リストから削除し、更にそのテストパターン系列をクライアントが保持するテストパターン系列リストに登録する。その後、ステップ１４０５でクライアントのテストパターン系列リスト内に選択していないテストパターン系列が存在するかを調べ、存在すればステップ１４０４に戻り、存在しなければステップ４０６でテストパターン生成処理を停止するとともに処理終了をクライアントに通知する。
【０１３５】
パス遅延故障を検出するテストパターン系列の生成を、クライアントと複数のサーバを用い行う他の実施例のクライアントの処理手順を図５１に、サーバの処理手順を図５２に示す。クライアントは図４９の場合と同様にステップ３０１と１４０１でパス遅延故障の故障リストを作り、更にテストパターン系列のリストを作成するが、その後、この実施例ではステップ１５０１でテストパターン系列リストを複数のサブパターン系列リストに分割し、各サブパターン系列リストを１つづつ各サーバに分配送信する。その後の処理は図４９の場合と同様である。サーバは図５２に示すように、ステップ１５０２でクライアントからサブテストパターン系列リストを受信すると、それを記憶部に一旦格納し、ステップ１５０３でそのサブテストパターン系列リストから１つのテストパターン系列を選択し、その後は図５０中のステップ４０１〜４０５を実行し、次にステップ１５０４で記憶部に格納したサブテストパターン系列リストにまた処理されていないテストパターン系列が存在するかを調べ、存在する場合はステップ１５０３に戻り、存在しなければ、ステップ４０６で処理終了をクライアントに通知する。
【０１３６】
上述したパターン生成は例えばコンピュータにより行わせることができる。例えば第１発明の方法においては図５３に示すように、ＣＰＵ１１がメモリ１２内のプログラムを実行することにより全体の処理を行う。まず入力手段１３により例えば被試験回路の回路情報をダウンロードして記憶部１４に一旦格納し、メモリ１５内の故障リスト作成プログラムを実行して、得られた故障リストをメモリ１６に格納する。次に前述したように、故障リストメモリ１６内から対象故障を選択して、その故障箇所を活性化し、その箇所の次の論理ゲートに信号を送るテストパターン系列を、前記初期化テストパターンｖ１の生成と、伝搬テストパターンｖ２の生成により、又は５値論理システムにおける信号値を与えて、何れも含意操作により求めるプログラムを、それを格納したメモリ１７を用いて実行し、得られたテストパターン系列をテストパターン系列メモリ１８に格納（登録）し、以下、順次、故障リストメモリ１６から対象故障を取り出して行う。
【０１３７】
図３５、図３６に示した実施例の場合は、テストパターン系列メモリ１８に登録した又は登録するテストパターン系列でＩDDT 故障シミュレーションを、メモリ１９内のプログラムを実行して行い、更にメモリ２１内のプログラムを実行してこのテストパターン系列で検出可能な故障のリストを作成し、そのリストをＣＰＵ１１内のＲＡＭに一時保持した後、故障リストメモリ１６から該当する故障を削除する機能が付加される。
【０１３８】
図３１と図３２、図３３と図３４に示した実施例の場合は図５４Ａにクライアントの機能を示すように、図５３中のＣＰＵ１１、プログラムメモリ１２、入力手段１３、記憶部１４、故障リスト作成プログラムメモリ１５、テストパターン系列メモリ１８を備え、更にサーバとの送受信部２２を備える。ただしメモリ１２内プログラムの内容は図５３の何れとも異なり、図３１又は図３３に示した処理を行うようにされている。サーバは図５４Ｂに示すように、ＣＰＵ２３によりメモリ２４内のプログラムを実行することにより全体を機能させ、クライアントと通信する送受信部２６を介して送られたサブ故障リストはサブ故障リストメモリ２５に格納されて処理される。図５３中の故障箇所活性化テストパターン系列生成プログラムを格納したメモリ１７が設けられる。
【０１３９】
図３７と図３８又図３９と図４０に示した実施例の場合はクライアントは図５４Ａ中に破線で示すように、図５３中のＩDDT 故障シミュレーションプログラム格納メモリ１９と、被検出故障リスト作成プログラムを格納したメモリ２１が付加され、またサーバとの情報の受授などメモリ１２内のプログラムが、図３７又は図３９の処理を行うように作成されている。サーバは図５４Ｂ中のサブ故障メモリ２５が省略され、メモリ２４内のプログラムが図３８又は図４０の処理を行うように作られる。図４１と図４２に示した実施例の場合はクライアントは図５４Ａ中のメモリ１９，２１が省略され、サーバとの情報の授受などメモリ１２内のプログラムが図４１の処理を行うように作成されている。サーバは図５４Ｂ中のサブ故障メモリ２５が省略され、メモリ２４内のプログラムが図４２の処理を行うように作られている。図４３および図４４に示した実施例の場合も、図５４Ａに示した構成と同様にしてコンピュータにより機能させることができる。
【０１４０】
図４５に示した実施例の場合は、図５５に示すように、ＣＰＵ３１がメモリ３２内のプログラムを実行して、全体の機能を行い、入力手段３３を通じて、被試験回路の回路情報がダウンロードされて記憶部３４に一旦格納され、メモリ３５内の故障リスト作成プログラムを記憶部３４内の回路情報について実行して、その全てのパス遅延故障を求めて故障リストメモリ３６に格納する。次にメモリ３７内のテストパターン発生プログラム３７を実行してテストパターン系列を生じ（この生成はハードウェアにより行ってもよい）、メモリ３８内のプログラムを実行してそのテストパターン系列を被試験回路に印加した場合の遷移シミュレーションを行い、メモリ３９内のプログラムを実行して被検出故障リストを作り、これをＣＰＵ３１内のＲＡＭ又は記憶部３４に一時蓄積して、この被検出故障（パス）と同一のものを、故障リストメモリ３６内から削除して、前記テストパターン系列をテストパターン系列メモリ４１に格納する。故障リストメモリ３６内のパス遅延故障の数が所定数（０を含む）以下になるまで、同様のことを実行する。
【０１４１】
図４７と図４８、図４９と図５０、図５１と図５２にそれぞれ示した実施例の場合、クライアントでは図５６Ａに示すように図５５中から遷移シミュレーションプログラムを格納したメモリ３８、被検出故障リスト作成プログラムを格納したメモリ３９が省略され、サーバと通信を行う送受信部４２が設けられる。またメモリ３２内のプログラムの内容は図４７、図４９、図５１の各処理とそれぞれ対応したものとなる。
【０１４２】
一方、サーバは図５６Ｂに示すように、送受信部４３によりクライアントと通信を行い、被検出故障リストを作成のために、クライアントで作成した故障リストがメモリ４４内に予め転送されてある。図５５中の遷移シミュレーションプログラムを格納したメモリ３８、被検出故障リスト作成プログラムを格納したメモリ３９が設けられ、図４８の例ではクライアントからテストパターン系列が送られてくるごとにＣＰＵ４５がメモリ４６のプログラムを実行して、図４８に示した処理を行い、図５０の例ではクライアントからテストパターン系列を取り出して図５０に示した処理を行い、図５２の例では図５６Ｂにクライアントから受信したサブテストパターン系列リストを格納する記録部が設けられ、図５２に示した処理を行う。
【０１４３】
【発明の効果】
第１発明のテストパターン生成方法によれば、可観測性が高くゲート遅延故障や断線故障を効率よく試験できる過渡電源電流試験法を用いることにより、ゲート遅延故障や断線故障に対するテストパターンを容易に生成することができ、テストパターン生成の効率を大幅に改善することができる。
また、第１発明のテストパターン生成方法によれば、ゲート遅延故障および断線故障の影響を出力信号線まで伝搬する必要がないため、テストパターン生成の含意操作において信号線の論理値に矛盾が生じる確率が小さくでき、初期化テストパターン生成および伝搬テストパターン生成において入力信号設定のやり直し（バックトラック）回数を削減できるため、テストパターン生成に要する時間を大幅に削減することができる。
【０１４４】
また、第１発明のテストパターン生成方法の実施例によれば、テストパターン生成より高速な過渡電源電流故障シミュレーション（ＩDDT 故障シミュレーション）によりテストパターン生成をおこなう対象故障数を削減できるため、テストパターン生成に要する時間をさらに削減することができる。
第２発明のテストパターン生成方法によれば、可観測性が高くゲート遅延故障や断線故障を効率よく試験できる過渡電源電流試験法を用いることにより、パス遅延故障に対するテストパターンを容易に生成することができ、テストパターン生成の効率を大幅に改善することができる。
【０１４５】
また、第２発明のテストパターン生成方法によれば、テストパターン生成より高速な遷移シミュレーションを用いて被検出故障リストを生成し、テストパターン生成の対象故障のリストから削除していくことにより、テストパターン生成に要する時間を削減することができる。
【図面の簡単な説明】
【図１】従来のテストパターン生成法を説明するための論理回路を示す図。
【図２】従来のテストパターン生成法に用いられる５値論理システムの各信号値を示す図。
【図３】従来のテストパターン生成法で用いられる含意表を示す図。
【図４】従来のテストパターン生成法で用いられる経路活性化表を示す図。
【図５】従来のテストパターン生成法の一例を説明するための回路図。
【図６】図５の続きを示す図。
【図７】ａはＣＭＯＳインバータの入力電圧ＶIN、出力電圧ＶOUT の経時変化とその電源電流ＩDDの過渡応答の一例を示す図、ｂはそのＣＭＯＳインバータ回路と出力の立ち上がり遷移時に流れる電源電流を示す図、ｃはそのＣＭＯＳインバータ回路と出力立ち下り遷移時に流れる電源電流を示す図である。
【図８】ＣＭＯＳ論理ゲートの過渡応答の典型例を示し、ａは入力電圧ＶIN、出力電圧ＶOUT、電源電流ＩSの伝達特性図、ｂは過渡電流の近似波形を示す図である。
【図９】ａはＣＭＯＳ集積回路の例を示す回路図、ｂはその集積回路に対する入力電圧、出力電圧の変化と判定する過渡電源電流応答ＩDDT の様子を示す図である。
【図１０】断線故障を模式的に説明する図。
【図１１】ａは断線故障をもつＣＭＯＳ集積回路の一例を示す図、ｂ、ｃはその断線無し、有りの出力波形例を示す図である。
【図１２】断線故障をもつＣＭＯＳ集積回路の過渡電源電流応答の一例を示す図。
【図１３】ａはパス遅延故障試験方法の基本原理を模式的に示す図、ｂはその入出力とクロックの関係を示す図である。
【図１４】過渡電源電流のパルス幅を利用した過渡電源電流試験方法の原理図。
【図１５】過渡電源電流の瞬時値を利用した過渡電源電流試験方法の原理図。
【図１６】ａはＣＭＯＳインパータの入力信号線に存在する微小オープン欠陥のモデルを示す図、ｂは信号遷移時間を模式的に示す図である。
【図１７】ＣＭＯＳ集積回路内に存在する微小オープン欠陥の抵抗値に対するＣＭＯＳ集積回路の過渡電源電流の積分値の変化を示す図。
【図１８】ＣＭＯＳ集積回路の被試験パス上に存在する微小オープン欠陥の抵抗値に対する被試験パスのパス遅延時間の変化を示す図。
【図１９】ＣＭＯＳ集積回路の被試験パス上に微小オープン欠陥が存在すると仮定したときの、ＣＭＯＳ集積回路の過渡電源電流の積分値と被試験パスのパス遅延時間の間の線形性を示す図。
【図２０】第１発明のテストパターン生成方法の一例を説明するために用いられる、被試験ＣＭＯＳ集積回路の一例を示す図。
【図２１】第１発明のテストパターン生成方法の他の例を説明するために用いられる、被試験ＣＭＯＳ集積回路の別の一例を示す図。
【図２２】第１発明のテストパターン生成方法で用いられるＩDDT 故障シミュレーションを説明するための、被試験ＣＭＯＳ集積回路の一例を示す回路図。
【図２３】第１発明のテストパターン生成方法で用いられるＩDDT 故障シミュレーションのシミュレーション結果の一例を示す図。
【図２４】第１発明のテストパターン生成方法で用いられるＩDDT 故障シミュレーションを説明するための、被試験ＣＭＯＳ集積回路の別の一例を示す回路図。
【図２５】第１発明のテストパターン生成方法で用いられるＩDDT 故障シミュレーションのシミュレーション結果の別の一例を示す図。
【図２６】第２発明の故障シミュレーション方法を説明するために用いられる、被試験ＣＭＯＳ集積回路を示す図。
【図２７】第２発明のテストパターン生成方法に用いられる故障シミュレーションのシミュレーション結果の一例を示す図。
【図２８】図２７の故障シミュレーション結果を用いて第２発明の方法を説明するための回路図。
【図２９】第１発明のテストパターン生成方法の処理手順の例を示すフローチャート。
【図３０】第１発明のテストパターン生成方法の処理手順の別の例を示すフローチャート。
【図３１】第１発明のテストパターン生成方法のクライアント側の処理手順の例を示すフローチャート。
【図３２】図３１のクライアントに対するサーバ側の処理手順の例を示すフローチャート。
【図３３】第１発明のテストパターン生成方法のクライアント側の処理手順の別の例を示すフローチャート。
【図３４】図３３のクライアントに対するサーバ側の処理手順の例を示すフローチャート。
【図３５】第１発明のテストパターン生成方法の更に別の処理手順を示すフローチャート。
【図３６】第１発明のテストパターン生成方法の更に別の処理手順を示すフローチャート。
【図３７】第１発明のテストパターン生成方法の更に別のクライアント側の処理手順を示すフローチャート。
【図３８】図３７のクライアントに対するサーバ側の処理手順を示すフローチャート。
【図３９】第１発明の方法による更に別のクライアント側の処理手順を示すフローチャート。
【図４０】図３９のクライアントに対するサーバ側の処理手順を示すフローチャート。
【図４１】第１発明の方法による更に別のクライアントの処理手順を示すフローチャート。
【図４２】図４１のクライアントに対するサーバの処理手順を示すフローチャート。
【図４３】第１発明の方法による更に別のクライアントの処理手順を示すフローチャート。
【図４４】第１発明の方法による更に別のクライアントの処理手順を示すフローチャート。
【図４５】第２発明の方法の処理手順の例を示す流れ図。
【図４６】図４５中の被検出故障リスト作成ステップの具体例を示すフローチャート。
【図４７】第２発明の方法を適用したクライアント側の処理手順の例を示すフローチャート。
【図４８】図４７のクライアントに対するサーバ側の処理手順を示すフローチャート。
【図４９】第２発明の方法を適用したクライアントの別の処理手順を示すフローチャート。
【図５０】図４９のクライアントに対するサーバの処理手順を示すフローチャート。
【図５１】第２発明の方法を適用したクライアントの更に別の処理手順を示すフローチャート。
【図５２】図５１のクライアントに対するサーバの処理手順を示すフローチャート。
【図５３】第１発明の方法を適用した装置の機能構成例を示す図。
【図５４】第１発明の方法を適用したクライアント及びサーバの各機能構成例を示す図。
【図５５】第２発明の方法を適用した装置の機能構成例を示す図。
【図５６】第２発明の方法を適用したクライアント及びサーバの各機能構成を示す図。
【図１】
0004488595.tif 000025
【図２】
0004488595.tif 000026
【図３】
0004488595.tif 000027
【図４】
0004488595.tif 000028
【図５】
0004488595.tif 000029
【図６】
0004488595.tif 000030
【図７】
0004488595.tif 000031
【図８】
0004488595.tif 000032
【図９】
0004488595.tif 000033
【図１０】
0004488595.tif 000034
【図１１】
0004488595.tif 000035
【図１２】
0004488595.tif 000036
【図１３】
0004488595.tif 000037
【図１４】
0004488595.tif 000038
【図１５】
0004488595.tif 000039
【図１６】
0004488595.tif 000040
【図１７】
0004488595.tif 000041
【図１８】
0004488595.tif 000042
【図１９】
0004488595.tif 000043
【図２０】
0004488595.tif 000044
【図２１】
0004488595.tif 000045
【図２２】
0004488595.tif 000046
【図２３】
0004488595.tif 000047
【図２４】
0004488595.tif 000048
【図２５】
0004488595.tif 000049
【図２６】
0004488595.tif 000050
【図２７】
0004488595.tif 000051
【図２８】
0004488595.tif 000052
【図２９】
0004488595.tif 000053
【図３０】
0004488595.tif 000054
【図３１】
0004488595.tif 000055
【図３２】
0004488595.tif 000056
【図３３】
0004488595.tif 000057
【図３４】
0004488595.tif 000058
【図３５】
0004488595.tif 000059
【図３６】
0004488595.tif 000060
【図３７】
0004488595.tif 000061
【図３８】
0004488595.tif 000062
【図３９】
0004488595.tif 000063
【図４０】
0004488595.tif 000064
【図４１】
0004488595.tif 000065
【図４２】
0004488595.tif 000066
【図４３】
0004488595.tif 000067
【図４４】
0004488595.tif 000068
【図４５】
0004488595.tif 000069
【図４６】
0004488595.tif 000070
【図４７】
0004488595.tif 000071
【図４８】
0004488595.tif 000072
【図４９】
0004488595.tif 000073
【図５０】
0004488595.tif 000074
【図５１】
0004488595.tif 000075
【図５２】
0004488595.tif 000076
【図５３】
0004488595.tif 000077
【図５４】
0004488595.tif 000078
【図５５】
0004488595.tif 000079
【図５６】
0004488595.tif 000080